Configurer le firmware Marlin et le faire fonctionner !

Configurer le firmware Marlin et le faire fonctionner !

  1. Premières étapes
  2. Ports série, vitesse de transmission, Bluetooth, nom personnalisé
  3. Pilotes pas à pas
  4. Homing sans capteur
  5. Microstepping et Stealthchop
  6. Contrôle de l'alimentation
  7. Paramètres thermiques - thermistance et température min./max.
  8. Paramètres PID
  9. Sécurité - extrusion à froid et emballement thermique
  10. Paramètres mécaniques - Corexy, imprimante à convoyeur, bras robotisés
  11. Paramètres de fin de course
  12. Paramètres de mouvement - accélération, feedrate, step, linear advance
  13. Z-probe et nivellement du plateau, changement de direction moteur
  14. Taille du plateau
  15. M600
  16. Fonctions supplémentaires - EEPROM, paramètres de préchauffage, nettoyage des buses, print job timer, mot de passe, langue, carte SD, sensibilité de l'encodeur, haut-parleurs, LCD, néopixels

Une petite remarque avant de commencer : je vais mentionner des numéros de ligne pour qu'il soit plus facile de trouver la bonne ligne à modifier. Selon le firmware ou les fichiers de configuration que vous utilisez, cela peut varier un peu, mais cela reste une solution relativement simple pour trouver la bonne ligne.

En outre, les instructions dans Marlin sont appelées définitions. Elles peuvent être soit "on", "off", ou "on" avec une valeur sélectionnable. Celles qui sont activées sont sans commentaire, c'est-à-dire qu'elles n'ont pas d'identifiant de commentaire, qui est une double barre oblique. En principe, la double barre oblique désactive tout et permet d'écrire des commentaires si vous voulez personnaliser votre firmware pour qu'il soit utilisable par vous-même ou par d'autres ultérieurement. Tout ce qui est écrit avec un // en début de ligne est totalement ignoré par le firmware lors de la compilation.

1. Premiers pas

Pour éditer le firmware Marlin, vous aurez besoin du bon logiciel. Bien qu'il existe plusieurs options, la plupart utiliseraient Visual Studio Code. Ce logiciel peut être téléchargé gratuitement ici, à la fois pour Windows, Linux et Mac.

Vous aurez également besoin de l'extension Platform IO. Une fois que VS-Code est installé, rendez-vous dans les extensions de la barre d'outils sur la gauche (l'icône avec les 4 carrés), cherchez Platformio et cliquez sur "Installer". Vous pouvez aussi utiliser le plugin pour Auto-Build Marlin, ce qui rend les choses un peu plus rapides si vous installez votre carte avec le bon processeur, mais nous pouvons aussi le faire à l'ancienne. Nous allons vous montrer comment faire, plus loin dans le texte.

Une fois que vous avez tout rassemblé, il vous faut encore le firmware Marlin. Rendez-vous donc sur Marlin GitHub et téléchargez la dernière version.

Vous remarquerez qu'il existe une version bugfix et une version normale. La version bugfix contient les dernières modifications du firmware. Elle peut être utile, mais c'est aussi la version la moins stable, car elle est constamment en développement. Cependant, l'équipe Marlin est très douée pour identifier et corriger les bugs et les erreurs, c'est pourquoi nous aimons utiliser ces versions.

Cliquez sur "Code" en haut à droite pour télécharger le firmware sous forme de zip, décompressez le dossier zip et chargez le VS Code. Allez ensuite sur le fichier et ouvrez le dossier et le firmware Marlin.

Suivent ensuite les fichiers de configuration. Des configurations d'imprimantes spécifiques peuvent également être trouvées sur GitHub.

Celles-ci sont surtout très utiles si tu vous ne voulez modifier que légèrement le firmware. Par exemple, si vous possédez une imprimante, disons une Ender 3, et que vous venez de changer le hotend et que vous devez changer la thermistance dans le firmware, vous pouvez simplement télécharger les fichiers de configuration pour cette imprimante et les insérer dans le dossier Marlin que vous venez de télécharger. De cette façon, toutes les particularités du firmware standard de l'imprimante sont déjà présentes et il ne reste plus qu'à modifier les valeurs de la thermistance.

Quand vous préparez un dossier de firmware pour l'édition, il y a un point très important à considérer avant de commencer l'édition, et c'est le choix de la bonne carte mère et du bon modèle de processeur.

Lorsque vous ouvrez la page configuration.h dans l'explorateur sur la gauche, vous voyez à la ligne 70 une commande qui indique quelle carte mère est utilisée. Pour de nombreuses cartes, il n'existe qu'une seule version, mais certaines ont des variantes ou certaines imprimantes ont utilisé différentes cartes dans le passé. Le mieux reste d'ouvrir votre imprimante et de vérifier quelle carte est installée.

Pour savoir exactement comment votre carte est désignée dans le firmware, retournez dans l'explorateur sur la gauche, allez dans src, core et boards.h. C'est une liste de toutes les cartes que Marlin prend en charge. Utilisez ensuite Ctrl+F et saisissez la marque de votre carte, par exemple pour les cartes Creality Ender 3 : Creality. Faites défiler vers le bas jusqu'à trouver les cartes Creality V4. Vous pouvez simplement utiliser Board_Creality_V4. Le même processus s'applique pour n'importe quelle carte mère de n'importe quelle marque, tant qu'elle est prise en charge par cette version de Marlin. Vous trouverez aussi les variantes de processeurs pour cette carte. Pour les cartes version 4, nous voyons ici STM32F103RC et STM32F103RE.

Notez les deux, retournez dans Configuration.h et copiez la carte dans la zone après #define MOTHERBOARD. Maintenant, vous pouvez aussi aller sur la barre d'outils de l'explorateur sur la gauche et cliquer sur l'onglet platform.io pour vous assurer que le bon modèle de processeur se trouve dans la ligne default_envs en haut de la page.

C'est tout ! Nous pouvons maintenant éditer le firmware. Il y a deux pages principales que nous allons éditer, la plupart dans config.h, mais certaines aussi dans config_adv.h.

2. Ports série, vitesse de transmission, Bluetooth, nom personnalisé

Vous pouvez commencer par config.h. Nous en avons déjà fini avec la carte mère, passons donc à la définition suivante : les ports série.

Presque toutes les imprimantes utilisent un port série pour se connecter à différents appareils. Dans la plupart des cas, un seul est utilisé, mais si vous connectez quelque chose d'autre, comme un écran tactile avec une carte SD ou un port USB, vous devrez peut-être expérimenter un peu. Ce n'est pas ce que nous allons faire ici, alors oublions cela pour le moment.

La vitesse de transmission est la vitesse de communication pour ces ports. Elle peut varier, mais la plupart utilisent une vitesse de transmission de 115200.

Vous trouverez plus loin d'autres options pour les ports série, mais nous pouvons laisser les indications indéfinies telles quelles, car vous n'aurez probablement pas besoin de ports série supplémentaires.

Il existe également des options pour la connexion Bluetooth, qui est plutôt rare pour les imprimantes, et une option pour changer le nom de l'imprimante, qui est désactivée par défaut. Vous pouvez voir ce nom sur l'écran LCD lorsque votre appareil est allumé. Activez cette option et saisissez un nouveau nom si vous en avez envie.

3. Pilote pas à pas

L'étape suivante est celle des pilotes pas à pas. Cela peut sembler difficile au premier abord, mais c'est loin d'être le cas. Chaque imprimante utilise des pilotes pas à pas, lesquels contrôlent les moteurs. Auparavant, les imprimantes utilisaient le A4988 ou d'autres variantes, ce qui rendait les moteurs assez bruyants. Aujourd'hui, les pilotes TMC2208 ou TMC2209 sont installés en standard dans la plupart des imprimantes. Il existe cependant toute une série d'autres pilotes avec des caractéristiques et des avantages différents, comme la répartition des pas, le courant maximal ou le homing sans capteur, qui ne nécessite pas d'interrupteurs de fin de course physiques pour la prise d'origine des axes.

Vous pouvez simplement configurer quel pilote vous souhaitez utiliser pour quel accès. Souvent, la carte mère d'une imprimante n'indique pas quels pilotes pas à pas sont utilisés. Parfois, une carte utilise des pilotes intégrés, ce qui signifie qu'ils ne peuvent pas être supprimés. Dans ce cas, il n'est probablement pas indiqué quel pilote est utilisé, mais une marque sur la carte mère l'indique parfois. Par exemple, les cartes Creality V4 présentent un petit code sur le port pour carte SD. S'il y est écrit "T8", cela signifie que le pilote TMC2208 est utilisé. Certaines cartes mères utilisent des pilotes amovibles, ce qui présente l'avantage de pouvoir les remplacer facilement en cas de panne. En effet, en cas de panne avec des pilotes intégrés, la carte est fichue et il faut en acheter une nouvelle.

4. Homing sans capteur

J'aime personnellement beaucoup le homing sans capteur. Certes, il n'est pas aussi précis que les fins de course physiques, mais il réduit le besoin de câbles. Et je déteste les câbles. Tous les pilotes ne prennent pas en charge le homing sans capteur, par exemple les pilotes TMC2208, très populaires, ne peuvent pas utiliser cette fonction. En revanche, les pilotes TMC2209 le peuvent.

Pour faire fonctionner le homing sans capteur, quelques modifications physiques sont nécessaires sur la carte mère. Pas d'inquiétude : elles sont vraiment simples. Cela peut varier en fonction de la carte mère, mais il suffit généralement de placer des cavaliers sur certaines broches. Voir le manuel SKR Mini E3.

En ce qui concerne le firmware, vous pouvez voir ici ce qui est nécessaire pour obtenir un homing sans capteur : premièrement, HOMING_BUMP doit être mis à 0 à la ligne 210 (configuration_adv.h). Ceci est normalement utilisé pour les endstops. l'axe atteint l'endstop, recule un peu, puis l'atteint à nouveau plus lentement. Par défaut, il s'agit de quelques mm, nous devons le désactiver.

Ligne 1174, ENDSTOP_INTERRUPTS_FEATURE (configuration.h) doit être indéfini.

Le point suivant est le courant. Ce qui est pratique avec ces cartes mères par rapport aux anciennes, c'est que le courant du moteur ne pouvait pas être modifié par firmware sur les anciennes cartes 8 bits. Il fallait changer la Vref sur la carte principale en tournant un petit potentiomètre qui était très sensible. En tournant ce dernier un tout petit peu trop, il montait à 1,5, alors que pour la plupart des moteurs xy, il ne fallait que 0,8 (ou 800 mA). Vous trouverez les lignes pour régler le courant à partir de 2386 (configuration_adv.h).

L'intensité de courant dont vous avez besoin dans votre firmware dépend du pilote pas à pas et du moteur. Si vous avez un moteur assez moyen, comme un moteur 42-34, la valeur du courant doit être ici de 800 seulement. Si vous trouvez une fiche technique pour votre moteur, vous verrez peut-être que le courant maximal est de 1,5A ou 1500mA. N'entrez cependant pas 1500 dans le firmware, c'est une valeur de pointe absolue. En travaillant avec les valeurs de pointe, cela peut mal finir. Nous recherchons la valeur RMS, la moyenne quadratique du courant. Le calcul du courant correct n'est en fait pas si simple, mais il existe des calculateurs, comme par exemple celui de ALL3DP.

La gestion du courant est cruciale pour le calibrage du homing sans capteur, et vous devrez peut-être faire quelques essais pour vous assurer qu'il fonctionne de manière optimale.

MONITOR_DRIVER_STATUS se trouve à la ligne 3204 (configuration_adv.h). Il permet de vérifier régulièrement les pilotes afin de déterminer leur état. Marlin peut réduire automatiquement le courant du pilote si celui-ci signale un avertissement de surchauffe. Activez donc cette fonction.

Vous pouvez aussi activer TMC_DEBUG à la ligne 3317 (configuration_adv.h), où vous trouverez plus d'informations sur les pilotes pas à pas.

Maintenant, nous pouvons activer SENSORLESS_HOMING à la ligne 3272 (configuration_adv.h). Il s'agit de l'activer pour X et Y et régler la sensibilité au décrochage, soit la sensibilité avec laquelle les pilotes peuvent mesurer le décrochage (stall), c'est-à-dire quand le moteur déplace la tête d'impression vers un côté de son axe et atteint l'extrémité. Si la valeur est trop basse, il ne détectera rien et continuera à faire tourner le moteur, même si la tête d'impression tape sur le côté, si elle est trop élevée, il "détectera" constamment le décrochage, même si la tête d'impression reste proche du centre de l'axe. Après avoir flashé le firmware, l'écran LCD a maintenant un menu dans lequel on peut modifier les valeurs de sensibilité au décrochage et de courant, de sorte qu'il suffit d'adapter les valeurs en fonction de leurs résultats. Les valeurs pour le décrochage vont de 0 à 255, donc le premier essai devrait se faire au milieu, autour de 128. Ajustez la valeur en conséquence, puis essayez encore et encore et encore. Si vous ne parvenez pas à régler la valeur correctement, quelle que soit la valeur que vous choisissez, cela ne fonctionne tout simplement pas. Vous devez alors adapter l'intensité du courant, en l'augmentant simplement un peu. JUSTE UN PEU ! Si elle est de 800 milliampères, augmentez-la à 850 et essayez à nouveau.

Vous pouvez aussi utiliser define IMPROVE_HOMING_RELIABILITY (améliorer la fiabilité du homing) un peu plus bas à la ligne 3291.

Vous vous posez peut-être la question : le homing sans capteur sur l'axe Z est difficile, surtout pour les imprimantes qui utilisent des broches pour le mouvement Z, ce qui est le cas de la plupart des imprimantes. Pour vous éviter des problèmes, n'activez pas le homing sans capteur pour l'axe Z.

5. Microstepping et Stealthchop

Il existe une autre fonction de pilote X_MICROSTEPS (configuration_adv.h) à la ligne 2838. Les pilotes pas à pas se déplacent par pas, généralement 1,8 degré par pas, ce qui est très précis. Mais est-ce que cela peut être encore plus précis ? Outre le fait que l'on peut se procurer un autre moteur dont la mesure par pas est plus petite, on peut utiliser le microstepping, qui demande au pilote de signaler au moteur qu'il peut se déplacer de moins de 1,8 degré, ce qui est assez pratique pour un réglage très précis. Le réglage par défaut est de 16, mais on peut aller plus haut, ce qui signifie évidemment que le nombre de pas nécessaires pour déplacer un moteur sur une certaine distance change également. C'est pourquoi Marlin a cette merveilleuse fonction appelée Interpolate à la ligne 2833 (configuration_adv.h). Cette fonction, si elle est définie sur true, "interpole" automatiquement chaque valeur de pas du moteur, de sorte que vous n'avez rien à changer manuellement. Ainsi, si vous faites passer le microstepping de 16 à 32, vous devez adapter les pas pour tous les moteurs afin d'atteindre la nouvelle valeur. Si vous activez l'interpolation, cela se fait automatiquement.

Le point suivant est le STEALTHCHOP à la ligne 3140 (configuration_adv.h). Il rend le tout très silencieux. Vous pouvez également jeter un œil à CHOPPER_TIMING CHOPPER_DEFAULT juste en dessous. Vous avez très probablement une imprimante 24 V. Réglez-la sur 24 V. Bien sûr, la disponibilité de Stealthchop dépend aussi de votre pilote, mais heureusement, la plupart d'entre eux le prennent en charge de nos jours.

6. Contrôle de l'alimentation

De retour dans Configuration.h, nous trouvons à la ligne 388 le contrôle PSU (configuration.h) qui peut être intéressant si nous voulons arrêter automatiquement notre imprimante après avoir terminé un travail d'impression.

7. Paramètres thermiques - thermistance et température min./max.

L'étape suivante est celle des réglages thermiques à la ligne 430 (configuration.h), et c'est probablement le tutoriel sur le firmware le plus demandé. Pour beaucoup d'utilisateurs, le hotend est la première pièce à être changée. Donc, que faire si vous avez un Ender 3 et que vous souhaitez installer un hotend Revo ? Il y a deux choses à changer, et la première est la thermistance. La plupart des imprimantes utilisent une thermistance de 100k, pour laquelle le type de capteur dans Marlin est "1". Cependant, la Revo et de nombreuses autres thermistances utilisent le numéro 5, qui est également une thermistance 100k, mais de Semitec. Comme vous pouvez le voir, plusieurs marques utilisent ce type de thermistance. Mais peut-être voulez-vous passer à quelque chose de plus puissant, comme une PT1000 ? Cela dépend de la PT1000, mais la plupart utilisent le capteur n°1047 avec un pull up de 4,7 ohms.

Vous pouvez faire la même chose pour temp_sensor_bed à la ligne 536 (configuration.h).

L'autre chose à faire lors d'un changement de hotend, c'est la modification de la HEATER_0_MAXTEMP à la ligne 611 (configuration.h). Les hotends PTFE sont généralement limités à 260 °C, ce qui est indiqué à 275 °C dans Marlin. Je ne suis pas sûr de la raison pour laquelle cela a été fait, mais quelle que soit la température que vous indiquez ici, la température réelle que votre imprimante atteindra sera inférieure de 15 °C. Donc, si vous avez un hotend de 300 °C, il faut entrer au moins 315 °C comme valeur maximale.

En ligne 597, vous trouverez également HEATER_0_MINTEMP, qui désactivera automatiquement le chauffage lorsqu'il atteindra cette température. D'ailleurs, si vous avez une imprimante qui désactive le chauffage ou qui affiche une erreur Mintemp et que vous n'êtes pas sûr de savoir pourquoi, cela peut être dû au fait que votre imprimante se trouve dans un environnement trop froid. Nous recevons beaucoup de questions à ce sujet en hiver, car beaucoup d'utilisateurs ont leur imprimante dans le garage, et cela peut facilement arriver.

À la ligne 623, vous trouverez le dépassement thermique (overshoot) (configuration.h), qui autorise des températures supérieures à la valeur Maxtemp avant d'éteindre l'appareil. Les dépassements peuvent se produire si votre chauffage n'est pas calibré, ce qui nous amène à la ligne 633 et à l'accord PID (tuning) (configuration.h).

8. Paramètres PID

Les paramètres PID permettent de synchroniser le chauffage et la thermistance, pour un chauffage très précis. Le plus important ici est la ligne 659, dans laquelle sont indiquées les valeurs par défaut pour la proportionnelle, l'intégrale et la dérivée. Vous n'avez pas vraiment besoin de changer quoi que ce soit ici, mais si vous changez les chauffages, cela peut être une bonne idée d'effectuer un réglage PID qui calibre essentiellement votre chauffage ou votre thermistance pour que la température ne varie pas trop lorsque votre imprimante est en fonctionnement. Je recommande donc de le faire après une mise à jour de l'imprimante. Il y a plusieurs façons de le faire, mais une façon simple est de l'activer dans votre menu LCD à la ligne 803. Une autre méthode serait de connecter l'imprimante à l'ordinateur via USB et d'utiliser un programme de terminal comme Pronterface.

Dans ce terminal, vous pouvez entrer des commandes gcode. La commande correcte pour le réglage du PID est "M303 E0 S210 C10 U".

Ici, M303 est la commande pour lancer le processus de paramétrage.

E0 fait référence au chauffage utilisé (E0 est le réglage par défaut pour presque toutes les imprimantes mono-extrudeuse).

S210 fait référence à la température de 210 °C qui convient au PLA, mais vous pouvez la modifier si vous voulez utiliser principalement d'autres filaments.

C7 indique la fréquence à laquelle le test doit être effectué. Plus le test est fréquent, plus il est précis, mais nous avons constaté qu'il n'est pas nécessaire de faire plus de 7 tests.

Dès que tu as entré cette commande, le test est effectué et les valeurs de Kp, Ki et Kd sont déterminées.

Dès que vous avez ces valeurs, vous pouvez les entrer dans le terminal avec la commande M301, comme M301 P30 I3 D60.

Ensuite, enregistrez vops paramètres avec une commande M500, et c'est fini.

Il y a encore plus à savoir sur le contrôle PID du lit et du boîtier. Le réglage PID de votre lit n'est pas aussi important que celui de votre hotend. Les hotends sont changés beaucoup plus souvent que la thermistance du lit, mais cette possibilité de réglage existe.

9. Sécurité - extrusion à froid et emballement thermique

Le prochain point important est la protection contre l'emballement thermique à la ligne 827 (configuration.h), que vous devez absolument activer ! Cela permet d'arrêter l'imprimante si la température s'élève au-delà de ce qui est prévu. Peut-être que la thermistance s'est déplacée et que vous ne le savez pas. Sans cette fonction, la température continue d'augmenter et la valeur de la thermistance ne change guère, ce qui peut être très mauvais. ACTIVEZ absolument cette fonction.

Il existe aussi une fonction pour empêcher l'extrusion à froid à la ligne 816 (configuration.h). Cela permet d'éviter que le moteur de l'extrudeuse ne soit activé si la température est inférieure à la valeur saisie. Par défaut, une valeur de 170 est définie ici. Le type de filament que vous utilisez normalement avec votre imprimante vous indiquera quelle valeur doit être utilisée ici. Par exemple, si vous imprimez principalement du PETG, vous devriez régler une température d'environ 220 °C.

10. Paramètres mécaniques - Corexy, imprimante à convoyeurs, bras robotisé

L'étape suivante est celle des réglages mécaniques, et comme nous allons utiliser une configuration Corexy, c'est très important. C'est ici que nous devons définir Corexy.

D'autres systèmes cinématiques sont réglables ici, comme le delta, l'imprimante à convoyeur ou les bras robotisés.

11. Paramètres Endstop et Endstop Noise Threshold

Viennent ensuite les réglages de l'endstop à la ligne 1071 (configuration.h). Ici, les endstops sont simplement activés.

Ici, il y a une autre petite fonction Endstop Noise Threshold. Il y a longtemps, j'ai dû utiliser cette fonction lorsque j'ai voulu ajouter des câbles extra longs à une imprimante, de sorte que toute l'électronique se trouvait à l'extérieur du boîtier. Pour une raison quelconque, les longs câbles entraînaient la détection d'erreurs lors du homing, mais cette fonction m'a sauvé la mise.

12. Paramètres de mouvement - accélération, step, feedrate, jerk, junction deviation, linear advance

L'étape suivante est la configuration du mouvement à 1194 (configuration.h), et la toute première est le pas standard. Comme nous l'avons déjà mentionné, les moteurs pas à pas tournent de 1,8 degrés par pas (à moins que vous n'ayez un moteur de 0,9 degré). Lorsque le moteur fait tourner une courroie, une vis-mère ou une roue dentée, il doit faire un certain nombre de pas pour que la pièce se déplace de la quantité souhaitée. Le plus souvent, cela doit être modifié lors d'un changement d'extrudeuse : vous devez seulement changer la valeur dans cette ligne. En règle générale, les fabricants indiquent les pas de l'extrudeuse (ou esteps), mais il se peut qu'ils doivent être adaptés, c'est pourquoi nous effectuons un calibrage esteps. Il existe beaucoup de vidéos à ce sujet.

Les esteps, ainsi que toutes les valeurs de stepping, n'ont pas besoin d'être configurées dans le firmware, vous pouvez simplement éditer votre gcode de démarrage pour insérer une nouvelle valeur avec une commande M92. C'est la manière la plus simple de changer d'extrudeuse, car vous n'avez alors pas besoin de mettre à jour votre firmware dans la plupart des cas. Vous pouvez également le faire via Pronterface, comme nous l'avons déjà montré. Cela peut en fait se faire pour toutes les valeurs de la catégorie "Paramètres de mouvement" avec M203 pour la vitesse maximale (feedrate), M201 pour l'accélération maximale, m204 pour l'accélération standard et M205 pour les paramètres de jerk. Par exemple, si vous voulez changer les pas de l'extrudeuse pour une nouvelle extrudeuse Bondtech, il vous suffit d'écrire M92 E415 dans le Gcode de départ (M92 est la commande pour changer les pas d'un moteur et E indique qu'il s'agit du moteur de l'extrudeuse), c'est tout. Ces valeurs ne sont donc pas gravées dans le marbre et peuvent être facilement modifiées sans modifier le firmware.

Au fait, si vous vous intéressez aux commandes gcode en général, et aux paramètres qu'elles utilisent, vous pouvez consulter le site de Marlin, qui contient une liste de toutes les commandes gcode, dont certaines peuvent être très utiles. Voici un exemple de gcode d'accélération de démarrage M204.

Jerk est une fonction qui limite le taux de variation de l'accélération d'un axe, notamment lorsque la tête d'impression est immobile puis se met soudainement en mouvement, mais aussi lors des rotations à 90 degrés. Il s'agit d'une fonction relativement ancienne dans le firmware, toujours utilisée par de nombreuses imprimantes. Les imprimantes plus récentes, en particulier celles équipées d'un firmware Klipper, utilisent cependant une "Junction Deviation" :

Rendez-vous à la ligne 1288 et définissez junction deviation. Assurez-vous également que classic_jerk n'est pas défini à la ligne 1265 (configuration.h). Cette partie du firmware est terminée, mais vous devez encore trouver la valeur de la junction deviation. Par défaut, elle est fixée à 0,013 mm, mais cela dépend entièrement de votre imprimante. Heureusement, il s'agit d'un test simple : tout ce que nous avons à faire est d'imprimer un modèle où chaque couche a une valeur légèrement différente pour la déviation de la jonction, puis de vérifier quelle couche s'imprime le mieux. Si vous remarquez un ringing trop fort, cela signifie que la valeur est trop élevée. Mais elle ne doit pas non plus être trop basse, car cela ralentirait le processus.

TeachingTech dispose pour cela d'un excellent guide et calculateur.

Vient ensuite l'accélération en courbe en S à la ligne 1301 (configuration.h), qui réduit les vibrations et qui, comme la fonction jerk, est relativement ancienne et a été mise de côté au profit de nouvelles fonctions. L'une d'entre elles est la Linear Advance. Celle-ci permet de contrôler la vitesse du volume extrudé lors des changements d'accélération. Avez-vous déjà remarqué, lors de l'impression de coins à 90 degrés, que l'impression se courbe un peu à cet endroit ? C'est exactement ce à quoi le Linear Advance est censé remédier.

En ce qui concerne le firmware, cela est similaire à la Junction Deviation. Allez à la ligne 2205 de configuration_adv.h. Vous devez simplement supprimer le commentaire pour qu'il soit défini. Ensuite, calibrez-le pour trouver la bonne valeur. Nous l'appelons la valeur k, par défaut de 0,22.

Le calibrage de la valeur k est similaire au calibrage de la valeur de la déviation de la jonction : nous imprimons quelque chose avec différentes valeurs et voyons laquelle fonctionne le mieux. Heureusement, il y a chez Marlin un calculateur absolument génial qui permet de calculer tout cela.

13. Z-probe, nivellement de plateau, changement du sens de rotation du moteur

Ligne 1311, nous arrivons au nivellement du lit et aux Z-probes (configuration.h). C'est une section très vaste, car il existe de nombreuses méthodes de nivellement, et pas seulement des add-ons de nivellement automatique. Si vous souhaitez en savoir plus sur le firmware du BLTouch ou d'appareils similaires, je vous recommande la vidéo de TeachingTech, qui traite de la façon de faire fonctionner un BLTouch sur pratiquement n'importe quel appareil.

Le sens de votre moteur doit-il être inversé ? C'est parfois nécessaire lors de changement d'extrudeuse ou de pilotes pas à pas. Il y a beaucoup de fonctions dans Marlin qui nécessitent une inversion de sens, mais vous n'avez pas besoin de le faire maintenant. Lorsque vous compilez et flashez votre firmware, essayez simplement de déplacer un moteur et vérifiez qu'il tourne dans le bon sens. Si vous devez changer de sens, allez à la ligne 1698 et modifiez INVERT_[X/Y/Z]_DIR en false ou true.

14. Taille du plateau et détecteur de filament

Le point suivant à la ligne 1753 (configuration.h) est la taille du lit. Les lits devraient avoir un peu de marge, car nous ne voulons pas que notre modèle imprime trop près du bord. Nous pouvons donc définir notre min_position à 0, ce qui sera le point où l'endstop ou le homing sans capteur arrêtera cet axe lors du homing automatique. Il se peut que l'endstop soit déjà à une distance raisonnable du bord du lit, ou qu'il ne soit même pas sur le lit. Dans ce cas, vous aurez besoin d'une marge de manœuvre. Éditez simplement la min_position en mm pour inclure votre marge de manœuvre, puis déplacez le chariot sur le côté opposé du lit vers le point qu'il ne doit pas dépasser : votre ta max_position.

Viennent ensuite les détecteurs de filament à la ligne 1818 (configuration.h). La manière la plus simple de mettre en place un détecteur de filament est d'utiliser un détecteur de fin de course normal avec une petite roulette à l'extrémité. Cette roulette est assez importante, car si l'on retire le filament, la bande métallique peut se tordre ou même se casser, ce qui rend l'interrupteur inutilisable ou peu fiable. Il existe d'autres options, comme un capteur optoélectronique, qui est à mon avis beaucoup plus fiable. Je n'ai jamais eu de problème avec le détecteur sur le Prusa MK3, mais les capteurs de fin de course sont faciles à ajouter, ils ne sont pas chers et avec une bonne conception, ils peuvent très bien fonctionner. Si vous souhaitez en utiliser un, ne commentez pas filament_runout_sensor à la ligne 1830, activez #define FIL_RUNOUT_ENABLED_DEFAULT en true, avec la valeur 1, sauf si vous avez deux extrudeuses. Mettez #define NUM_RUNOUT_SENSORS à 1?. Vous devriez certainement avoir activé la commande M600 (dont on parle ci-dessous). Passez alors à la ligne 1877 (configuration.h).

Vous devez aussi aller à ADVANCED_PAUSE_FEATURE à la ligne 2752 (configuration_adv.h) et retirer le commentaire. Il y a encore beaucoup d'autres réglages fins que vous pouvez faire ici, et Marlin a également ajouté quelques commentaires très utiles et faciles à comprendre. Modifiez-les comme vous le souhaitez et adaptez-les à votre imprimante.

Tout ce qu'il vous reste à faire, c'est de connecter la carte. Pour vérifier où se trouve le pin par défaut, vous pouvez aller dans SRC, PINS et votre modèle de processeur, le sélectionner et rechercher FIL_RUNOUT_PIN avec un Ctrl+F. Chez nous, sur un BTT SKR e3 Mini V3.0, le pin est PC15. Allez sur Google et cherchez le nom de votre carte, pour trouver le diagramme de pinout et où se trouve le pin.

15. M600

Nous avons déjà mentionné la commande M600. Il s'agit d'une fonction du firmware malheureusement trop peu utilisée, mais très utile, à savoir le changement de filament en cours d'impression. Si vous souhaitez imprimer les premières couches dans une couleur, les suivantes dans une autre, puis changer de couleur à chaque fois, vous pouvez le faire avec cette fonction. Regardez ce badge que nous avons créé avec la commande M600.

Nous avons donc déjà activé M600 et la fonction de pause avancée (advanced pause), nous devons maintenant activer la fonction de parking de la tête d'impression. Allez donc à la ligne 2362 (configuration.h) et activez "nozzle park". Vous pouvez changer la position ici si vous le souhaitez, et aussi la vitesse sous "feedrate" et "minimum z feed rate".

Allez maintenant à la ligne 824 et activez Extrude max length (configuration.h). Ainsi, le nouveau filament sera tiré jusqu'à cette longueur, ce qui est suffisant pour éliminer l'ancien filament et changer complètement la couleur. Cette valeur dépend du fait que vous utilisiez un câble Bowden ou un direct drive. Si vous avez un système Bowden avec un long tuyau en PTFE, cette valeur doit être assez élevée. Avec un Direct Drive, elle peut être faible.

Retournez ensuite à la fonction pause avancée dans configuration_adv.h et assurez-vous que PARK_HEAD_ON_PAUSE n'est pas commenté pour que la buse soit parquée en conséquence (configuration_adv.h).

16. Fonctions supplémentaires - EEPROM, paramètres de préchauffage, nettoyage de la buse, mots de passe, langue, sensibilité de l'encodeur, LCD, néopixels

L'élément suivant est l'EEPROM à la ligne 2291 et doit absolument être activé (configuration.h).Il s'agit d'une fonction de mémoire sur votre imprimante. Ainsi, si vous modifiez quelque chose, avec une commande Gcode par exemple, vous pouvez le sauvegarder avec une commande M500 et cela sera conservé. Sans cette fonction, l'imprimante redémarre simplement avec les paramètres du firmware que vous avez définis sur votre ordinateur. Pratique !

Viennent ensuite les constantes de préchauffage (preheat constants) à la ligne 2335 (configuration.h). Comme pour l'EEPROM, elles devraient être présentes par défaut, même si parfois les valeurs ne sont pas géniales. J'aime que ces valeurs soient un peu plus élevées que la température d'impression réelle, mais ce n'est qu'un détail. Par défaut, seules les températures PLA et ABS sont préréglées, mais si vous n'en utilisez pas vraiment ou si vous avez besoin de nombreux préréglages, il est possible d'en ajouter jusqu'à 10.

Vient ensuite la fonction de buse propre à la ligne 2374 (configuration.h). C'est utile pour une imprimante à double extrudeuse, mais cela pourrait aussi être utile pour une imprimante à simple extrudeuse, si la première couche doit être parfaite.

Le point suivant : le mot de passe à la ligne 2498 (configuration.h). Vous ne souhaitez peut-être pas que votre enfant ou vos colocataires, par exemple, utilisent l'imprimante. La protection par mot de passe pourrait être utile dans ce cas, mais si vous êtes le seul à avoir accès à l'imprimante, un mot de passe n'a pas vraiment de sens.

Nous avons également des réglages pour le support LCD à la ligne 2529 (configuration.h). Si l'anglais ou le chinois n'est pas votre langue maternelle, pas d'inquiétude : vous pouvez régler la langue ici. Si vos contrôleurs utilisent une molette d'encodage, vous pourrez modifier la sensibilité à la ligne 2602 (configuration.h). Plus bas, dans les paramètres du contrôleur, vous pouvez choisir contrôleur, peut-être un avec support de carte SD ou un avec écran tactile.

Vous pouvez aussi ajouter des néopixels à votre imprimante. Il s'agit de LEDs spéciales pour un meilleur éclairage, esthétique et pratique. Vous trouverez ces réglages à la ligne 3450 (configuration.h).

Une autre fonction peut vous être utile : l'Input Shaping. Il s'agit d'une nouvelle fonction dans Marlin qui peut compenser les vibrations qui peuvent causer des défauts disgracieux dans votre impression. Nous avons déjà créé une vidéo et un guide pour vous aider à l'installer.

Cette liste ne couvre en aucun cas tout ce dont vous aurez besoin dans votre vie d'imprimeur, mais vous donne un aperçu du plus important ou utile à modifier dans le firmware. Si vous rencontrez des problèmes avec une partie spécifique du firmware Marlin ou si vous souhaitez que cette liste soit étendue, faites-le nous savoir ! Nous développerons ce guide à l'avenir pour vous aider à effectuer tous les changements que vous souhaitez.