Bonjour à tous et toutes.
Suite à mon article sur la découverte du Kit ERCFv2 de chez Siboor, aujourd’hui, je vais vous faire découvrir, étape par étape, l’installation de tout l’écosystème logiciel nécessaire à son fonctionnement sous Klipper.
Ceci ne sera pas un tutoriel mais plutôt un guide sur comment aller à l’essentiel et comment parcourir la documentation.
En effet, celle-ci est très volumineuse, en anglais, sous Github, et donc pas forcément appréhendable par tout le monde.
Moi même, il m’a fallu environ 1 mois pour comprendre tous les rouages, les étapes de calibrations importantes et nécessaires, où sont les paramètres et à quoi ils servent.
D’ailleurs, entre la date de mon achat et cet article, Siboor a mis en ligne, sur son site de documentation, un guide plutôt bien fait : https://docs.siboor.com/siboor-ercf-v2/the-build/4install-happy-hare
Quant à la documentation officielle, elle se trouve ici :
https://github.com/moggieuk/Happy-Hare/wiki#—happy-hare-general-questions
Entrons dans le vif du sujet !
Déjà, l’installation du MMU sur la machine. En ce qui me concerne, je me suis rendu la tâche un peu plus simple. J’ai imprimé un système de fixation à 45° pour un meilleur accès aux portes de chargement, ainsi qu’un rack pour mettre les 8 bobines sur dévidoir à roulement (608ZZ).,
- La fixation à 45° est un remix de ceci : https://www.printables.com/model/817235-ercf-mount-for-voron-24
- Pour le Rack c’est un remix du projet RepRack : https://www.printables.com/model/129024-reprack-open-source-spool-holder-and-storage-syste
- Etant en Europe, nous n’avons pas les tubes en mesure impérial, j’ai donc pris du tube d’acier de 20 mm et utilisé ce remix : https://www.printables.com/model/298807-reprack-20mm-version
- Pour les rollers, j’ai remixé ce système pour aller sur les tubes de 20 mm : https://www.printables.com/model/228835-rackroller-alien3d-remix-of-open-source-flange-rol
- Et enfin pour le passage du tube PTFE dans la plaque de PC supérieur, le stl est là : https://www.printables.com/model/228835-rackroller-alien3d-remix-of-open-source-flange-rol
Vous imaginez bien qu’avant d’écrire cet article, j’ai passé pas mal de temps, comme je vous le disais, à comprendre comment le système fonctionne. Suite à quoi, j’ai décidé de refaire toute la tête Stealthburner.
Celle-ci a été réimprimée en PA12-CF, sauf le capot et le support du cutter filametrix qui sont en ABS. La modification comprend aussi l’intégration d’un Knomi V2 (juste parce que c’est cool) et d’une ventilation plus puissante de type CPAP.
Le CPAP est de chez Biqu : LIEN
Voilà pour la partie Hardware. Maintenant le Software et c’est là que ça se complique un tantinet !
En effet, je pense que pour ceux qui me suivent, vous savez que je me contente rarement des choses simples. Et bien ici c’est pareil ! J’ai choisi la solution la plus compliquée à mettre en place mais à mon sens la plus cool !
- La tête Stealthburner dispose de deux capteurs de filament.
- Avant l’extrudeur
- Avant la hotend
Ceci pour avoir un meilleur contrôle sur la position du filament pendant les opérations de chargement/déchargement
- L’add-on Blobifier, pour éviter la tour de purge : https://www.printables.com/model/822076-blobifier-for-voron-24-350mm-printer
- Avec le Blobifier vient aussi un support pour une brosse en laiton et un bac pour récupérer les déchets. C’est un système anti oozing (bavement)
- Le Filametrix, pour couper le filament nettement et éviter des bourrelets au bout. Si le ‘tip’ n’est pas bien fait et qu’il y a un bourrelet, ceci peut apporter des contraintes sur le filament pendant le chargement.
En conséquence, à chaque changement de filament, il faut gérer toutes les étapes de la séquence.
Bien ! Maintenant l’installation du système de pilotage du MMU, “Happy Hare” (encore un lapin, mais sauvage cette fois lol, et il est content lui ! )
Ayant donc un Kit Siboor, je vais simplement suivre les étapes décrites dans la document, dont le lien est au début de cet article.
Je lance ma console SSH MobaXTerm, me connecte à l’imprimante et lance les commandes d’installation.
puis je lance l’installation interactive grâce à la commande :
./install.sh -i
et réponds aux différentes questions pour que ça colle au matériel et options choisis :
Une fois fini, je passe à l’installation de l’extension “Happy” pour Klipper Screen, ceci afin de pouvoir contrôler le MMU depuis l’écran de l’imprimante.
Je lance la série de commandes nécessaires depuis la console SSH :
cd ~
mv KlipperScreen KlipperScreen.orig
git clone https://github.com/moggieuk/KlipperScreen-Happy-Hare-Edition.git KlipperScreen
cd ~/KlipperScreen/happy_hare
./install_ks.sh -g 8
Une fois fini, après reboot de l’imprimante, une première erreur apparaît et c’est normal.
Il faut renseigner l’ID du bus CAN de la Carte mère du MMU dans le fichier de configuration.
La procédure d’obtention d’un ID CAN est décrite dans mon article “ A la découverte de la voron 2.4 R2 – Partie 3 : Klipper ”.
Après l’installation de Happy Hare, sous fluidd, dans la partie Configuration files, il y a un nouveau dossier mmu qui contient une arborescence :
- addons (pour le blobifier et le cutter)
- base (pour tout ce qui concerne le mmu en lui même)
- optional (pour de la customisation, je ne l’utilise pas)
Pour le moment il faut aller dans base, puis dans le fichier mmu.cfg et entrer l’ID
Normalement, après avoir enregistré et redémarré klipper, tout devrait démarrer correctement.
Me concernant ce n’est pas le cas. J’ai une erreur de correspondance de firmware (Klipper)
Pour le firmware, je me réfère à la documentation PDF de la carte mère MBB de chez Big Tree Tech : https://github.com/bigtreetech/MMB/blob/master/BIGTREETECH%20MMB%20CAN%20V1.0%26V1.1%20User%20Manual.pdf
Puis, je flash le firmware avec Katapult comme je l’ai fait pour la Carte SB2209-RP2040 dans mon article 3 de la Voron 2.4 et finalement tout démarre correctement.
Il y a du changement dans Fluidd
Ainsi que Klipper Screen qui propose un menu spécialement pour le mmu.
Avant de continuer, je vous mets une référence sur le concept du MMU : https://github.com/moggieuk/Happy-Hare/wiki/Conceptual-MMU#—supported-sensors
Et notamment cette illustration qui vous donnera une meilleur idée où sont situés les différents capteurs
Pour la suite, il faut configurer tout le Hardware, en gros faire comme pour une imprimante sous Klipper, vérifier le sens des moteurs, le courant max, etc etc.
Le guide à suivre est ici : https://github.com/moggieuk/Happy-Hare/wiki/Hardware-Configuration
Et c’est donc ce que je fais. Une fois fini, je fais le home du MMU.
Le sélecteur se déplace jusqu’à son endstop et commence les messages pour la calibration.
Toutes les étapes de calibration obligatoires sont ici : https://github.com/moggieuk/Happy-Hare/wiki/MMU-Calibration
1er étape donc, la calibration du sélecteur.
Les étapes du guide :
- Désactiver les moteurs du mmu
- Aligner le sélecteur avec la porte numéro 1, à l’aide d’un bout de filament
- Retirer le bout de filament
- Lancer la commande MMU_CALIBRATE_SELECTOR
Pendant la commande, le MMU va mesurer la distance jusqu’au endstop, puis le maximum, et enfin refaire le home. Grâce à cela, le système détermine la position de chaque porte.
Maintenant, je tente de charger un filament. La suite des prérequis arrive
2ème étape, Gear. En gros, c’est la calibration pour être sur que la longueur envoyée est bonne.
Le guide propose de calibrer sur 100 mm, mais pour être plus précis je vais le faire sur 200.
il faut pour cela lancer une série de commandes :
- MMU_SERVO_DOWN pour sélectionner la porte et enclencher le filament
- MMU_TEST_MOVE MOVE=200 pour sortir 200 mm de filament
- Mesurer la longueur réelle sortie
- MMU_CALIBRATE_GEAR MEASURED={valeur réelle mesurée}
Suite à cela, le système calcule un ratio pour que lorsque l’on demande 200 mm, le système envoie bien 200 mm
Par exemple, moi je mesure 202 mm
N’hésitez pas à le refaire plusieurs fois, jusqu’à ce que la longueur envoyée corresponde parfaitement à la demande.
3ème étape, l’encodeur. Il s’agit d’un capteur qui permet de contrôler la distance de filament envoyée.
- Faire un home du MMU
- Insérer un filament par la porte d’entré 0 d’une longueur minimum de 500 mm, l’encodeur se calibre sur 400mm
- Lancer la commande MMU_CALIBRATE_ENCODER
4ème partie, la longueur du tube ‘bowden’ qui relie le MMU à la tête.
Pour cela il faut mesurer la longueur de tube, pas besoin d’être très précis.
Ensuite il faut soustraire 50mm à cette longueur et lancer la commande avec la valeur final obtenu
MMU_CALIBRATE_BOWDEN BOWDEN_LENGTH={length}
Pour ma part, je lance la commande avec une longueur de 730 mm.
Les étapes obligatoires sont maintenant terminées, cependant je vais faire une étape supplémentaire que je recommande fortement.
C’est la calibration individuelle de chaque porte. c’est une étape qui prend du temps et qui nécessite que du filament soit chargé dans chaque voie.
L’ERCF étant un MMU majoritairement imprimé, chaque partie n’est pas égale. De plus, le montage engendre aussi des variations qu’il faut compenser.
Le calibrage individuel de chaque porte est fait pour cela.
La commande à lancer est MMU_CALIBRATE_GATES ALL=1.
Si vous ne voulez pas charger de filament dans chaque porte et que vous voulez calibrer la porte au moment de son utilisation, la commande est MMU_CALIBRATE_GATES GATE={numéro de la porte}.
Je recommande aussi de calibrer une porte lors d’un changement de filament, ou du moins de type de filament (PLA -> ABS). Les caractéristiques de chaque type de filament étant différentes (Densité, rigidité, etc), la calibration compensera ces changements.
Je lance donc la commande de calibration de l’ensemble des portes, et me prend un café le temps de l’exécution ☕ !
Un exemple ici de problème, sur la porte 7 on voit bien qu’il y a eu un souci.
Je suis bon pour vérifier ce qui s’est passé avec le filament et recommencer la calibration de la porte 7.
Après avoir vérifier le matériel et le filament, je relance la commande MMU_CALIBRATE_GATES GATE= 7
C’est tout bon !
Voila, la grosse partie de la calibration est finie. En l’état, on pourrait utiliser le MMU. Cependant pendant ma découverte de l’utilisation, j’ai appris que des étapes supplémentaires sont nécessaires pour un fonctionnement optimal.
Il s’agit de la calibration des distances dans la tête d’impression.
La référence est ici : https://github.com/moggieuk/Happy-Hare/wiki/Blobbing-and-Stringing
et plus particulièrement, la partie qui nous intéresse : https://github.com/moggieuk/Happy-Hare/wiki/Blobbing-and-Stringing#—calibrating-toolhead
1ère étape : nettoyage de la hotend à l’aide d’un cold pull :
2 possibilités, soit manuellement comme je le fais, car j’ai l’habitude, soit avec assistance, et happy hare propose une macro pour cela : https://github.com/moggieuk/Happy-Hare/wiki/Blobbing-and-Stringing#—cleaning-extruder-with-a-cold-pull
2ème étape : la calibration de la tête ‘propre’ :
Pour cela, il faut lancer la commande suivante dans la console : MMU_CALIBRATE_TOOLHEAD CLEAN=1
Je rajoute l’option SAVE=0 pour ne pas sauvegarder les valeurs dans le fichier de configuration.
En effet, avec le temps j’ai décidé de lancer 4 fois la commande, de noter les valeurs mesurées et de faire une moyenne. Cela permet de réduire les erreurs de mesures.
Je lance donc 4 fois la commande MMU_CALIBRATE_TOOLHEAD CLEAN=1 SAVE=0
variable | run 1 | run 2 | run 3 | run 4 | average |
toolhead_extruder_to_nozzle | 89.1 | 88.4 | 88.1 | 87.6 | 88.3 |
toolhead_sensor_to_nozzle | 76.4 | 75.8 | 75.5 | 75.4 | 75.8 |
toolhead_entry_to_extruder | 14.2 | 13.7 | 13.9 | 13.9 | 13.9 |
Après quoi je mets les valeurs calculées dans le fichier mmu_parameters.cfg
3ème étape : Salir la hotend ! Et oui, il faut la mettre en mode ‘Dirty’ 😀
Pour cela, c’est tout simple, il suffit de charger du filament et d’en extruder un peu.
Dans mon cas, comme j’ai configuré le mmu pour utiliser le filametrix (cutter), il faut lancer une commande pour éviter la coupe du filament.
Commande 1 => MMU_LOAD ou Tx où x est le numéro de la porte à charger
Commande 2 => Extruder un peu de filament via l’interface web ou l’écran de l’imprimante
Commande 3 => MMU_UNLOAD SKIP_TIP=1 pour décharger le filament sans le couper.
Commande 4 => une fois le filament déchargé, couper la chauffe de la hotend et attendre son refroidissement total
4ème étape : la calibration de la longueur de filament résiduelle dans la tête d’impression.
Maintenant que la tête est sale ‘Dirty en anglais’, la commande à lancer à froid est MMU_CALIBRATE_TOOLHEAD. Cela va permettre de calculer la fameuse valeur.
Comme précédemment, j’ajoute SAVE=0 et lance 4 fois la commande pour réduire l’erreur de mesure
variable | run 1 | run 2 | run 3 | run 4 | average |
toolhead_residual_filament | 23.7 | 23.6 | 23.4 | 22.9 | 23.4 |
toolhead_entry_to_extruder | 13.8 | 13.6 | 13.5 | 13.9 | 13.7 |
Et je rentre les valeurs dans le fichier mmu_parameters.cfg
5ème étape : nécessaire si comme moi vous utilisez un cutter (filametrix), déterminer la distance de la lame par rapport à la buse.
Commande 1 => MMU_LOAD ou Tx où x est le numéro de la porte à charger
Commande 2 => Extruder un peu de filament via l’interface web ou l’écran de l’imprimante
Commande 3 => Couper la chauffe de la hotend et attendre son refroidissement total
Commande 4 => Couper manuellement le filament en appuyant sur l’actionneur de la lame
Commande 5 => MMU_UNLOAD SKIP_TIP=1 pour décharger le filament sans le couper.
Commande 6 => une fois déchargé, lancé la commande MMU_CALIBRATE_TOOLHEAD CUT=1
Tout comme l’étape 3 et 4, je rajoute SAVE=0 et exécute la série de commande 4 fois. Là, ça va être fastidieux mais c’est ce que j’ai trouvé de mieux pour réduire les erreurs de mesure.
variable | run 1 | run 2 | run 3 | run 4 | average |
variable_blade_pos | 62 | 61.1 | 59.7 | 59.6 | 60.6 |
variable_retract_length | 57 | 56.1 | 54.7 | 54.6 | 55.6 |
Et pour finir, je mets les valeurs dans le fichier mmu_macro_vars.cfg
Comme vous pouvez le remarquer, concernant la variable retract length, j’enlève 5 mm de plus, car avec la valeur préconisée, j’avais des soucis de coupe. Il faut purger un peu plus mais au moins les séquences de changement de filament se déroulent sans soucis.
Les dernières valeurs à configurer se trouvent aussi dans le fichier mmu_macro_vars.cfg.
il s’agit des positions où va aller la tête à chaque étape. Cela dépend de là où vous avez installé les options que vous avez choisies.
Pour ma configuration, le park toolchange se situe proche du poussoir pour couper le filament et les autres se situent au-dessus du bac à côté de la brosse en laiton.
Enfin, comme j’ai choisi d’utiliser le blobifier pour purger le filament à la place d’une tour, et que cette option est intégrée dans Happy Hare, dans le même fichier il faut inscrire le nom des macros à exécuter à certains moments de la séquence de changement.
Les références sont dans les liens suivant : https://github.com/moggieuk/Happy-Hare/blob/main/config/addons/README.md
https://github.com/Dendrowen/Blobifier
Voilà, nous y sommes, c’est la fin de la configuration et de l’installation de l’écosystème Happy Hare pour faire fonctionner l’ERCF (ou d’autres MMU d’ailleurs).
Il ne reste plus qu’à tester que tout fonctionne correctement !
Je lance donc le chargement du filament positionné sur la porte 0. Après avoir chargé la longueur du tube bowden et atteint le capteur avant l’extrudeur, le système détecte que la température de la buse n’est pas bonne et lance une chauffe automatique.
La tête est positionnée aux coordonnées que j’ai paramétrées, et il s’agit de l’endroit où se trouve le poussoir pour le cutter de filament.
Une fois la chauffe finie, la tête va se positionner sur le Blobifier pour lancer la procédure de purge.
Et voici la première purge.
Après la purge, le système nettoie la buse grâce à la brosse en laiton.
Les coordonnées des positions pour le blobifier et la brosse sont configurées dans le fichier blobifier.cfg dans le dossier addon.
Je lance un changement d’outils pour valider la bonne marche de l’ensemble.
La purge se passe correctement.
Avec en prime des messages de statut sur l’écran.
Maintenant que je suis assuré que le cycle fonctionne, je vais passer aux choses sérieuses et lancer une impression multicolore.
Pour cela, je vais utiliser un ensemble de stl fourni dans le git de l’ERCFv2. il s’agit de la porte du sélecteur directement prévu pour le multicouleur.
C’est pas mal, mais je peux certainement mieux faire.
Deuxième essai, la j’ai carrément de la sur extrusion
J’ai donc pris pas mal de temps pour trouver les bons réglages en jouant sur différents paramètres (les énumérer ici serait vraiment long). Cette partie est plutôt longue mais il faut prendre le temps de la faire si on veut avoir des premières couches de qualité.
De plus c’est relatif à chaque installation donc décrire mon process ne serait d’aucune utilité.
Voici par contre la progression des différentes tentatives.
Jusqu’à arriver à un résultat satisfaisant.
Voilà c’est la fin de cet article sur l’installation de l’environnement de pilotage de MMU nommé Happy Hare. En espérant avoir un peu démystifié la chose, bien que complexe.
En effet, c’est complexe car il faut tout gérer de bout en bout, cependant une fois que l’ensemble est réglé et calibré après ça roule !
Un avantage à cela aussi, c’est qu’en cas de problème on sait généralement tout de suite ce qui ne va pas et quoi faire pour régler le soucis.
En tout cas, le multicouleur, avec les défauts que ça à (notamment les déchets, car le multicouleur génère énormément de déchets), apporte énormément de satisfaction et une autre dimension à l’impression 3D !
A bientôt pour d’autres articles, techniques ou non, et de futurs tests !