BricoLemon: Controladora 32-bits SAMD51 120MHz para impresoras 3D

  • 3

1 Avanzado

Éste es uno de los elementos más importante de la Bricolemon, ya que si no configuramos adecuadamente los motores tendremos una máquina que no se mueve, literalmente.

En esta placa se utilizan los drivers TMC2209, los cuales están configurados por UART. De base desde el repositorio de la Bricolemon está todo configurado para que funcionen de manera inicial por UART, por lo que la configuración que tenemos que realizar es relativa a los pasos y corrientes.

Vamos empezar por la gestión de los pasos por vuelta de nuestra impresora, para ello vamos buscar en el código el Hastag ##Steppers_UNITS##

Sección Steppers

Sección Steppers

Con la ayuda de buscar (CONTROL   F) podemos encontrar rápidamente con los hashtag las referencias de este manual. Una vez estemos en la línea como se muestra en la foto anterior lo que debemos hacer es configurar nuestros motores de la máquina que tengamos. Por lo tanto debemos configurar los campos:

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80.40, 80.40, 800.00, 111 } //Ender 5 M92 X84.03 Y80.40 Z800.00 E93.00
#define DEFAULT_MAX_FEEDRATE          { 500, 500, 5, 25 }
#define DEFAULT_MAX_ACCELERATION      { 500, 500, 100, 1000 }
#define DEFAULT_ACCELERATION          500    // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION  500    // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION   1000    // X, Y, Z acceleration for travel (non printing) moves

En estos campos debemos poner los valores adecuados en función de nuestra máquina. En Internet hay muchas calculadoras y guías para poder hacerlo de manera adecuada.

Dos ejemplos muy buenos son los vídeos de Obijuan así como este otro vídeo del Taller 3D de Alexei

Configuración de corriente de los motores

A continuación vamos a explicar como modificar la corriente de los drivers mediante Marlin, ya que estos TMC2209 dan la capacidad de configurar la corriente máxima que queremos entregarles.

Para poder encontrar esta sección debemos irnos al archivo configuration_adv.h de Marlin y buscar el tag @section tmc_smart o también HAS_TRINAMIC_CONFIG.

De esta manera accederemos a los parámetros de corriente de los motores y sus posibles configuraciones. En el ejemplo de abajo, verás que es la configuración de corriente del driver X, indicado como AXIS_IS_TMC(X). 

Verás que debes encontrar por el nombre el driver que quieras configurar:

  • AXIS_IS_TMC(X)
  • AXIS_IS_TMC(Y)
  • AXIS_IS_TMC(Z)
  • AXIS_IS_TMC(E1)
  • AXIS_IS_TMC(E2)
#if HAS_TRINAMIC_CONFIG

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

  #if AXIS_IS_TMC(X)
    #define X_CURRENT       600        // (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     16    // 0..256
    #define X_RSENSE          0.11
    #define X_CHAIN_POS      -1    // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
  #endif
...

Como podemos ver tenemos una serie de campos que continuamos a relatar:

  • X_CURRENT: Esta es la corriente del motor que queremos configurar, usualmente en impresoras como la Ender hemos estado probando que con 550-600ma son suficiente para alimentar los ejes. Aquí la clave será probar con los movimientos una vez configurada la corriente que nuestra máquina no pierde pasos, si los pierde lo que debemos revisar es si tiene el movimiento limitado (por que toca con algo) o por que le tenemos que subir la corriente (ya que la establecida inicialmente es insuficiente para que nos entrege la fuerza que requerimos).
  • X_MICROSTEPS: Precisión de los pasos que deseamos en el motor, si nos fijamos inicialmente tenemos habilitada la variable INTERPOLATE, por lo tanto esta variable de 16 se convertirá en 256 dentro del driver. No deja de ser una aproximación y ya hablaremos más detenidamente sobre este aspecto. Inicialmente 16 es un valor correcto.
  • X_RSENSE: Valor de la resistencia de medición de los drivers. Esta resistencia está soldad en la PCB y tiene el valor que aquí se establece, con esta resistencia el driver es capaz de calcular que corriente entrega y que ocurre en cada momento en el motor por lo tanto NO SE DEBE CAMBIAR NUNCA A RIESGO DE QUEMAR EL DRIVER.

Una vez llegados a los ejes con más cargas, extrusor y eje Z, debemos pensar que estos necesitarán un poco más de corriente. En un eje Z con doble motor un valor aproximado de 650-700ma debería ser suficiente, así mismo en el extrusor hemos estado trabajando en la ender con 650mA con buenos resultados.

Esto es un juego de balances, a mayor corriente mayor fuerza tiene el motor. Pero pensar esto también, una persona no debe realizar su fuérza máxima para levantar una barra de pan, sino la justa ya que te fatigas, con estas cosas ocurre lo mismo, sí forzamos la corriente máxima continuamente en los motores y drivers acortaremos su vida útil. Pero no os preocupeis demasiado, salvo que se hagan cafradas no tendríamos problemas.

Éste artículo fue creado el 18/09/2020 y modificado por última vez el 11/06/2021
Ésta página (Motores) fue creada el 18/09/2020 y modificada por última vez el 11/06/2021

Uso de Cookies

Utilizamos cookies propias y de terceros para optimizar tu visita. No utilizamos cookies para recoger información de carácter personal.

Puedes permitir su uso o rechazarlo y cambiar su configuración cuando lo desees.

Cerrar

Más información en nuestra Política de Cookies.