Voici le micrologiciel Marlin 1.1.9 pour les imprimantes Geeetech A10M avec extrudeuse mélangeuse. J'ai porté toutes les fonctionnalités de Geeetech à partir de la version 1.1.8 de Geeetech, qui comprend :
Support complet du BLTouch avec mon hack permettant de régler avec précision les petites inclinaisons de la plaque de construction qui ne pourraient pas être éliminées par le nivellement automatique seul ; le BLTouch est activé par défaut, désactivez-le en commentant la ligne "#define BLTOUCH" dans le fichier Configuration.h si nécessaire.
Récupération/reprise en cas de perte de puissance. J'ai essayé d'activer une fonction de perte de puissance native de Marlin mais il s'est avéré qu'elle ne se compile pas en raison de l'épuisement de la mémoire de la variable globale. Finalement, j'ai décidé de porter une version limitée de cette fonctionnalité de Geeetech qui semblait fonctionner assez bien.
Caractéristiques du mélange de gradients/du mélangeur de filaments. La version actuelle de Marlin n'a qu'un support rudimentaire pour le mélange des extrudeuses, il y a encore beaucoup de bogues et d'implémentations de code sous-optimales dans cette mesure. J'ai fait quelques modifications dans le code original de Marlin pour faire fonctionner correctement une extrudeuse de mélange. J'ai ainsi corrigé un certain nombre de bogues pour la fonction de changement de filament, y compris l'implémentation des codes g M701/M702.
Les paramètres d'extrusion ont été ajustés avec précision, c'est pourquoi j'ai calibré les extrudeuses en augmentant la valeur des pas par mm de 340 à 430.
Capteurs de faux-rond activés ;
D'autres ajustements et mises au point.
Quelques mots sur le hack de compensation de basculement. Mon expérience de travail avec différentes machines utilisant la fonction de nivellement automatique sous le microprogramme Marlin montre que tout le matériel présente une erreur de nivellement automatique constante qui provoque une inclinaison de la plaque de construction vers l'un des coins qui peut atteindre des dixièmes de mm dans certains cas. Tous les matériels que j'ai utilisés présentaient cette erreur d'inclinaison de nature peu claire, qui peut varier selon le coin à incliner, mais qui ne dépend pas du type de capteur (j'ai utilisé des capteurs inductifs, capacitifs et, bien sûr, BLTouch - ils présentaient tous cette erreur d'inclinaison). Donc, après de nombreuses tentatives infructueuses de réglage en utilisant uniquement les fonctions de Marlin, j'ai piraté moi-même le code Marlin pour résoudre ce problème. J'ai ajouté quelques lignes au fichier Configuration.h pour contrôler cette fonctionnalité :
#définir la compensation d'inclinaison
#if ENABLED(TILT_COMPENSATION)
#define X_TILT_COMP 0.04 // valeur inférieure - bord gauche du lit plus haut
#definir Y_TILT_COMP 0,3 // valeur inférieure - bord avant du lit plus élevé
#endif
Ce sont des valeurs qui fonctionnent pour ma machine, qui peut ou non correspondre à la vôtre. Si vous voyez une inclinaison distinctive sur un ou deux côtés de la plaque de construction, essayez d'abord de désactiver cette caractéristique et effectuez un test d'impression. Modifiez X_TILT_COMP et Y_TILT_COMP si nécessaire pour obtenir une impression de première couche absolument plane. Utilisez le modèle "leveling_test.stl" pour tester la précision du niveau automatique.
J'ai fait quelques tests de travail de ce micrologiciel mais il pourrait encore y avoir des bogues, alors utilisez-le à vos propres risques. Profitez-en ! :)
Mise à jour 1 :
Mes G-codes de début et de fin dans Cura fonctionnent bien avec ce firmware :
;Démarrer le G-Code
G21 ;valeurs métriques
G90 ;positionnement absolu
M107 ;commencer par le ventilateur éteint
G28 ;déplacer X/Y/Z vers les butées min (Homing)
G29 ;niveau de démarrage automatique
G1 Z15.0 F9000 ;déplacer la plate-forme vers le bas de 15mm
G92 E0 ;zéro la longueur extrudée
G0 F7200.000000 X1.0 Y160 Z0.300 ;déplacer le curseur vers le bord gauche du lit
G1 F1800.000 X1.0 Y110.0 E10 ;filament de purge
G1 X0 Y110 E13 ;purger plus de filament
G1 X0 Y60 E16.0 ;purgez encore plus
G92 E0 ;remettre à zéro la longueur extrudée
G1 F1500 E-6.5 ;se rétracter
G1 Z30.0 Y-5.0 ;lever le caret
T0 ;passer à l'extrudeuse 0
M420 S1 ;reprise de l'auto-nivellement après le changement d'extrudeuse
M117 Impression...
;-----------------------------------------------------------
;Fin du G-Code :
M104 S0 ;chauffage de l'extrudeuse éteint
M140 S0 ;chauffage de lit éteint (si vous l'avez)
G91 ;positionnement relatif
G1 E-1 F300 ;rétracter un peu le filament avant de soulever la buse, pour relâcher un peu de pression
G1 Z+0,5 E-5 X-20 Y-20 F9000 ;déplacer Z un peu plus haut et rétracter encore plus le filament
G28 X0 Y0 ;déplacer X/Y sur les butées min, de manière à ce que la tête soit hors de portée
M84 ;steppers off
G90 ;positionnement absolu
;-----------------------------------------------------------
;Switch Extruder 1 G-Code
M420 S1 ;reprise de l'auto-nivellement après le changement d'extrudeuse
;-----------------------------------------------------------
;Switch Extruder 2 G-Code
M420 S1 ;reprise de l'auto-nivellement après le changement d'extrudeuse
;-----------------------------------------------------------
Mise à jour 2 : Important Trouvé un bogue dans le facteur électronique pour le débit d'alimentation des extrudeuses, entraînant un mauvais fonctionnement de la deuxième extrudeuse dans certaines circonstances (merci à l'utilisateur szerwi). Fichier du firmware mis à jour, veuillez télécharger la dernière version et re-flash.