Welcome! Log In Create A New Profile

Advanced

BTT SKR PRO, TMC2208 et Marlin 2.0

Posted by joyeufetar 
BTT SKR PRO, TMC2208 et Marlin 2.0
April 17, 2020 07:59AM
Bonsoir à tous,

Je suis en train de finir le montage d'une nouvelle imprimante. Elle contient entre autre :
- Carte Bigtreetech SKR PRO V1.1
- Driver TMC2208 Fysetc v1.2
- Firmware Marlin 2.0

J'ai préconfiguré le firmware et le build fonctionne sans soucis.

Pour le montage des drivers, j'ai essayé de vérifier que chaque pin du driver correspondait bien avec ceux de la carte, mais je n'arrive pas à en être certain.
Déjà, j'ai beau cherché dans la doc de la carte, impossible de trouver la correspondance avec les pins des drivers.
Si quelqu'un à ça (ou peut me donner les infos), ça serait super smiling smiley

Voila des photos des drivers que j'ai :


D'après ce qui est indiqué sur les PCB des drivers, le mode UART semble actif par défaut.
Donc je suppose que je n'ai pas de soudure à faire dessus comme sur certaines anciennes versions.
Est ce ça vous parait correct ?

Ensuite, vient le paramétrage des drivers.
Je souhaite utiliser les 2208 en UART sans interpolation (en 256 pas réel), j'ai donc pour ça mis le jumper unique comme indiqué dans le doc de la carte SKR.
Ils piloteront des moteurs NEMA17 dont voici les caractéristiques :
-> Modèle : LDO-42STH47-1684AC
-> Couple : 50 N.cm
-> Rated voltage : 2.8V
-> Rated current : 1.68A
-> Inductance : 2.8 mH

Si je comprends bien, il me suffit de paramétrer Marlin pour utiliser ces drivers dans le mode souhaité.
Dans le fichier Configuration.h, il faut donc que je modifie cette partie la (en définissant les drivers que je veux utiliser pour chaque axe) :

/**
 * Stepper Drivers
 *
 * These settings allow Marlin to tune stepper driver timing and enable advanced options for
 * stepper drivers that support them. You may also override timing options in Configuration_adv.h.
 *
 * A4988 is assumed for unspecified drivers.
 *
 * Options: A4988, A5984, DRV8825, LV8729, L6470, L6474, POWERSTEP01,
 *          TB6560, TB6600, TMC2100,
 *          TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,
 *          TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE,
 *          TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
 *          TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
 * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']
 */
#define X_DRIVER_TYPE  TMC2208
#define Y_DRIVER_TYPE  TMC2208
#define Z_DRIVER_TYPE  TMC2208
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2208
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
//#define E6_DRIVER_TYPE A4988
//#define E7_DRIVER_TYPE A4988

A quoi correspondent les lignes X2, Y2, Z2... ?
Y a t'il autre chose à modifier dans ce fichier la ?
Sachant que j'ai un moteur pour l'axe X, un pour Y, 2 pour Z et 1 seul extrudeur.

Et dans le fichier Configuration_adv.h, il faut modifier aussi cette partie la (pour chaque groupe de ligne défini dans le code ci-dessus) :

/**
 * To use TMC2130, TMC2160, TMC2660, TMC5130, TMC5160 stepper drivers in SPI mode
 * connect your SPI pins to the hardware SPI interface on your board and define
 * the required CS pins in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3
 * pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
 * You may also use software SPI if you wish to use general purpose IO pins.
 *
 * To use TMC2208 stepper UART-configurable stepper drivers connect #_SERIAL_TX_PIN
 * to the driver side PDN_UART pin with a 1K resistor.
 * To use the reading capabilities, also connect #_SERIAL_RX_PIN to PDN_UART without
 * a resistor.
 * The drivers can also be used with hardware serial.
 *
 * TMCStepper library is required to use TMC stepper drivers.
 * [github.com]
 */
#if HAS_TRINAMIC_CONFIG

  #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
  #define INTERPOLATE       false  // Interpolate X/Y/Z_MICROSTEPS to 256

  #if AXIS_IS_TMC(X)
    #define X_CURRENT       800        // (mA) RMS current. Multiply by 1.414 for peak current.
    #define X_CURRENT_HOME  X_CURRENT  // (mA) RMS current for sensorless homing
    #define X_MICROSTEPS     256    // 0..256
    #define X_RSENSE          0.11
    #define X_CHAIN_POS      -1    // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
  #endif

J'ai donc modifié la ligne INTERPOLATE par false et indiqué les MICROSTEPS à 256.
Est ce bien ce qu'il faut faire ?

Ensuite, vient le réglage du courant.
Donc si je comprends bien le commentaire à côté de la ligne, pour trouver le courant RMS, il suffit que je prenne le courant max de mes moteurs et que je divise par 1.414 ?
Donc ça donnerait, par exemple, un X_CURRENT à : 1.68A / 1.414 = 1.19A
Donc je dois renseigner 1190 dans la ligne X_CURRENT, c'est bien ça ?
Pour information, voila ce que dit la doc des drivers :

Donc en règlant mes drivers à 1.19A RMS, je suis à la limite haute.

Y a t'il aussi un ajustement du voltage à faire directement sur les drivers ?
Ou la configuration de Marlin suffit à elle seule à faire fonctionner les drivers comme il faut ?

Voila, je sais que ça fait beaucoup de questions, mais je veux être sur de bien faire les choses et d'avoir bien tout compris.
Et je sais qu'il y a certains experts qui pourront corriger mes erreurs si il y en a.

Merci d'avance pour votre aide.
Cordialement


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: BTT SKR PRO, TMC2208 et Marlin 2.0
April 19, 2020 08:29AM
Bonjour,

Personne ne peut valider ou apporter des infos à ce que je dis ?

Cordialement


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: BTT SKR PRO, TMC2208 et Marlin 2.0
April 19, 2020 10:18AM
'Knowing that I have a motor for the X axis, one for Y, 2 for Z and 1 single extruder."

Need
#define Z2_DRIVER_TYPE TMC2208

Z2 should use first unused E,ie E1 plug.
'Is there also a voltage adjustment to be made directly on the drivers?
Or is Marlin's configuration sufficient to operate the drivers properly?"

In UART mode Marlin configuration is all that is needed to set current limits.
Re: BTT SKR PRO, TMC2208 et Marlin 2.0
April 19, 2020 12:09PM
Hi,

Thanks for your answer.

Could you please confirm that TMC2208 could be mount without any modification on SKR PRO board ?
And, could you also confirm my settings for Configuration_adv.h file please ?

Thanks in advance,
Cordially


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: BTT SKR PRO, TMC2208 et Marlin 2.0
May 06, 2020 11:45AM
Alors ...
les lignes X2,Y2,Z2 servent à cloner les commande : si tu as deux moteurs sur l'axe Z par exemple, tu peux avoir un stepper pour chacun des moteurs (au lieu d'un stepper pour deux moteurs). Idem pour Z3...Z4
Pour le courant, c'est DEFINE_X_CURRENT par exemple, et c'est en mA. Tu n'as pas de conversion à faire. Et tu peux modifier les courant après avec une commande GCODE.
Tu n'as pas de réglage de voltage : tes moteurs sont alimentés par ton alim qui a normalement une tension fixe.
Re: BTT SKR PRO, TMC2208 et Marlin 2.0
May 13, 2021 01:53PM
j'ai le même soucis avec un SKR1.3 TMC 2208 V3.0

#if AXIS_IS_TMC(X)
    #define X_CURRENT       1190          //800        // (mA) RMS current. Multiply by 1.414 for peak current.
    #define X_CURRENT_HOME  X_CURRENT  // (mA) RMS current for sensorless homing
    #define X_MICROSTEPS     32   //16        // 0..256
    #define X_RSENSE          0.11
    #define X_CHAIN_POS      -1        // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ...
    //#define X_INTERPOLATE  true      // Enable to override 'INTERPOLATE' for the X axis
  #endif

avec 256 ou 32 j'obtient l'erreur suivante
Errortongue sticking out smileyrinter halted. kill() called!
Re: BTT SKR PRO, TMC2208 et Marlin 2.0
May 14, 2021 10:36AM
Je troune en rond .....

Moteur SL42STH40-1684A

Step Angle 1.8° - 200 PAS par révolution (360°/1.8°)
Step Angle Accuracy ±5% (full step, no load)
Voltage 2.8V
Current per phase 1.68A Rated Current – Courant Nominal
Resistance per phase 1.65Ω
Resistance accuracy ±10%
Inductance per phase 3.2mH
Inductance accuracy ±20%
Holding torque 3.6 Kgcm (0.4 Nm - )
Moment of inertia 54 g/cm2
Orientation torque 150 g/cm
Temperature rise 80°C max (rated current, 2 phases on)
Ambient temperature -20°C ~ +50°C
Insulation resistance 100MΩ min, 500VDC
Shaft radial play 0.02 mm max (450g load)
Shaft axial play 0.08 mm max (450g load)
Max. radial force 28N (20mm from the flange)
Max. axial force 10N
Weight 0.28 kg
Length 40 mm
1 bar = 10N/cm2


j'ai calculer le Vref du TMC2208 V3.0 selon ce forum de la personne suivante stef_ladefense.

je joints mes fichiers Configuration.h et Configuration_adv.h du firmware Marlin-bugfix version 020008

#define X_CURRENT 1190 est calculer selon 1.68A/1.414 = 1.19A = 1190 mA

les moteurs X et Y répondent bien en distance et Home individuel

mais, j'obtient toujours echo:busy:processing

puis l'erreur :

Errortongue sticking out smileyrinter halted. kill() called!
[ERROR] Errortongue sticking out smileyrinter halted. kill() called!

même en testant

#define INTERPOLATE false
ou
#define INTERPOLATE true

Configuration.hConfiguration_adv.h
Sorry, only registered users may post in this forum.

Click here to login