A la découverte de la voron 2.4 R2 – Partie 3 : Klipper

A la découverte de la voron 2.4 R2 – Partie 3 : Klipper
A la découverte de la voron 2.4 R2 - Partie 3 : Klipper. Article blog réalisé par Cédric Muller

Bonjour les makers et les makeuses !
On continue la découverte de la voron 2.4 R2 avec la partie firmware, en l’occurrence Klipper.
Avant de commencer, comme précédemment, je remets la thématique de la série d’articles :

Pour ceux qui ne sont pas familiers avec Klipper, je me permets de mettre un lien sur un tuto que j’ai fait il y a quelques temps sur l’installation de Klipper, à partir de 0 (from scratch).

Ce tutoriel, je l’avais fait avec ma delta Anycubic predator et un vrai Raspberry (V3).

Ici, ce sera naturellement pour une coreXY, mais la différence notable c’est le clone PI de chez Bigtreetech. Contrairement au Raspberry pi, celui-ci nécessite l’installation d’un OS modifié, fourni par BTT.
Mais on va y revenir.

Donc pour cette partie numéro 3, consacrée à l’installation de Klipper, je vais prendre en référence :

  • mon tutoriel
  • les informations données par Siboor sur leur github (elles me permettront de faire le fichier printer.cfg plus facilement)
  • Les informations du site de documentation officiel de Siboor
  • Les informations de la carte mère BTT Octopus pro 1.1, pour avoir le nom des pins utilisés

Voici les liens des références :

Sans plus attendre, on y va !

Le Firmware : Klipper

Première chose à faire donc, installer le système sur la SD du BTT Pi 1.2 dont voici les spécifications : 
https://github.com/bigtreetech/BTT-Pi/blob/master/BIGTREETECH%20Pi%20V1.2%20User%20Manual.pdf

Pour cela BTT fournit une image du système ici :
https://github.com/bigtreetech/CB1/releases

Comme vous pouvez le voir, BTT propose deux types d’image et leurs sources: une image avec Klipper et Mainsail préinstallé et une image minimale.

En ce qui me concerne, je prends l’image minimale. Je télécharge le fichier .xz (format de compression linux) que je décompresse avec l’outil 7zip.
Une fois décompressé, j’obtiens un fichier .img

Pour écrire le fichier .img sur la carte SD, j’utilise “Raspberry pi imager” mais vous pouvez utiliser d’autres utilitaires.

Une fois fini, il faut éjecter la carte SD et la remettre dans l’ordinateur pour avoir accès à la partition lisible de celle-ci.
Dedans on y trouve notamment un fichier system.cfg dans lequel il faut modifier des valeurs.

Surtout celles nécessaires pour que la machine se connecte à votre réseau wifi

Une fois fait, j’insère la carte SD dans le BTT pi, referme la machine et l’allume.
Si tout est ok, comme ici, vous aurez sur l’écran hdmi, la console linux vous demandant de vous connecter

Après, il vous faudra récupérer l’IP de votre machine dans votre box (personnellement je fais de l’allocation DHCP ce qui assure une IP fixe ainsi que de la ségrégation de réseaux, pour éviter les conflits entre les différents matériels).

Une fois fait, il faut se connecter à la machine en SSH.
Pour cela j’utilise toujours l’utilitaire MobaXTerm mais c’est une question de convenance, out terminal SSH peut faire l’affaire.
Je rentre l’IP de la machine, le UserName ainsi que le Mot de passe: biqu en minuscule?linux est sensible à la casse.
Et nous y voici, à partir de là, il faut installer Klipper et tout ce qui va bien. Pour cela je vais utiliser KIAUH et vous renvoie à mon tuto si vous voulez en savoir plus à ce propos.

Après installation du script et lancement de celui-ci, surprise! Un message me propose d’utiliser une version 6 en mode Alpha. Comme j’aime bien essayer de nouvelles choses, et bien go pour la version 6 !

Je lance l’installation de Klipper et hop première mésaventure : erreur dans le téléchargement du repository git.
L’erreur est de type RPC failed, donc je fais une petite recherche sur le net avec ces mots clés et j’apprends que cela peut venir d’une mauvaise configuration du buffer de l’utilitaire git.

Donc petite ligne de commande permettant de modifier ce buffer. Je mets 768Mo, comme ça je suis tranquille !

Et effectivement après cela, Kipper est installé

Je continue en installant tout ce dont j’ai besoin:

Et une fois fini, j’ai bien mon interface Fluidd à l’adresse de ma voron

Ainsi que le Klipper Screen !

Bon, maintenant, il faut commencer à configurer Klipper, et la première chose à faire est de récupérer l’ID usb de la carte mère. Et là ! surprise il n’y a aucun device usb de détecté !

Du coup je suspecte que klipper ne se soit pas installé sur la CM. J’ouvre donc le compartiment électronique pour récupérer la SD de la CM et là surprise : pas de micro SD !!!
Ca explique pourquoi KIAUH ne trouve pas de device USB !

Bon heureusement que j’en ai quelques unes d’avance. Je ne sais pas d’où vient l’erreur:
BTT ou Siboor? Mais quoi qu’il en soit, je ne m’en suis même pas aperçu pendant le montage 

Finalement, après copie du fichier klipper.bin, renommé en firmware.bin sur la SD et mise en place de celle-ci dans la CM, et bien forcément ça fonctionne tout de suite mieux !

Je copie donc l’identifiant dans le fichier printer.cfg et bien sur tout démarre correctement !

Klipper screen est OK

Et Fluidd aussi (à part bien sur des messages d’avertissement tout à fait normaux à ce stade de l’installation)

Maintenant que cela fonctionne, je me rends compte d’une chose. Klipper ne doit pas fonctionner en mode Serial USB mais en mode Can !!!
Je reprends donc le build de klipper, dans menuconfig, je choisis le pont Usb to Can et configure les Pins (High et Low) du port Can correctement.

Je lance le build, je copie le firmware sur la carte SD,jj’attend la mise à jour et suis le guide Klipper pour activer le port can0 de la carte mère.

https://www.klipper3d.org/CANBUS.html

Suite à quoi, je redémarre la machine pour que le fichier soit pris en compte, et avec la console SSH je m’assure que le port can0 est bien actif avec la commande ‘ip a’

Je déconnecte le cable can de la tête et lance la commande suivante pour obtenir l’id du bus can de la CM

~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

Une alternative est d’utiliser Katapult (anciennement CanBoot).
Après installation du package (je vous renvoie à la doc : https://github.com/Arksine/katapult)
je lance la commande suivante dans le répertoire Katapult/Scripts :
Python3 flash_can -i can0 -q

Tout est ok et l’UUID est le même.

Il ne me reste donc qu’à mettre à jour le fichier printer.cfg dans Fluidd pour utiliser l’adresse l’UUID Can.

A partir de là, en suivant la procédure décrite dans la documentation Siboor, je récupère les UUID des cartes SB2209, de la tête Stealthburner ainsi que du module Cartographer.
la doc en question : https://docs.siboor.com/siboor-2.4-r2-aug/3the-build/initial-startup
La seule différence avec la doc me concernant, c’est que j’utilise Fluidd et non mainsail. 
Du coup pour récupérer les UUID, je passe par la console SSH comme précédemment.
A la suite de quoi, je m’assure que la communication se fait bien, je rajoute une section mcu EBBCan, ainsi qu’une section NeoPixel pour commander les leds de la tête.

Et effectivement, c’est tout bon !

Pour la configuration complète de la machine, je ne vais pas la faire de zéro, vous pensez bien !
Celle-ci est relativement complexe et nécessite énormément de parties.
Je vais donc partir de fichiers faits en prenant les sections qui m’intéressent.

il y en a deux :

Je fabrique donc mon fichier en prenant les sections qui m’intéressent, organise cela correctement et au redémarrage et bien non !

Je commente les différentes sections faisant référence au Cartographer, laisse le minimum dans la section et là une autre erreur !

Donc la section Cartographer n’est pas reconnue, pourtant j’ai bien installé le module via le SSH.
Après quelques recherches, il apparaît que Siboor a une procédure pour installer ce module :
https://docs.siboor.com/siboor-trident-june/faq/upgrade-cartographer-software

Procédure que j’applique et TADA !!

Je réactive les sections relatives au Cartographer et notamment l’accéléromètre ADXL345 et Paf !
Nouvelle erreur !

La c’est pas la même. 
En regardant l’erreur, on voit que les versions de klipper diffèrent et la recommandation est de mettre à jour les firmwares sur les MCU. 

je commence par mettre à jour la CM et voir ce que ça donne.

Problème toujours présent.
Avant de passer à la mise jours des autre CM (SB2209 et Cartographer), je vais essayer de communiquer avec l’ADXL de la SB2209

Même erreur, cependant origine différente.
il faut donc bien que je mette à jour.
Je vais passer au SB2209 et pour ça je dois utiliser katapult.

Cependant lors de l’exécution de l’utilitaire pour récupérer les UUID des device CAN, je n’ai plus rien !

Alors pas de panique c’est normal ! Une fois qu’un UUID est renseigné dans le printer.cfg et reconnu par Klipper, ceux-ci n’apparaissent plus via l’utilitaire.
Référence : https://github.com/Esoterical/voron_canbus/blob/main/troubleshooting/no_uuid.md

Pour la mise à jour de la carte SB2209, je vais m’appuyer sur ce guide : https://www.teamfdm.com/forums/topic/2349-updating-your-firmware-with-katapult-jan-22-2024-canbus

Après le double appuis sur le bouton reset, je lance la commande pour avoir l’UUID et je constate bien que la carte est en mode Katapult, prête donc à recevoir une mise à jour de Klipper par le bus CAN

Pour les paramètres Klipper, la référence est ici :
https://bttwiki.com/EBB%202209%20CAN%20RP2040.html#compile-firmware

Je lance le build et suis prêt à lancer le flash

Tout se passe bien et la carte est de nouveau en mode klipper.
Et donc après réactivation de la feature ADXL dans le fichier printer.cfg, plus d’erreur.

Je vais donc maintenant essayer de passer l’ADXL sur le Cartographer, et rebelote :

Il faut bien que la carte Cartographer soit aussi mise à jour.
Heureusement pour la mise à jour il y a une procédure à suivre sur le site Cartographer :
https://docs.cartographer3d.com/cartographer-probe/firmware/firmware-updating/via-katapult/canbus-flash

Malheureusement, le module ne répond pas au mode boot et je doit passer par une méthode plus bas niveau :
https://docs.cartographer3d.com/cartographer-probe/firmware/manual-methods/re-flashing-firmware

Les firmwares à uploader sont disponibles ici :

https://github.com/Cartographer3D/cartographer-klipper/tree/master/firmware/v2-v3

Je fabrique donc un cable USB -> JST pour connecter le Cartographer au pc

Je connecte donc celui-ci au pc et lance le mode DFU (méthode de la documentation).
Tout est ok, le module est connecté au pc.

Je lance donc la mise à jour du module, le remonte sur la machine et Voilaaaa !!!
Plus d’erreur liée à la version de Klipper et l’ADXL fonctionne bien ! 
Maintenant que tout est fonctionnel, je vais pouvoir passer au calibrage !
L’installation de Klipper sur cette machine n’était pas une mince affaire ! 

C’est le plus compliqué que j’ai eu à faire jusqu’à présent. Bon la technologie de la machine n’est pas simple non plus mais la mise à jour du module Cartographer, ce n’est pas donnée à tout le monde de faire ce genre de manipulation ! 
Il faut de solides connaissances en informatique.

Dernier point, les fichiers printer.cfg fournis par Siboor aux deux endroits ne sont pas vraiment optimisés ! 
J’ai donc apporté pas mal de modifications pour que ceux-ci soient plus en adéquation avec la machine et pour répondre à mes besoins futurs. (cela concerne notamment le fonctionnement des ventilateurs, le homing, et les capteurs de température)

Une fois fini, l’interface fluidd ressemble à cela :

La calibration :

Première chose à faire, vérifier l’état des endstops.

Le Z est actif ! Comme c’est la carte Cartographer qui agit comme Z Endstop, je me réfère à la documentation.
https://docs.cartographer3d.com/cartographer-probe/installation-and-setup/cartographer-with-input-shaper-v2-and-v3-hybrid

Et donc là, je vois qu’il faut calibrer celui-ci, ce que je fais en suivant les différentes étapes de la documentation.
Après cela, j’installe de nouveaux modules qui vont permettre de m’aider à la calibration :

En voulant lancer les 1er tests avec l’adxl, je me retrouve face à une nouvelle erreur de communication.
Lorsque je lance la commande ‘query_adxl’, pour savoir si la communication est ok, j’ai une erreur ‘invalid adxl id (got 0 vs e5)’.

Tant pis, je bascule sur l’adxl de la carte SB2209 pour la calibration.
Je commence donc par utiliser klippain shake&tune et notamment la fonction ‘belt comparison’ pour connaître l’état des courroies A et B et aussi l’état général de la machine.

Et la grosse surprise  !!!!!

C’est parlant !!! 99.7% de similarité, Excellent mechanical health !!!
Je n’ai jamais obtenu cela auparavant sur aucunes des mes machines !
Autant dire que je ne vais toucher à rien.
Je passe à la calibration de l’input shaper en lançant la commande SHAPER_CALIBRATE, et en sauvegardant les données.
Enfin je lance un ‘Bed_mesh_calibrate’ pour avoir une idée de la planéité du plateau chauffant.
Grille de 30×30 effectuée en moins de 30 secondes et le résultat parle de lui-même !

Moins de 2 dixièmes de différence !!
Avant de continuer les calibrations, dans l’intervalle, j’ai continué mes recherches à propos de l’erreur de communication avec l’adxl. et bien j’ai trouvé. Le module Cartographer n’est en fait pas pourvu d’une puce adxl mais lis2dw !!! 

Ce qui explique pourquoi l’id n’est pas le bon !
j’ai trouver l’information sur le discord de Cartographer et j’ai confirmé avec la documentation : https://docs.cartographer3d.com/cartographer-probe/installation-and-setup/probe-installation/can-termination#cartographer-v3-w-input-shaper-with-lis2dw-usb-can-hybrid

En effet je dispose d’une version 3 (ça c’est une certitude) et ce qui m’a permis de confirmer, c’est déjà que premièrement, la version LIS2DW a une résistance de 120ohm soudée, alors que la version ADXL n’en a pas. Mon module a une résistance de 120ohm !

Et deuxièmement, l’organisation et le nombre de puces sur le module.
Par comparaison le mien correspond au LIS2DW.
Du coup, c’est un avantage d’avoir les deux types d’accéléromètre. En effet le LIS2DW est a priori plus précis que l’ADXL mais n’est pas trop compatible avec ShakeAndTune pour le moment. Je ne vais donc pas refaire les graphes des courroies avec ShakeAndTune vu que j’ai déjà utilisé l’ADXL de la carte SB2209. Cependant je vais refaire la calibration de l’Input shaping avec le LIS2DW pour 2 raisons. Parce que la puce est plus précise et surtout parce qu’elle est plus proche de la buse.

Voilà, maintenant je continue les calibrations:

  • PID Buse
  • PID Bed
  • Calibration extrudeur (rotation distance)

Il ne reste plus qu’une dernière chose, le calibrage des axes X,Y et Z.
Pour cela je lance ma première impression de calibration, un gabarit de 60x60x60 

1er constatation, mon Z-offset n’est pas bon, la première couche est trop écrasée !
Je re-calibre donc mon Z-offset et relance l’impression.
2ème constatation, les drivers TMC2240 montent en température. ~100°C ! 
En effet les ventilateurs de l’électronique étant très bruyant, je les ai limités à 50% de leur vitesse max. mais en voilà la conséquence.

J’ai donc trouvé sur printable un upgrade pour ajouter des ventilateurs directement sur les drivers !

https://www.printables.com/model/576125-octopus-11-pro-triple-fan-cooler

Le seul bémol, c’est que ce n’est pas adapté aux VORON et les NOCTUA ne passe pas. j’ai donc mis des 4010 standards en 24v.

Je relance l’impression du gabarit de calibration :

Je remarque par endroit un phénomène de manque, que je connais bien. c’est dû à du heatcreap (ou remontée de chaleur dans le heatbreak). 
La raison est simple: c’est du PLA et j’ai imprimé la porte fermée !!!
PLA -> Porte ouverte pour éviter que la chambre ne chauffe trop  (en l’occurrence c’est monté à plus de 40°)

Les mesures du gabarit sont les suivantes :

  • X = 60.01
  • Y = 59.96
  • Z = 60.26

A part le Z, il n’y a rien à retoucher !
Une dernière chose, j’ai lancé l’utilitaire Auto speed que j’avais installé précédemment. Celui-ci est censé me donner les vitesses et accélérations maximum que la machine est censé pouvoir faire. L’utilitaire me donne des valeurs ahurissantes :
702mm/s de vitesse max pour 40.000mm/s2 d’accélération !

j’ai entré les valeurs dans le fichier printer.cfg et j’ai lancé la validation.
Alors bien sûr, ça n’a pas fonctionné !!!

Cependant la validation a été un succès à 700mm/s pour 30.000mm/s2 ….
A voir à l’usage mais dans tous les cas, la hotend montée dessus ne suivra pas !

Ici s’achève donc la 3ème partie de cette série d’articles et on se retrouve pour la suivante qui concerne les impressions tests et la conclusion.

A Bientôt les makers et makeuses

Muller Cédric
Muller Cédric

De nature curieuse, je suis tombé dans l’impression 3d il y a 6ans. Depuis c’est devenu une passion étendu à la gravure/découpe laser et CNC. Passionné aussi d’informatique et de robotique, les parties firmware et technique des imprimantes 3D n’ont quasiment plus de secret pour moi.

A la découverte de la voron 2.4 R2 – Partie 3 : Klipper
A la découverte de la voron 2.4 R2 – Partie 3 : Klipper
We will be happy to hear your thoughts

Laisser un commentaire

Nozzler
Logo
Register New Account
Shopping cart