Tronxy X5SA-Pro : Remplacement de la carte mère par une Octopus Pro

Après un an d’utilisation de ma Tronxy, je me suis rendu compte l’élément limitant l’imprimant est la carte mère. En effet, j’avais régulièrement des reboots de l’imprimante. Et quand ça arrivait la reprise d’impression ne marchait pas.
Des fois, c’était juste après le homing ; mais des fois c’était en pleine impression, et là ca faisait chier de perdre 4h et de la matière. En plus, ca m’obligeait à ne pas faire de trop grosse impression, de peur de la voir planté.

Ajouté à cela, j’ai aussi remarqué les problèmes suivant :

  • Mauvaise gestion des accélérations : d’origine ils sont trop bas et cela rallonge le temps d’impression de 25 à 50 pourcent. Si on l’augmente un peu, elle se met à faire des à-coups lors de direction.
  • Vitesse d’impression limité : au delà de 60mm/s les mouvements se mettent à saccader, ce qui fait apparaitre des défaut sur les couches extérieurs.
  • Manque de puissance de calcul : ca se recoupe avec les deux points précédents, mais ca impacte aussi la gestion des ventilateurs et de la chauffe. En effet, lors de grand déplacement à grande vitesse, la carte mère ne les régule plus, ce qui fait que le ventilateur de hotend s’éteint ; et en même temps le PWM de la résistance passe à 100%, ce qui va faire dépasser la température cible du hotend.
  • Mauvaise intégration à Octoprint : Certain on réussi à la faire fonctionner mais c’est mal documenté et plus de la bidouille, donc j’ai pas trop chercher de ce coté.

Et puis ce qui m’a fait passer le cap, c’est qu’en bricolant j’ai fait tombé un écrou sur la carte mais je l’avais pas retrouvé et en rallumant j’ai eu un driver qui à pété.

La nouvelle carte mère : BigTreeTech Octopus Pro

Après presque deux mois d’attente de la livraison, je l’ai enfin reçu. J’ai pas fait dans la dentelle mais j’ai dans la tête quelques upgrades pour plus tard.

Il s’agit donc de la toute dernière version sortie en Septembre 2021, elle dispose d’un processeur 32bits STM32F429, de huit drivers pouvant être alimenté jusqu’à 60 Volts et tout un tas d’entrées/sorties.

Elle est compatible Marlin, Klipper et RepRap Firmware ainsi que Octoprint. Pour ma part, ce sera Klipper sous OctoPi.

Installation OctoPi et Klipper

La, je vais pas réinventer la roue. Il y a de la très bonne documentation, je vous met les liens et je vous donne les points durs que j’ai rencontré.

Pour commencer, installer OctoPi en suivant la documentation officielle : https://octoprint.org/download/
Une fois l’image déployée, nous allons d’abord tout mettre à jour.

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo rpi-update
$ sudo raspi-config
> 6 Advanced Options
> A7 Bootloader Version

J’ai eu une erreur qui ressemble à cela lors du  » apt-get update  » :

E: Repository 'https://xxxxxxxxx stable InRelease' changed its 'xxx' value from ......
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

Pour résoudre ce problème, taper la commande suivante :

$ sudo apt-get update --allow-releaseinfo-change

Ensuite, on passe à l’installation de Klipper : Installation – Klipper documentation (klipper3d.org)
Vous pouvez suivre ce tuto sur Youtube, il est plutôt complet.

Vous pouvez aussi récupérer les documentation de BigTreeTech : Download | BIQU& BigTreeTech 3D printing – bigtree-tech

Quelques points d’attentions dans l’ordre où je les ai rencontrés :

  • Dans le « make menuconfig » de Klipper, faire attention à bien sélectionner le modèle de carte mère. Dans mon cas, c’était « STM32F429 » ; et le clock reference à « 8MHz »
  • L’étape où on tape les commandes suivantes n’est pas nécessaire car on utilise la carte SD pour déposer le firmware sur la carte mère
sudo service klipper stop
make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
sudo service klipper start
  • J’utilise une carte SD de 1Go, préférer la formater avec l’outil de SDcard.org https://www.sdcard.org/downloads/formatter/
  • dans le tuto Youtube, il prend le mauvais fichier de configuration, il faut prendre celui ci « klipper/config/generic-bigtreetech-octopus.cfg »
  • A chaque fois que vous modifiez la configuration, faire « Save and close », puis « Reboot », cliquer sur le bouton « Symbole POWER » et faire un « Restart Klipper »

Cablage de l’Octopus sur la Tronxy : Moteur

Vous aller avoir besoin de nouveau câble moteur plus long car nous n’utiliserons plus la nappe de la Tronxy. Et pour me simplifier la tâche, j’ai acheté un palpeur 3DTouch.

On va commencer par la partie mouvement du chariot. Le branchement est donc le suivant :

1MOTOR0Moteur de X, c’est celui qui est au fond à droite. Aussi appelé moteur Alpha
2MOTOR1Moteur de Y, c’est celui qui est au fond à gauche. Aussi appelé moteur Beta
3MOTOR2_1Moteur de Z , pas d’importance droite ou gauche
4MOTOR2_2Moteur de Z
MOTOR3Ne pas utiliser, réserver pour des fonctions avancées
5MOTOR4Moteur de l’Extrudeur
6STOP0Fin de cours de X
7STOP1Fin de course de Y
8BL_TouchSe référer à la doc BigTreeTech. De gauche à droite : Maron;Rouge;Jaune;Noir;Gris

Firmware

  • Configurer la cinématique de la carte mère en CoreXY :
[printer]
kinematics: corexy
  • Inverser la logique des fin de course en ajoutant un ! :
[stepper_x]
endstop_pin: !PG6
[stepper_y]
endstop_pin: !PG9
[stepper_z]
endstop_pin: probe:z_virtual_endstop

[bltouch]
sensor_pin: ^PB7
control_pin: PB6
pin_up_touch_mode_reports_triggered: False
z_offset: 0

[safe_z_home]
home_xy_position: 175,175 # Change coordinates to the center of your print bed
speed: 50
z_hop: 0 # Move up 10mm
z_hop_speed: 5

Test du mouvement du chariot

Placer le chariot au milieu du plateau et lancer un HomeXY via Octoprint. Couper immédiatement l’alimentation s’il le chariot de va pas vers la gauche.

S’il part dans la bonne direction, appuyer sur le fin de course X avec le doigt deux fois. Le chariot doit maintenant aller vers l’avant de la machine. Si non, couper l’alimentation. Appuyer ensuite deux fois sur le fin de course Y.

Le chariot doit s’arrêter.

A la main, placer le plateau à mi hauteur et lancer un HomeZ via Octoprint.Le plateau doit descendre un peu puis remonter. Avec l’ongle du doigt, appuyer sur le téton du BLTouch, le plateau doit s’arrête de monter. Si non, couper l’alimentation immédiatement.

Si vous arrivez jusque là, la partie mouvement du chariot est OK.

Erreurs rencontrées :

  • Unable to write tmc spi ‘stepper_x’ register GLOBALSCALER

Cette erreur sur le driver X était du à une étourderie, j’ai enfoncé le driver dans les pins coté gauche, mais l’espacement était pas en face coté droit. Il faut juste resserrer les broches femelles sur la carte mère

  • Le chariot ne part pas dans la bonne direction pour faire son homing

Vérifier que les moteurs de X et Y ne sont pas inversés.

Si le câblage est bon, ajouter un point d’exclamation à la variable « dir_pin » sur les deux moteurs X et Y: !PF12

Cablage de l’Octopus sur la Tronxy : Hotend et plateau chauffant

Sans brancher les résistances de hotend et du plateau, brancher les sondes de température et les ventilateurs. Attention à la polarité des ventilateurs, le négatif est sur le pin le plus proche du bord. Moi j’ai du les inverser.

1TBSonde thermique du plateau
2T0Sonde thermique du hotend
3FAN0Ventilateur de sortie de buse
4FAN1Ventilateur du hotend
5FAN2Ventilateur de la carte mère

Firmware

  • Definir le type de sonde thermique
[extruder]
sensor_type: Generic 3950

[heater_bed]
sensor_type: Generic 3950
  • Vérifier que les ventilateurs sont déclarés
[fan]
pin: PA8

[heater_fan fan1]
pin: PE5

Test de chauffe

Commencer par vérifier que les températures des sondes remonte correctement dans Octoprint. Elles doivent être au alentour de 20°C.

Si les sondes sont bonnes, brancher les résistance de hotend et du plateau. Puis lancer la chauffe du hotend pendant moins de 30 secondes et vérifier que la température monte correctement. Il faut que la température soit au dessus de 50°C mais éviter de monter au dessus de 100°C pour le moment.

Le ventilateur du hotend doit s’allumer dès que la température dépasse 50°C

Vérifier la chauffe du plateau en le réglant par exemple à 35°C.

Pour finir, tester le ventilateur de sortie de buse via l’interface Octoprint, dans l’onglet « Control > Fan ON ».

A partir de maintenant, l’imprimante est opérationnelle. Par contre, avant de commencer à imprimer des pièces, il faut la calibrer.

Calibration de la Tronxy sous Klipper

Calibration des PID

Il s’agit d’une fonction qui permet de calculer la puissance de chauffe afin d’avoir une température la plus stable possible.

PID_CALIBRATE HEATER=extruder TARGET=200
SAVE CONFIG

Pour le plateau, vous avez le choix entre le pid ou le watermark. Le mode watermark agit comme un thermostat avec un effet d’hystérésis, cela permet de réduire l’usure dans le cas où l’on utilise un relai de puissance au détriment d’une moins bonne stabilité.

[heater_bed]
# mode thermostat
control: watermark
max_delta: 0.5

# mode PID
#control: pid
#pid_Kp: 23.233
#pid_Ki: 1.019
#pid_Kd: 132.427

Calibration dimensionnelle

Nous allons commencer par calibrer théoriquement les mouvement de l’imprimante. Klipper utilise dans ses dernières version une nouvelle variable nommée « rotation_distance ». Il s’agit du nombre de millimètre pour un tour de moteur.

On a donc pour X et Y, « pas de courroie » x « nombre de dent pignon ». J’ai une courroie GT2 donc le pas est de 2mm et un pignon de 16 dents, j’ai donc un « rotation_distance » de 32.

Pour Z, c’est encore plus simple, la tige filetée à un pas de 8mm. On met donc un « rotation_distance » de 8.

Calibration de l’extrudeur

Pour l’Extrudeur, c’est un peu plus compliqué vu que j’ai un BMG. Du coup, j’ai pas fait de calcul théorique. Mais si vous avez un extrudeur normal laisser la valeur par défaut, pour un BMG, j’ai 7,79mm.
Faire un repère sur le filament à 110mm de l’entrée de l’extruder et extruder très lentement 4 fois 25mm (pour ne pas que l’imprimante pas en timeout).

M83 # passe l'extrudeur en positionnement relatif
G1 E25 F60 # à lancer 4 fois

Mesurer la distance restante entre l’entrée de l’extrudeur et le repère. Il doit rester 10mm. S’il y a +/-0,5mm de différence, il faut corriger avec le calcul : « nouvelle valeur » = « ancien rotation_distance » x « distance extrusion réelle » / « distance extrusion demandée »

Renouveller le test pour être en dessous des +/-0,5mm de différence.

Imprimer un cube de calibration CHEP et vérifier les dimensions XYZ. Vérifier aussi qu’il n’y ai pas trop de sur extrusion.

Calibration de l’avance de pression

Afin d’avoir une qualité augmenté au niveau des angles, il faut régler la « pressure_advance ».

Suivre la procédure officielle https://www.klipper3d.org/Pressure_Advance.html

Imprimer avec les paramètres suivants :

  • Remplissage : 0%
  • Epaisseur de coque : 1 couche
  • Epaisseur du dessus : 0
  • Vitesse d’impression : 100mm/s
  • Vitesse d’impression de la paroi externe : 100mm/s (bien la forcé car la fonction de Cura est à 50% de la vitesse d’impression)
  • Rétractation : Désactivé
  • Hauteur de la couche : 75% du diamètre de buse recommandé

Dans le terminal, lancer les commande Klipper suivante :

SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500

#Si extrudeur direct drive
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005

#Si Extrudeur sur bowden
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020

Comment interpréter le résultat ?

Il faut regarder au niveau des angles de la pièce.
Quand il n’y a pas assez d’avance, on voit un bourlet sur l’angle car trop de matière arrive au niveau du changement de direction. Vous pouvez voir la zone d’ombre au niveau des couches basse en éclairant la pièce sur le coté.
Quand il y trop d’avance, c’est l’inverse, il n’y a pas assez de matière et l’angle commence à rentrer vers l’intérieur et des trous apparaissent

Il faut alors prendre là où l’angle est le plus nette entre les deux zones de défaut et mesurer la hauteur à partir de la base. Il suffit alors de multiplier cette mesure par le facteur utilisé dans la commande TUNING_TOWER

Dans mon cas, c’est environ 15mm. Donc 15*0.005 = 0.075

Puis, saisir la valeur dans la configuration

[extruder]
pressure_advance: 0.075

Profitez en pour mesurer l’épaisseur de la paroi et qu’elle correspond à votre diamètre de buse

Paramétrage d’Octoprint

Au moindre problème l’imprimante se met en erreur et c’est galère à la redémarrer

Se rendre dans les « paramètres Octoprint > Serial Connection > Behaviour > What to do on a firmware error » et sélectionner « Cancel any ongoing prints but stay connected to the printer ».
Décocher « Send M112 on disconnect due to error »

Pouvoir déplacer la tête après avoir annuler une impression (sans homing)

Se rendre dans les « paramètres Octoprint > GCODE Scripts > After print job is cancelled » et commenter en mettant un point-virgule devant M84

Conclusion

Les premiers essais sont plus que satisfaisants. Les mouvements sont fluides et rapides, plus de saccades ni de plantage.

Voici un petit Benchy imprimé à 80mm/s et 3000mm/s². J’ai un petit peu d’écho mais pour une première c’est vraiment pas mal, surtout à cette vitesse ; et un peu de stringing

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.