Ce site contient essentiellement des notes de travail. Le contenu est en constante évolution, et loin d'être achevé. (+ d'infos)
La plupart des documentations informatiques sont orientées Debian / Ubuntu.

Modélisme/Imprimantes 3D/Firmwares/Marlin/Contrôleurs de moteurs

De Ordinoscope.net
Sauter à la navigation Sauter à la recherche

Trinamic

Description du hardware

Les paramètres suivants sont dans Configuration_adv.h.

HYBRID_THRESHOLD (M913)

/**
  * The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
  * This mode allows for faster movements at the expense of higher noise levels.
  * STEALTHCHOP needs to be enabled.
  * M913 X/Y/Z/E to live tune the setting
  */
 //#define HYBRID_THRESHOLD

 #define X_HYBRID_THRESHOLD     100  // [mm/s]
 ...

MONITOR_DRIVER_STATUS (M906, M911, M912, M122)

 /**
  * Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
  * like overtemperature and short to ground. TMC2208 requires hardware serial.
  * In the case of overtemperature Marlin can decrease the driver current until error condition clears.
  * Other detected conditions can be used to stop the current print.
  * Relevant g-codes:
  * M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
  * M911 - Report stepper driver overtemperature pre-warn condition.
  * M912 - Clear stepper driver overtemperature pre-warn condition flag.
  * M122 S0/1 - Report driver parameters (Requires TMC_DEBUG)
  */
 //#define MONITOR_DRIVER_STATUS

 #if ENABLED(MONITOR_DRIVER_STATUS)
   #define CURRENT_STEP_DOWN     50  // [mA]
   #define REPORT_CURRENT_CHANGE
   #define STOP_ON_ERROR
 #endif

STEALTHCHOP

 /**
  * Use Trinamic's ultra quiet stepping mode.
  * When disabled, Marlin will use spreadCycle stepping mode.
  */
 #define STEALTHCHOP

TMC_DEBUG (M122)

 /**
  * Enable M122 debugging command for TMC stepper drivers.
  * M122 S0/1 will enable continous reporting.
  */
 //#define TMC_DEBUG

TMC_Z_CALIBRATION (M915)

 /**
  * M915 Z Axis Calibration
  *
  * - Adjust Z stepper current,
  * - Drive the Z axis to its physical maximum, and
  * - Home Z to account for the lost steps.
  *
  * Use M915 Snn to specify the current.
  * Use M925 Znn to add extra Z height to Z_MAX_POS.
  */
 //#define TMC_Z_CALIBRATION
 #if ENABLED(TMC_Z_CALIBRATION)
   #define CALIBRATION_CURRENT 250
   #define CALIBRATION_EXTRA_HEIGHT 10
 #endif

Gcode

  • M122 - TMC debugging
  • M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given
  • M911 - Report stepper driver overtemperature pre-warn condition
  • M912 - Clear stepper driver overtemperature pre-warn condition flag
  • M913 - Set hybrid threshold speed
  • M915 - TMC Z axis calibration

TMC2130 (SPI)

Configuration.h

#define X_DRIVER_TYPE TMC2130
#define Y_DRIVER_TYPE TMC2130
#define Z_DRIVER_TYPE TMC2130
#define E0_DRIVER_TYPE TMC2130

L'option SENSORLESS_HOMING active l'utilisation du contrôleur comme switch de butée.

 /**
  * Use stallGuard2 to sense an obstacle and trigger an endstop.
  * You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
  * X, Y, and Z homing will always be done in spreadCycle mode.
  *
  * X/Y/Z_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
  * Higher values make the system LESS sensitive.
  * Lower value make the system MORE sensitive.
  * Too low values can lead to false positives, while too high values will collide the axis without triggering.
  * It is advised to set X/Y/Z_HOME_BUMP_MM to 0.
  * M914 X/Y/Z to live tune the setting
  */
 //#define SENSORLESS_HOMING // TMC2130 only

 #if ENABLED(SENSORLESS_HOMING)
   #define X_HOMING_SENSITIVITY  8
   #define Y_HOMING_SENSITIVITY  8
   #define Z_HOMING_SENSITIVITY  8
 #endif

Gcode

  • M914 - TMC bump sensivity

Remarque concernant la surchauffe

Le courant des moteurs est défini dans le firmware par les paramètres « X_CURRENT ». Ceux-ci peuvent être modifiés par la commande M906.

Les drivers TMC2130 chauffent passablement, et nécessitent d'être refroidis. Lorsqu'un dépassement de température est détecté, et pour autant que le paramètre « MONITOR_DRIVER_STATUS » soit activé, le firmware réduit automatiquement le courant du moteur concerné de la valeur de « CURRENT_STEP_DOWN » (par défaut 50mA). Ce changement impacte la valeur de M906, laquelle est sauvée automatiquement (M500).

Bien que ce monitoring soit une valeur ajoutée incontestable, la réduction du courant a un effet pervers, puisqu'elle peut mener à une perte de pas.

Quelques points clé:

  • refroidir les drivers (ventilateur)
  • contrôler les messages d'alerte de température
  • contrôler / ajuster le courant réglé actuellement (M122 / M906)
  • éventuellement diminuer l'accélération

TMC2208 (UART)

#define X_DRIVER_TYPE TMC2208
#define Y_DRIVER_TYPE TMC2208
#define Z_DRIVER_TYPE TMC208
#define E0_DRIVER_TYPE TMC2208

Références