Aller au contenu

Explication des G-codes pour cartes Chitu utilisées sur nos Tronxy (mais pas que...)


Yellow T-pot

Messages recommandés

Bonjour,

la grande majorité de nos imprimantes Tronxy est équipée de cartes mères du fabriquant ChiTu-Systems: https://www.chitusystems.com/

Ce qui n'est pas banal c'est que les cartes de ce fabriquant chinois se retrouvent le plus souvent sur des imprimantes résines et presque pas sur des FDM. ChiTu-Systems a même développé un trancheur spécifique à ce type d'imprimante: Chitubox

Le point commun à tout ça reste les quelques fonctions spécifiques qui permettent de réaliser des modifications du firmware sans avoir à le flasher. Les fonctions sont lues sous forme d'un G-code comme pour un fichier d'impression.

Tronxy s'en sert pour proposer des mises à jour (légères) du firmware. Ces fichiers sont disponibles ici: https://www.tronxy.com/marlin-firmware-for-tronxy-3d-printer/

Exemple pour ma X5SA-400 le contenu du fichier: X5SA 400 V2.0.gcode

J'en ai profité pour nettoyer les lignes et mettre un commentaire en français. J'ai regroupé plusieurs sources pour recroiser les infos pour comparer les fonctions mais des erreurs sont possibles donc:

- n'hésitez pas à me signaler s'il y a des erreurs dans mes définitions

- Rappel important: ces G-code contrôlent l'imprimante donc à utiliser à vos risques et périls...soyez prudent pour prévenir tout risque de dégradation du matériel ou d'accident corporel.

; TRONXY X5SA-400
; ==================================
; Activation du module de récupération de données ( I0 déactivé et I1 activé )
M8000 I1
; ==================================
; Réinitialisation du module de récupération de données ( I0 déactivé et I1 activé )
M8001 I1
; ==================================
; Sens rotation moteur X ( I-1 normal et I1 inversé )
M8002 I-1
; ==================================
; Sens rotation moteur Y ( I-1 normal et I1 inversé )
M8003 I-1
; ==================================
; Sens rotation moteur Z ( I-1 normal et I1 inversé )
M8004 I1
; ==================================
; Sens rotation moteur E ( I-1 normal et I1 inversé )
; Si 2 ou 3 extrudeurs ajouter E2 ou E3 pour préciser, exemple M8005 I-1 E2
M8005 I-1
; ==================================
; Choix du référentiel de déplacement X (0 déplacement tête - 1 déplacement plateau)
M8005 X0
; ==================================
; Choix du référentiel de déplacement Y (0 déplacement tête - 1 déplacement plateau)
M8005 Y0
; ==================================
; Choix du référentiel de déplacement Z (0 déplacement tête - 1 déplacement plateau)
M8005 Z1
; ==================================
; Vitesse de démarrage XY (mm/s).
; Si la vitesse de déplacement > à cette vitesse, démarre à cette vitesse et accélère jusqu'à la vitesse de déplacement.
; Sinon reste à la vitesse de déplacement.
M8006 I100
; ==================================
; Valeur de Jerk (mm/s³)
M8007 I20
; ==================================
; Accélération XY (mm/s²)
M8008 I100
; ==================================
; Définir les pas/mm pour X et Y ensemble
; Exemple: 0.00625 = 160 pas/mm = 1/160
M8009 S0.00625
; ==================================
; Définir les pas/mm pour X et Y indépendamment
; Exemple: X0.00625 Y0.00630 = 160 pas/mm en X et 158,7 pas/mm en Y
;M8009 X0.00625 Y0.00625
; ==================================
; Définir les pas/mm pour Z
; 0.00125 = 800 pas/mm = 1/800
M8010 S0.00125
; ==================================
; Définir les pas/mm pour E (valeur valable de façon indissociable pour tous les extrudeurs connectés)
; 0.0013085 = 764.23 pas/mm = 1/764.23
M8011 S0.0013085
; ==================================
; Vitesse max XY (mm/s)
M8012 I100
; ==================================
; Vitesse max Z (mm/s)
M8013 I20
; ==================================
; Vitesse max E (mm/s)
M8014 I120
; ==================================
; Vitesse Z lors du premier déplacement Auto-home (mm/s)
M8015 I8
; ==================================
; Vitesse XY lors du premier déplacement Auto-home (mm/s)    
M8015 S20
; ==================================
; Vitesse Z lors du deuxième déplacement Auto-home (mm/s)
M8016 I6
; ==================================
; Vitesse XY lors du deuxième déplacement Auto-home (mm/s)    
M8016 S6
; ==================================
; Pré-extrusion avant d'imprimer (mm)
M8017 I6
; ==================================
; Vitesse max de E pour la pré-extrusion (mm/s)    
M8018 I120
; ==================================
; Vitesse de rembobinage du filament (pour logiciel Makerware)
M8019 I50
; ==================================
; Longueur de rembobinage du filament (pour logiciel Makerware)
M 8020 S1.5
; ==================================
; Longueur de rétraction de la tête d’extrusion du commutateur  (pour logiciel Makerware)
M8033 S0
; ==================================
; Diamètre du filament utilisé (mm)
M8021 S1.75
; ==================================
; Température max du bloc de chauffe (°c)
M8022 I275
; ==================================
; Température mini du bloc de chauffe pour extruder (°c)
M8022 T170
; ==================================
; Température max du lit chauffant (°c)
M8023 I100
; ==================================
; Détection d'erreur de T° ( 0 activée et 1 désactivée )
M8023 T0
; ==================================
; Déplacement max en X (mm) -> taille plateau
M8024 I400
; ==================================
; Déplacement max en Y (mm) -> taille plateau
M8025 I400
; ==================================
; Déplacement max en Z (mm)
M8026 I400
; ==================================
; Nombre de têtes d'extrusion (entre 1 et 3)
M8027 I1
; ==================================
; Nombre de filaments par buse ( 2 à 3 = S1 et 1 = S0 )
M8027  S0
; ==================================
; Sélection du nombre de contacteurs Z pour version à 2 moteurs Z.
; 0 : mode double limite Z, le deuxième contacteur se connecte au Z+.
; 1: mode limite simple, 1 seul contacteur fin de course.
; 3: mode trois Z, le troisième contacteur se connecte à Ext. Pour activer cette fonction, placez une coche devant la commande.
;M8027  Z0
; ==================================
; Utilisation du pilote de l'extrudeur E2 pour le Y. Pour activer cette fonction, placez une coche devant la commande.
;M8027  Y0
; ==================================
; Utilisation du pilote de l'extrudeur E2 pour le E1. Pour activer cette fonction, placez une coche devant la commande.
;M8027  E0
; ==================================
;  Autoriser l'utilisation du lit chauffant ( 1 activé et 0 désactivé )
M8027 T1
; ==================================
; Ajouter x.xx mm au retour filament après rétraction
M8028 S0.00
; ==================================
; Position des contacteurs fin de course XY sur la structure pour le pt 0
; 0 limite zéro unilatérale telle que mendel,i3...
; 1 : Limite de points maximum unilatérale telle que makerbot
; 2 : Limite bilatérale telle que ultimaker
; 3 : Limite à l'arrière gauche de la machine (apparaît rarement)
M8029 I0
; ==================================
; Type de contacteur XYZ
; 0 : interrupteur de fin de course XYZ normalement ouvert, lorsqu'il n'est pas déclenché, le niveau du signal est élevé
; 1 : interrupteur de fin de course XYZ normalement fermé, lorsqu'il n'est pas déclenché, le niveau du signal est faible
M8029 T0
; ==================================
; Position sur l'axe Z de l'interrupteur de fin de course
; 0 : buse la plus proche du plateau, l'interrupteur de fin de course se connecte à Z-
; 1 : buse la plus éloignée du plateau, l'interrupteur de fin de course se connecte à Z+
M8029 S0
; ==================================
; Action après XYZ homing -> retour au 0 (0,0,0)
M8029 C0
; ==================================
; Activer le détecteur de filament ( 1 activé et 0 désactivé )
M8029 D1
; ==================================
; Type de contacteur du détecteur de filament (0 identique au XYZ, -1 inverse au XYZ)
M8029 P-1
; ==================================
; Contrôle du ventilateur de refroidissement filament

; 0 contrôlé par le Gcode du trancheur

; >0 déclenche le ventilateur à partir de la t° de consigne
M8030 I0
; ==================================
; Déclenchement auto du ventilateur de la tête d'extrusion à partir de 50°
M8030 I50 T-1
; ==================================
; Pas utilisé (réglage écart X si deuxième tête d'extrusion)
;M8031 S35.0
; ==================================
; Pas utilisé (réglage écart Y si deuxième tête d'extrusion)
;M8032 S0
; ==================================
; Pas utilisé
;M8031 D-35.0
;M8032 D0
; ==================================
; Répertoire de la carte SD affiché sur l'écran
M8034 I1
; ==================================
; Matrice manuelle: Nombre de points de mesure
M8035 I7
; ==================================
; Coordonnées des points de mesure manuelle (doit être = nombre défini au dessus)
M8036 X10 Y10
M8036 X60 Y50
M8036 X380 Y380
M8036 X60 Y380    
M8036 X380 Y380       
M8036 X60 Y50        
M8036 X380 Y50       
; ==================================
; Matrice auto: nombre de points de mesure en X et en Y
; Si X=5 & Y=5 alors 25 pts de mesure mais l'écran n'affiche que les 16 points de gauche
M8038 X4
M8038 Y4
; ==================================
; Type d'architecture de l'imprimante (CoreXY)
M8080 I2
; ==================================
; Type de résistance chauffante : EPCOS NTC 100K 1% 3950 B (équivalent au Type2 sous Marlin)
M8081 I2
; ==================================
; Active le nivellement automatique du plateau
M8083 I1
; ==================================
; Pas utilisé (pour version Delta ?)
;M8083 D0 P0
; ==================================
; Delta Z offset qui correspond à la détection capteur + valeur Z sup.
M8084 Z-1
; ==================================
; Durée d'affichage de l'écran de démarrage (100 ms mini - 6000 ms maxi)
M8085 I6000
; ==================================
; Temps d'attente de l'économiseur d'écran (s)
M8085 T0
; ==================================
; Durée de veille entre la commande d'arrêt et l'arrêt effectif de l'imprimante (s)
M8085 P0
; ==================================
; Pilote de microstep externe
; I : le temps d’établissement entre l’efficacité du signal de direction et le nivellement élevé du signal d’impulsion. L’unité est ns  
; T : le temps de conservation le plus court du signal d’impulsion avec l’unité de ns
M8087 T12000 I0
M8087 Z180000
; ==================================
; Pas utilisé
;M8087 I0 T14200    
; ==================================
; Vitesse du ventilateur de carte mère (256 = max)
M8489 I256
; ==================================
; Vitesse de chargement du filament (mm/s)
M8489 T3
; ==================================
; Déconnecter les pilotes moteur et arrêter les ventilateurs après l'impression.
M8489 P0
; ==================================
; Valeur de réglage du PID de la tête d'extrusion
M301 P22.2 I1.08 D114
; ==================================
; Pas utilisé (lancer 5 cycles de montée en température à 150° du bloc de chauffe)
;M303 E0 S150 C5
; ==================================
; Désélectionner le module de gravure laser
M8520 I0
; ==================================
; Sauver dans l'EEPROM les modifications apportées
M8500

autre code ChiTu:

M8512 "configFile.gcode"

A lancer comme une impression. Permet de générer un nouveau fichier qui donne les valeurs actuelles des codes ChiTu de la carte.

Modifié (le) par Yellow T-pot
  • J'aime 2
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour tous,

Merci pour les explications.

Pour ceux qui suivraient les Tronxy, à priori la dernière X5SA sera pourvu d'un Marlin https://www.tronxyonline.com/Tronxy-X5SA-600-3D-Printer-600-600-600mm-p1640222.html.

Alors va t on vers un changement de fusil d'épaule?? Malheureusement, le firmware n'a pas l'air accessible.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour, oui merci pour ton taf @Yellow T-pot

il y a 17 minutes, fred5976 a dit :

Bonjour tous,

Merci pour les explications.

Pour ceux qui suivraient les Tronxy, à priori la dernière X5SA sera pourvu d'un Marlin https://www.tronxyonline.com/Tronxy-X5SA-600-3D-Printer-600-600-600mm-p1640222.html.

Alors va t on vers un changement de fusil d'épaule?? Malheureusement, le firmware n'a pas l'air accessible.

600x600x600, ça rigole pas

Lien vers le commentaire
Partager sur d’autres sites

Il y a 2 heures, fred5976 a dit :

Merci pour les explications.

Pour ceux qui suivraient les Tronxy, à priori la dernière X5SA sera pourvu d'un Marlin https://www.tronxyonline.com/Tronxy-X5SA-600-3D-Printer-600-600-600mm-p1640222.html.

Hello Fred et merci. Sur ce forum, je ne suis pas le seul à m'être penché sur ces G-codes ni à avoir tenté une traduction mais ça restait un peu noyé dans le flot des messages dans plusieurs sujets donc pas facile de mettre la main dessus quand on en a besoin.

Pour la nouvelle 600x600x600, c'est une belle bête avec son lot de nouveautés dont le direct-drive et ce firmware dit open-source et facilement modifiable (à voir réellement ce qu'il permet de faire) mais l'âme des X5SA n'y est plus, c'est une V-CORE à la mode Ender-5 plus et plus une vraie COREXY, ce que je trouve dommage.

Lien vers le commentaire
Partager sur d’autres sites

J'avais même pas fait gaffe à ça, mais ça change tout. Moi qui me disais qu'on allait pouvoir avoir le choix entre les firmwares. Loupé

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...
il y a 21 minutes, F14Claude a dit :

Comment on dit M503 à une X5SA Pro ?

Peut être avec M503 mais comme avec un marlin "de base" il y a peut être des trucs a activer dans Configuration.h pour que cela fonctionne ... ?https://marlinfw.org/docs/configuration/configuration.html#eeprom 

Citation

//#define DISABLE_M503    // Saves ~2700 bytes of PROGMEM. Disable for release!
#define EEPROM_CHITCHAT   // Give feedback on EEPROM commands. Disable to save PROGMEM.
Modifié (le) par PPAC
  • +1 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 23 minutes, F14Claude a dit :

Comment on dit M503 à une X5SA Pro ?

Ben on ne lui dit pas parce que la fonction Marlin n'est pas active et qu'il n'y a pas de g-code Chitu pour compenser...

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 10 minutes, Yellow T-pot a dit :

Ben on ne lui dit pas parce que la fonction Marlin n'est pas active et qu'il n'y a pas de g-code Chitu pour compenser...

Alors comment récupère-t-on les Steps per Unit ?

Lien vers le commentaire
Partager sur d’autres sites

Je te propose la séquence suivante:

1 er programme à créer sous notepad et sauver sur la carte en gcod: défini les pas/mm initiaux

M8011 S0.0013085 ;Extrudeur à 764 pas/mm

M8500 ;sauvegarde

2eme programme à créer sur SD: demande avance de 100 mm en auto

pour que ça fonctionne, il faut enlever le tube PTFE de l'extrudeur et chauffer la tête à 175 mini

G21 ;Millimeter units

G91 ;Relative positioning

G1 E100 F300 ;Extract 100 mm at 5 mm/s

 

3eme programme: correctif des pas/mm

 

mesure de ce qui sort et règle de 3: (764*100)/ (valeur mesurée en sortie en mm) = P (nouvelle valeur pas.) -> calculer 1/P

M8011 S0.00xxxx ;Extrudeur à xxx pas/mm

M8500 ; sauvegarde

relancer programme 2 pour tester.

Je ne garantis pas que tout soit exact...

  • J'aime 1
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Non malheureusement...j'ai lancé une fois un M8500 à la place d'un M500 sur Pronterface et cela m'a renvoyé un tas de codes erreurs ! donc je ne suis pas certain que les codes Chitu sont acceptés en direct par USB.

j'avais oublié que ton lecteur SD ne répond plus. Pas simple cette histoire.

Tu as essayé l'icone dans le menu qui permet de revenir aux réglage usine au cas ou cela relancerait aussi ton lecteur SD ?

Lien vers le commentaire
Partager sur d’autres sites

Si je n'arrive pas à faire les modifications du firmware je pourrai toujours ajouter les lignes nécessaires au script de début dans Cura.

Lien vers le commentaire
Partager sur d’autres sites

Le 02/05/2021 at 20:11, Yellow T-pot a dit :

 

mesure de ce qui sort et règle de 3: (764*100)/ (valeur mesurée en sortie en mm) = P (nouvelle valeur pas.) -> calculer 1/P

M8011 S0.00xxxx ;Extrudeur à xxx pas/mm

M8500 ; sauvegarde

 

Je suppose qu'il faut lire 13085*100/ (valeur mesurée en sortie en mm) = P (nouvelle valeur pas.)...

Le M8500 donne en effet des réponses bizarres mais j'ai l'impression que les modifications sont néanmoins prises en compte.

Lien vers le commentaire
Partager sur d’autres sites

il y a 16 minutes, F14Claude a dit :

Je suppose qu'il faut lire 13085*100/ (valeur mesurée en sortie en mm) = P (nouvelle valeur pas.)...

oui cela fonctionne aussi si tu remplaces les X par le résultat de ton calcul dans la commande M8011 S0.00XXXXX

C'est juste que c'est moins clair sur ta valeur réelle de pas/mm à utiliser par ton extrudeur pour qu'il sorte la bonne valeur de filament et que cela ne fonctionne que pour un extrudeur Titan ou avec une démul proche.

Je préfère donc faire le calcul pour avoir en retour la valeur des pas/mm classiques puis faire le 1/ (pas/mm) pour l'intégrer dans le M8011 S. En plus si tu passes à Marlin, ce sont bien les pas/mm qu'il faudra renseigner.

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Comme je n'ai pas trop confiance dans le M8500 j'ai inclus la modification pour l'extrudeur dans le start code de Cura.

Je suppose qu'on peut faire pareil pour les X et les Y (200mm en X ne me donne que 197mm) avec M8009 mais quelles sont les valeurs de départ ?

Lien vers le commentaire
Partager sur d’autres sites

Il y a 5 heures, F14Claude a dit :

avec M8009 mais quelles sont les valeurs de départ ?

comme expliqué au début du sujet, j'ai utilisé le firmware de la X5SA proposé par Tronxy sur son site. Les valeurs spécifiées sont donc les bonnes:

==================================
; Pas/mm pour XY ensemble = 1 divisé par les pas/mm
; 0.00625 = 160 pas/mm
M8009 S0.00625

Il y a 5 heures, F14Claude a dit :

200mm en X ne me donne que 197mm

Ça fait une grosse erreur je trouve. Sur la mienne avec les 160 step/mm c'est dans le dixième...il doit y avoir autre chose pour expliquer un écart de 3 mm.

Déjà, ton axe X est bien perpendiculaire à l'axe Y ?

Lien vers le commentaire
Partager sur d’autres sites

Oups !... En fait, c'était 199.7. Donc rien à modifier. 20.01 pour le cube de test de 20mm mais on est dans la marge d'erreur, je pense.

Un truc bizarre, une fois exécutée la commande G1 E100 F300 qui marche correctement, impossible de la relancer.

Il faut que j'éteigne et rallume.

Y a-t'il quelque chose à faire en plus, si on veut l'exécuter plusieurs fois ?

Lien vers le commentaire
Partager sur d’autres sites

il y a 34 minutes, F14Claude a dit :

Un truc bizarre, une fois exécutée la commande G1 E100 F300 qui marche correctement, impossible de la relancer.

Il faut que j'éteigne et rallume.

Y a-t'il quelque chose à faire en plus, si on veut l'exécuter plusieurs fois ?

Soit redéfinir la position actuel de E a 0 avec un "G92 E0" https://marlinfw.org/docs/gcode/G092.html

Soit utiliser M83 https://marlinfw.org/docs/gcode/M083.html pour être en relatif ...

Modifié (le) par PPAC
  • +1 1
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 37 minutes, F14Claude a dit :

Oups !... En fait, c'était 199.7. Donc rien à modifier. 20.01 pour le cube de test de 20mm mais on est dans la marge d'erreur, je pense.

Ben voila, je préfère 🙂

il y a 38 minutes, F14Claude a dit :

Un truc bizarre, une fois exécutée la commande G1 E100 F300 qui marche correctement, impossible de la relancer.

Je suppose que tu es toujours en direct sous Pronterface ?

J'essayerai bien un:

G92 E0  (Reset Extruder)

avant de relancer un G1 E100 F300

 

info:

avec F300 j'ai calé la vitesse à 5 mm/s (300 mm/mn), si tu trouves ça trop lent, tu peux augmenter le 300.

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...