PRO : Modifier son firmware ! (PARTIE 1 / X)

/ / Expert, Tutorials

Comment télécharger/configurer/installer le firmware Marlin (PARTIE 1 / X)

S’applique pour les versions 1.1.x. Il est cependant possible d’extrapoler le contenu de ce tutoriel aux anciennes versions.

Etant donné l’étendue des sujets pouvant être couverts, ce tutoriel sera décomposé en plusieurs parties.

Dans ce tutoriel nous allons voir comment configurer Marlin afin de mettre à jour son imprimante avec les dernières MAJ du firmware. Cela permet de supprimer certains bugs ainsi que d’ajouter de nouvelles fonctionnalités.

Site web de Marlin :

http://marlinfw.org/

GitHub de Marlin:

https://github.com/MarlinFirmware/Marlin

=> pour obtenir la dernière version.

 

Cliquez sur “Clone or download” et de-zipper le contenu.

Contenu de l’archive zip

 

Ouvrez le dossier “Marlin” :

 

Recherchez la solution Arduino “Marlin.ino” et ouvrez la* :

 

*Nécessite Arduino :
https://ziegstore.eu/blogs/news/les-bases-comment-installer-arduino

Il y a plusieurs fichiers dans le dossier mais seulement deux vont nous intéresser afin de configurer Marlin :

  • configuration.h
  • configuration_adv.h

Vous pouvez aussi regarder dans le dossierqui contient des pré configurations des deux fichiers ci-dessus pour tout un ensemble d’imprimantes déjà existantes :

Si votre imprimante est présente, copier/coller (et remplacer) les deux fichiers dans le dossier « Marlin ».

Info : il est intéressant de se procurer les fichiers sources de votre firmware précèdent (si disponible, demander au fabriquant) afin de récupérer certaines valeurs (type de thermistances, paramètres géométriques, etc), même si celui-ci n’est pas Marlin.

Pour les besoins du tutoriel, nous allons effectuer la configuration avec les fichiers génériques pour une imprimante 3D type delta, disponibles dans le dossier :
« \Marlin\example_configurations\delta\generic\ »

Ce tutoriel couvre uniquement la configuration de base du firmware, il nous est impossible de couvrir toutes les combinaisons possibles. Pour aller plus loin (ajouter des entrées /sorties, fonctionnalités non existantes, capteurs, etc), le lecteur est invité à se renseigner directement sur le site/communauté du firmware. L’équide de Ziegstore reste aussi à votre disposition pour vous aider au besoin.

 

*****************************************

CONFIGURATION.H

Ouvrez le fichier « configuration.h » avec Arduino ou votre éditeur de texte préféré. Nous vous recommandons l’utilisation de Notepad++ (https://notepad-plus-plus.org/)

Le code est très bien commenté et souvent il suffit de lire les commentaires et de changer les valeurs dans le code en fonction de ses besoins.

Les commentaires sont présentés sous la forme suivante :

Ou suivante

Nous allons traiter uniquement les paramètres qui nécessitent un éventuel changement, dans leur ordre d’apparition dans le fichier.

*****************************************

Légende :

Exemple de paramètre :
#define SERIAL_PORT 0

SERIAL_PORT : nom du paramètre
0 : valeur du paramètre

Il faudra uniquement modifier la valeur du paramètre (en vert).

*****************************************

#ifndef MOTHERBOARD

#define MOTHERBOARD BOARD_RAMPS_14_EFB

#endif

BOARD_RAMPS_14_EFB : type de carte mère utilisée. Pour connaitre la vôtre, demandez au fabricant ou regarder sur la carte si elle comporte un nom (ou encore dans le précédent firmware). Ce paramètre doit absolument être correct !

*****************************************

#define CUSTOM_MACHINE_NAME “Deltabot”

Deltabot : nom de la machine, sera affiché sur l’écran (si existant)

#define EXTRUDERS 1

1 : nombre d’extrudeurs disponibles

 

//=================================================================
//========================== Thermal Settings ========================
//=================================================================

 

#define TEMP_SENSOR_0 -1 // pour l’extruder numéro 1
#define TEMP_SENSOR_1 0 // pour l’extruder numéro 2
#define TEMP_SENSOR_2 0 // pour l’extruder numéro 3
#define TEMP_SENSOR_3 0 // pour l’extruder numéro 4
#define TEMP_SENSOR_4 0 // pour l’extruder numéro 5
#define TEMP_SENSOR_BED 0 // pour le plateau chauffant

Valeur : permet de choisir le type de thermistance utilisée. Il est important de choisir le bon type, dans le cas contraire, la température lue serait alors erronée (trop faible ou trop élevée) comportant éventuellement un risque de feu !

*****************************************

Nous vous recommandons de conserver les deux paramètres suivants actifs. Ils permettent le contrôle la température et de couper l’imprimante en cas de mauvais fonctionnement sur la régulation de la température. Dans certain cas, le système peut s’avérer trop sensible et couper l’imprimante trop tôt, il est alors possible de le désactiver temporairement (ajouter « // » devant la ligne). Il faudra par la suite configurer le système correctement pour éviter les problèmes (le sujet fera lieu d’un post dédié sur la régulation PID/BANG BANG et le paramétrage des fonctions de protections).

Actif :

#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
#define THERMAL_PROTECTION_BED     // Enable thermal protection for the heated bed

Non Actif :

//#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
//#define THERMAL_PROTECTION_BED     // Enable thermal protection for the heated bed

 

 

//=================================================================
//========================= Mechanical Settings ======================
//=================================================================

 

#define DELTA

DELTA : active la configuration et la cinétique pour une imprimante de type delta. D’autre type sont disponible : CORE / CARTESIAN / ETC

 

*****************************************

// Make delta curves from many straight lines (linear interpolation).
  #define DELTA_SEGMENTS_PER_SECOND 200

200 : souvent trop élevée pour les processeurs 8bits, il est recommandé de baisser la valeur de base à 100.

 

*****************************************

Activez :

//#define DELTA_CALIBRATION_MENU

=>

#define DELTA_CALIBRATION_MENU

DELTA_CALIBRATION_MENU : ajoute un menu à l’écran LCD qui permet de calibrer manuellement le plateau.

 

*****************************************

Activez :

//#define DELTA_AUTO_CALIBRATION

=>

#define DELTA_AUTO_CALIBRATION

DELTA_CALIBRATION_MENU : ajoute la fonction d’auto-calibration. Cette fonction fera l’objet d’un post séparé. Nécessite une sonde dédiée!

 

*****************************************

#define DELTA_CALIBRATION_RADIUS 121.5 // mm

121.5 : valeur du rayon utilisé pour la calibration, à choisir en fonction du rayon maximum disponible (doit être inférieur)

 

*****************************************

#define DELTA_PRINTABLE_RADIUS 140.0 // mm

140.0 : valeur du rayon maximal disponible

 

*****************************************

#define DELTA_DIAGONAL_ROD 250.0 // mm

250.0 : la longueur des bielles, mesurée de centre à centre

 

*****************************************

#define DELTA_HEIGHT 250.00 // get this value from auto calibrate

250.00 : la hauteur maximale disponible entre la buse de l’extruder et le plateau. Si auto-calibration : mettre une valeur approximative de la valeur réelle pour le moment. Cette valeur sera calculée plus tard par la fonction d’auto-calibration.

 

*****************************************

#define DELTA_RADIUS 124.0 //mm  Get this value from auto calibrate

124.0 : la composante horizontale des bielles, centre à centre, quand l’extrudeur est en position centrale (voir schéma ci-dessous). Si auto-calibration : mettre une valeur approximative de la valeur réelle pour le moment. Cette valeur sera calculée plus tard par la fonction d’auto-calibration.

 

//==================================================================
//=========================== Endstop Settings ========================
//==================================================================

 

//#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG // a Z probe
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
#define USE_ZMAX_PLUG

Active ou désactive (“//” devant la ligne) les fin de courses présents. Peut-être utiliser dans le cas d’une sonde (auto-calibration / niveau plateau automatique, …).

 

*****************************************

#define X_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true  // set to true to invert the logic of the probe.

true : (ou false) permet de choisir si le capteur est normalement ouvert ou normalement fermé.

//==================================================================
//========================== Movement Settings =======================
//==================================================================

 

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 80, 760*1.1 }

{ 80, 80, 80, 760*1.1 } = { X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]}.

Pour une imprimante delta X=Y=Z. Les extrudeurs E1, E2, … sont optionnels.

Les valeurs sont en step / mm (= combien de pas moteur il faut pour avancer d’un mm).

Pour calculer cette valeur, il faut connaitre le micro stepping du driver / le nombre de step du moteur / les éventuels rapports de réduction (courroie, poulies, etc).

Ce paramètre sera affiné plus tard en déplaçant (prudemment) l’imprimante sur une distance relativement grande (ex : 100mm). On comparera alors la commande (100mm), à la valeur réelle (ex : 102mm). Le ratio des deux permettra de corriger notre paramètre (100/102 * 80 =  78.43 la nouvelle valeur ).

Exemple : pour deux extrudeurs :

{ 80, 80, 80, 500, 400 }. Ici, E1 = 500, E2 =400, E3,E4,…. N’existent pas.

 

*****************************************

Les autres paramètres non traités peuvent aussi être modifiés au besoin (accélérations, jerk, etc), cependant les valeurs par défauts sont souvent suffisantes.

 

Ce qui conclut notre partie 1.

Dans la prochaine partie nous allons voir les thèmes suivants :

  • Réglages du capteur Z
  • Nivellement automatique du plateau
  • Fonctions additionnelles
    • Eeprom
    • Carte SD
    • LCD

 

2 Comments to “ PRO : Modifier son firmware ! (PARTIE 1 / X)”

  1. How does cialis work

    Thankfulness to my father who shared with me concerning this blog, this webpage is genuinely awesome.

  2. We’re a group of volunteers and starting a new scheme in our community.

    Your web site offered us with valuable information to work on. You have done a formidable job and our whole community
    will be thankful to you.

Leave a Reply

Your email address will not be published. Required fields are marked *