Aller au contenu

Messages recommandés

Posté(e) (modifié)

Nous allons voir ici comment utiliser les TMC2208 en mode UART que j'ai enfin recu 😄 , ça va concerner très peux de monde mais je partage quand même 😉 

La communication se fera sur un seul fil pour deux raisons. Principalement parce que  je n'ai pas beaucoup de pins supplémentaires à disposition sur ma carte mais aussi parce que ce mode est très bien géré par Klipper.

 

Coté imprimante, il s'agit de la Geeetech A10 et sa carte mère GT2560 v3.

Je vais utiliser ici des TMC2208 de la marque FYSETC en version 1.2 (3.1€/piece sur ebay ici ) .

avec le radiateur:

DSC00841.JPG.e761080f8634511112deb301a1eb3414.JPG

 

Vue de dessus sans radiateur

DSC00852.JPG.032f1fa1fc82451f358b961342e8532e.JPG

 

Vue de dessous:

DSC00842.JPG.08b5434db4c02d8410c15b048c3f126c.JPG

 

 1 - modification des TMC2208.

Deux modifications sont à prévoir. La première est le câblage des pins via une soudure et la seconde est la modification de la pin UART pour pouvoir la brancher ailleurs sur la carte mère.

Sur ce model nous avons à disposition deux pins pour l'UART (UART & PDN).

DSC00852_2.jpg.116f0ef27aa92684617fd3e24ab8266f.jpg

 

Que l'on peut "activer" ici grâce à une petite soudure. Les lignes rouges représentent le câblage du PCB. On peut activer l'un ou l'autre  en soudant le pad central au pad corespondant.

DSC00842_3.jpg.dcefdc53abe1d77dcf93dc1324e726ab.jpg

Vu la petite taille de la soudure, je vais câbler les deux pins même si je ne vais en utiliser qu'un. A savoir que coté carte mère ses pins ne sont pas câblés donc aucun risque. Pour cela je soude les trois pads ensemble.

Le radiateur est imposant (ce qui est plutôt bien) mais empêche la sortie par le dessus. On va donc sortir par dessous. Je commence par découper le plastique autour du pin UART et je le dessoude. Je ressoude un pin que je fais partir à l'horizontal ou à la vertical en fonction du futur emplacement sur la carte.

 

les deux opérations effectuées, soudure des pads et pin

DSC00859_4.jpg.5168a4913f7d6273703133823448c439.jpg

un autre exemple

DSC00848.JPG.2039adb311d9fbbb1d165f1c8b3a8c0f.JPG

un TMC2208 finalisé avec sortie vertical

DSC00851.JPG.fa6b8d65be67251ce8933c45113f87a6.JPG

2 - Carte mère gt2560 v3

Je vais devoir récupérer des pins coté carte mère pour brancher les UARTs. pour les axes X,Y & Z, je récupère les pins sur le connecteur 5 broches.

Un petit coup de fer a souder, quelques pins 2.54 et on arrive à ça. Ça me permet de récupérer les pins 15,14,34 et du 5V au passage si besoin.

Axe X >> RX3 >> D15
Axe Y >> TX3 >> D14
Axe Z >> INT >> D34

DSC00853_5.jpg.eded843602596cff5ae43dceea2e56e1.jpg

 

Le tout, avec également un tmc2208 pour l'extruder (pin 45 récupéré sur T0)

IMG_20190912_182208.jpg.233d325aef5b59aa0a923d62ee2e914b.jpg

 

3 - Klipper

Coté configuration on ajoute la gestion des TMC2208 pour chaque axe, conf à adapter à votre materiel !

######## STEPPER X TMC2208 #######

# Configure a TMC2208 (or TMC2224) stepper motor driver via single
# wire UART. To use this feature, define a config section with a
# "tmc2208" prefix followed by the name of the corresponding stepper
# config section (for example, "[tmc2208 stepper_x]"). This also
# creates a "tmc2208_stepper_x:virtual_enable" virtual pin which may
# be used as the stepper's enable_pin (for enabling the driver via a
# UART message).
[tmc2208 stepper_x]
uart_pin: ar15
#   The pin connected to the TMC2208 PDN_UART line. This parameter
#   must be provided.
#tx_pin:
#   If using separate receive and transmit lines to communicate with
#   the driver then set uart_pin to the receive pin and tx_pin to the
#   transmit pin. The default is to use uart_pin for both reading and
#   writing.
#select_pins:
#   A comma separated list of pins to set prior to accessing the
#   tmc2208 UART. This may be useful for configuring an analog mux for
#   UART communication. The default is to not configure any pins.
microsteps: 16
#   The number of microsteps to configure the driver to use. Valid
#   values are 1, 2, 4, 8, 16, 32, 64, 128, 256. This parameter must
#   be provided.
#interpolate: True
#   If true, enable step interpolation (the driver will internally
#   step at a rate of 256 micro-steps). The default is True.
run_current: 0.8
#   The amount of current (in amps) to configure the driver to use
#   during stepper movement. This parameter must be provided.
#hold_current:
#   The amount of current (in amps) to configure the driver to use
#   when the stepper is not moving. The default is to use the same
#   value as run_current.
#sense_resistor: 0.110
#   The resistance (in ohms) of the motor sense resistor. The default
#   is 0.110 ohms.
stealthchop_threshold: 200
#   The velocity (in mm/s) to set the "stealthChop" threshold to. When
#   set, "stealthChop" mode will be enabled if the stepper motor
#   velocity is below this value. The default is 0, which disables
#   "stealthChop" mode.
#driver_IHOLDDELAY: 8
#driver_TPOWERDOWN: 20
#driver_TBL: 2
#driver_TOFF: 3
#driver_HEND: 0
#driver_HSTRT: 5
#driver_PWM_AUTOGRAD: True
#driver_PWM_AUTOSCALE: True
#driver_PWM_LIM: 12
#driver_PWM_REG: 8
#driver_PWM_FREQ: 1
#driver_PWM_GRAD: 14
#driver_PWM_OFS: 36
#   Set the given register during the configuration of the TMC2208
#   chip. This may be used to set custom motor parameters. The
#   defaults for each parameter are next to the parameter name in the
#   


######## STEPPER Y TMC2208 #######

[tmc2208 stepper_y]
uart_pin: ar14
microsteps: 16
run_current: 0.8
stealthchop_threshold: 200


######## STEPPER Z TMC2208 #######

[tmc2208 stepper_z]
uart_pin: ar34
microsteps: 16
run_current: 0.8
stealthchop_threshold: 200


######## STEPPER E0 TMC2208 #######

[tmc2208 extruder]
uart_pin: ar45
microsteps: 16
run_current: 0.8
stealthchop_threshold: 200

Sans oublier de modifier le sens des moteurs

[stepper_x]
#avant
#dir_pin: !ar39
#apres
dir_pin: ar39

[stepper_y]
#avant
#dir_pin: !ar33
#apres
dir_pin: ar33

[stepper_z]
#avant
#dir_pin: ar23
#apres
dir_pin: !ar23

[extruder]
#avant
#dir_pin: ar44
#apres
dir_pin: !ar44

Validation de la communication UART

On relance Klipper et dans un terminal on lance la commande suivante:

DUMP_TMC STEPPER=stepper_x

en retour nous avons

Recv: // ========== Write-only registers ==========
Recv: // IHOLD_IRUN: 00081616 IHOLD=22 IRUN=22 IHOLDDELAY=8
Recv: // TPWMTHRS:   0000002f TPWMTHRS=47
Recv: // TPOWERDOWN: 00000014 TPOWERDOWN=20
Recv: // ========== Queried registers ==========
Recv: // GCONF:      000001c0 pdn_disable=1 mstep_reg_select=1 multistep_filt=1
Recv: // GSTAT:      00000001 reset=1
Recv: // IFCNT:      00000006 IFCNT=6
Recv: // OTP_READ:   0000000c OTP_FCLKTRIM=12
Recv: // IOIN@TMC220x: 2000014d ENN=1 MS1=1 MS2=1 PDN_UART=1 SEL_A=1(TMC220x) VERSION=0x20
Recv: // FACTORY_CONF: 0000000c FCLKTRIM=12
Recv: // TSTEP:      000fffff TSTEP=1048575
Recv: // MSCNT:      00000008 MSCNT=8
Recv: // MSCURACT:   00f7000c CUR_A=12 CUR_B=247
Recv: // CHOPCONF:   14030053 toff=3 hstrt=5 TBL=2 vsense=1 MRES=4(16usteps) intpol=1
Recv: // DRV_STATUS: c0160000 CS_ACTUAL=22 stealth=1 stst=1
Recv: // PWMCONF:    c80d0e24 PWM_OFS=36 PWM_GRAD=14 pwm_freq=1 pwm_autoscale=1 pwm_autograd=1 PWM_REG=8 PWM_LIM=12
Recv: // PWM_SCALE:  00000019 PWM_SCALE_SUM=25
Recv: // PWM_AUTO:   000e0024 PWM_OFS_AUTO=36 PWM_GRAD_AUTO=14

C'est tout bon, recommencer avec les autre axes

DUMP_TMC STEPPER=stepper_y
DUMP_TMC STEPPER=stepper_z
DUMP_TMC STEPPER=extruder

Il ne reste plus qu'a valider sur la machine et à vous la précision et le silence !

 

J'ajoute également mon fichier de configuration pour exemple:

A10 v3 - TMC2208uart.cfg

:banana:

 

 

 

Modifié (le) par hidius
  • J'aime 2
  • Merci ! 2
Posté(e)

tuto super intéressant, je vais faire quasiment la même chose sur mon anet A8  et une carte ramps 1.4 et bien sur klipper...

Par contre j'hésite vraiment en les  tmc 2208 et les tmc 2130 spi.

Posté(e)
Il y a 3 heures, hidius a dit :

en effet le StallGuard peut etre sympa a mettre en oeuvre avec le 2130

C'est certe une bonne option mais je préfére l'évitér, je pense que rien de vos un bon end stop des familles.

Posté(e)

Les TMC2209 ont le stallguard, le silence des 2208 et, comme si ça ne suffisait pas, on peut y mettre des moteurs plus costauds et/ou chauffer moins les drivers. Ce n'est pas beaucoup plus cher que des 2208 ou 2130. Forcément avec tous ces avantages ils sont en ruptures de stock et c'est obligatoirement de la précommande chez nos fournisseur asiatiques préférés. Pour avoir une idée des délais Fysetc annonce recevoir un batch mi octobre.

Dès que la date de livraison de la Zatsit se concrétise, je me mets dans la fil d'attente avec une SKR 1.3.

Pour l'instant Klipper ne supporte pas le Stallguard des 2209 mais ce n'est qu'une affaire de temps. Stephan3 l'a fait pour les 5160, a déjà implémenté les 2209 sans Stallguard avant ses vacances et a prévu de finaliser le truc. Donc je n'ai aucun doute sur la réalisation d'autant qu'il y a du monde qui s'y intéresse. Pour l'instant ils réagissent comme des 2208.

@palouf34, si le Stallguard ne t'intéresse pas autant prendre des 2208 plus silencieux que les 2130 ou attendre des 2209 pour leur courant RMS plus élevé.

@hidius, je trouve ton câblage très propre.

J'ai monté des TMC2208 avec Klipper il y a 2 week-end mais avec moins de gloire que @hidius, parce que tout est précablé sur une SKR 1.3. J'ai eu un petit soucis avec le pont de soudure: j'ai visé le pin marqué UART mais ce n'était pas le bon (sérigraphie erronée?). Quoiqu'il en soit Klipper via l'extension OctoKlipper signale un défaut de communication vers stepper_x, stepper_y et ainsi de suite. J'ai repris mes soudures vers l'autre broche, sur certains j'ai ponter les 3 pads ensemble et ça fonctionne aussi. Conclusion: ce n'est pas la peine d'être d'une finesse folle là dessous, un gros patté d'étain entre les 3 pads fera l'affaire.

  • J'aime 1
Posté(e) (modifié)

effecitvement, je vais m'y repenché car la différence sur mamazon entre les 2130  spi et les 2208 uart n'est que de 5€  mais surtout il y en a un de plus pour les 2208... donc le choix est vite vue 😉

 

[edit]  il me reste a trouver le bon tuto pour   les mettrent en places sur une ramps 1.4...

Modifié (le) par palouf34
rajout point sur tuto
Posté(e)
il y a une heure, Tircown a dit :

J'ai monté des TMC2208 avec Klipper il y a 2 week-end mais avec moins de gloire que @hidius, parce que tout est précablé sur une SKR 1.3. J'ai eu un petit soucis avec le pont de soudure: j'ai visé le pin marqué UART mais ce n'était pas le bon (sérigraphie erronée?). Quoiqu'il en soit Klipper via l'extension OctoKlipper signale un défaut de communication vers stepper_x, stepper_y et ainsi de suite. J'ai repris mes soudures vers l'autre broche, sur certains j'ai ponter les 3 pads ensemble et ça fonctionne aussi. Conclusion: ce n'est pas la peine d'être d'une finesse folle là dessous, un gros patté d'étain entre les 3 pads fera l'affaire.

En effet il y a visiblement beaucoup de variantes dans les TMC2208. Habituellement je fais confiance au marquage mais vu les témoignages pendant ma phase de recherche d'infos, j'ai sorti le multimètre pour vérifier.

Pour la photo de la soudure j'ai choisi une des meilleurs 😅, ça commence à faire petit. Comme tu le précises, pas besoin de chercher la précision.

 

Depuis concernant l'extruder, je me suis aperçu que je ne pourrais pas utiliser le pin du second détecteur de filament. Du coup, je suis en rade de pin et je ne vais pas pouvoir utiliser plus de 3 TMC2208 avec cette carte. A moins d'aller souder direct sur le mega2560 mais ça fait trop petit pour moi. J'ai placé les tmc2208 sur le X,Y et extrudeur, je vais tourner comme ça et si le bruit me dérange vraiment, je changerai de carte, sachant que le connecteur USB est déjà mort.La même carte que toi je pense, 32b, bien pensé, pas cher, elle a tout pour elle !

Posté(e) (modifié)

Le seul truc qui manque à la SKR1.3 c'est un accès à l'I2C. Je cherche encore mais à priori je dois sacrifier le second extrudeur et utiliser deux de ses pins. J'ai récupéré un PAT9125 (l'ancien capteur de filament laser sur les Prusa Original) et un fork de Klipper l'a intégré. A part ça, elle est bien foutue, j'aime bien le fait qu'il y ait des fusibles et le LPC1768 de la SKR1.3 est très bien placé dans le benchmark de Klipper. Je dérive un peu, ce n'est pas le sujet.

Pour en revenir à ton soucis de double capteur de filament, t'as une imprimante avec deux extrudeurs? Si non, tu peux les mettre en série/parallèle avec le premier capteur selon leur comportement NC/NO. Idem pour faire du bicolore. Ce serais juste en utilisation "fin de bobine" ou ça ne marche pas. Peut-être n'ai je pas compris ton soucis.

Modifié (le) par Tircown
Posté(e)
Il y a 22 heures, Tircown a dit :

Pour en revenir à ton soucis de double capteur de filament, t'as une imprimante avec deux extrudeurs? Si non, tu peux les mettre en série/parallèle avec le premier capteur selon leur comportement NC/NO. Idem pour faire du bicolore. Ce serais juste en utilisation "fin de bobine" ou ça ne marche pas. Peut-être n'ai je pas compris ton soucis.

Je ne me sers pas du second détecteur de filament, mais ca pin ne me permet pas d'acceder directement au 2560. Mais tu m'a fais penser au sixieme moteur exploitable dont je n'avais pas penser 😊, merci a toi. il y a peu de chance que je l'utilise celui la ! En grattant j'ai aussi trouvé des pins dispo sur le connecteur "UART_LCD" qui n'est pas câblé.

 

J'ai édité le premier post pour l'ajout du quatrième TMC2208 et re-upload de ma config avec quelques ajustements.

  • 3 months later...
Posté(e)
Le 11/09/2019 at 20:57, palouf34 a dit :

effecitvement, je vais m'y repenché car la différence sur mamazon entre les 2130  spi et les 2208 uart n'est que de 5€  mais surtout il y en a un de plus pour les 2208... donc le choix est vite vue 😉

 

[edit]  il me reste a trouver le bon tuto pour   les mettrent en places sur une ramps 1.4...

bonjour,

as tu trouvé un tuto efficace.

moi aussi je suis entrain de paramétrer ma mega2560 wifi et ma ramps 1.4.

si tu as des recommendation merci d'avance pour ton aide

Posté(e)
Il y a 21 heures, dadour13 a dit :

bonjour,

as tu trouvé un tuto efficace.

moi aussi je suis entrain de paramétrer ma mega2560 wifi et ma ramps 1.4.

si tu as des recommendation merci d'avance pour ton aide

Non pas vraiment, mais je me suis basé sur les tuto qui parlent des TMC2208 en UART pour l'installation.  Aprés en suivant ce fils, cela roule sans trop de soucis...

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
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...