Hola, estoy intentando hacer funcionar la combinación mencionada en el titulo y no lo consigo, no hay suficiente infirmación al tratarse de una placa madre tan reciente.
El caso es que con una compilación creada para la ender3 de marlin basada en la ultima versión on si que funcionan los tmc 2209 con la “board_mks_gen_l_v2” pero no consigo que funcione X2/yY2. He seguido las instrucciones que se mencionan en varios foros pero no funciona
Cambio lo siguiente:
#define TEMP_SENSOR_0 999
Descomento
#define TEMP_SENSOR_0 999
#define X2_DRIVE_TYPE TMC2209
#define Y2_DRIVE_TYPE TMC2209
#define X_DUAL_STEPPER_DRIVERS
#define Y_DUAL_STEPPER_DRIVERS
Y reasigno los pins de E0, E1 y creo las lineas de E2 como dicen en este foro:
"La variable EXTRUDERS no se puede dejar a 0 porque se usa en otros apartados como indice en variables indexadas (
En Configuration.h dejar EXTRUDERS a 1 y configurar el resto de parámetros excepto los ‘DUAL_STEPPER’ y compilar. Así nos aseguramos de que tenemos un Marlin ya configurado que compila correctamente.
Después de eso, en el fichero pins_RAMPS.h cambiar las líneas:
#define SERVO3_PIN 4
…
#define X_MAX_PIN 2
#define Y_MAX_PIN 15
#define Z_MAX_PIN 19
poniendo todos los pines a -1:
#define SERVO3_PIN -1
#define X_MAX_PIN -1
#define Y_MAX_PIN -1
#define Z_MAX_PIN -1
De esta manera, anulamos el SERVO 3 y los endstop de MAX de los tres ejes para liberar los pines 4,2,15 y 19 que vanos a utilizar para definir un E0 ‘falso’. Bajamos hasta el apartado donde definimos los extrusores y cambiamos los pines de E1 a E2, los de E0 a E1 y creamos el E0 con estos pines que hemos liberado:
#define E0_STEP_PIN 4
#define E0_DIR_PIN 2
#define E0_ENABLE_PIN 15
#define E0_CS_PIN 19
#define E1_STEP_PIN 26
#define E1_DIR_PIN 28
#define E1_ENABLE_PIN 24
#define E1_CS_PIN 42
#define E2_STEP_PIN 36
#define E2_DIR_PIN 34
#define E2_ENABLE_PIN 30
#define E2_CS_PIN 44
Ahora ya podemos definir en Configuration.h los DUAL_STEPPER’ para los dos ejes con lo que al compilar, nos asignará el Extrusor 0 a unos pines ‘falsos’, el doble stepper de X (X2) al E0 físico de la RAMPS (que será el E1 lógico para Marlin) y el doble stepper de Y (Y2) al E1 físico (E2 para Marlin) en la RAMPS. Esta asignación se hace en el pins.h"
Y poniendo en E0 todos al pin 70 tampoco funciona.
El error que lanza la compilacion es:
In file included from sketch\src\inc/MarlinConfig.h:32:0,
from sketch\src\MarlinCore.h:24,
from sketch\src\MarlinCore.cpp:31:
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\pins\pins.h:1274:8: error: #error “No E stepper plug left for Y2!”
#error "No E stepper plug left for Y2!"
^~~~~
In file included from c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\marlinconfig.h:32:0,
from sketch\src\HAL\AVR\eeprom.cpp:24:
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\pins\pins.h:1274:8: error: #error “No E stepper plug left for Y2!”
#error "No E stepper plug left for Y2!"
^~~~~
In file included from c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\marlinconfig.h:40:0,
from sketch\src\HAL\AVR\Servo.cpp:56:
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:1863:6: error: #error “USE_XMAX_PLUG is required when X2_USE_ENDSTOP is XMAX.”
#error "USE_XMAX_PLUG is required when X2_USE_ENDSTOP is _XMAX_."
^~~~~
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:1888:6: error: #error “USE_YMAX_PLUG is required when Y2_USE_ENDSTOP is YMAX.”
#error "USE_YMAX_PLUG is required when Y2_USE_ENDSTOP is _YMAX_."
^~~~~
In file included from sketch\src\inc/MarlinConfig.h:40:0,
from sketch\src\MarlinCore.h:24,
from sketch\src\MarlinCore.cpp:31:
sketch\src\inc/SanityCheck.h:1863:6: error: #error “USE_XMAX_PLUG is required when X2_USE_ENDSTOP is XMAX.”
#error "USE_XMAX_PLUG is required when X2_USE_ENDSTOP is _XMAX_."
^~~~~
In file included from c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\marlinconfig.h:40:0,
from sketch\src\HAL\AVR\HAL_SPI.cpp:34:
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:1863:6: error: #error “USE_XMAX_PLUG is required when X2_USE_ENDSTOP is XMAX.”
#error "USE_XMAX_PLUG is required when X2_USE_ENDSTOP is _XMAX_."
^~~~~
sketch\src\inc/SanityCheck.h:1888:6: error: #error “USE_YMAX_PLUG is required when Y2_USE_ENDSTOP is YMAX.”
#error "USE_YMAX_PLUG is required when Y2_USE_ENDSTOP is _YMAX_."
^~~~~
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:1888:6: error: #error “USE_YMAX_PLUG is required when Y2_USE_ENDSTOP is YMAX.”
#error "USE_YMAX_PLUG is required when Y2_USE_ENDSTOP is _YMAX_."
^~~~~
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:2171:4: error: #error “TMC2208 or TMC2209 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN.”
#error “TMC2208 or TMC2209 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN.”
^~~~~
sketch\src\inc/SanityCheck.h:2171:4: error: #error “TMC2208 or TMC2209 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN.”
#error “TMC2208 or TMC2209 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN.”
^~~~~
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:2171:4: error: #error “TMC2208 or TMC2209 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN.”
#error “TMC2208 or TMC2209 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN.”
^~~~~
In file included from c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\marlinconfig.h:40:0,
from sketch\src\HAL\AVR\eeprom.cpp:24:
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:1863:6: error: #error “USE_XMAX_PLUG is required when X2_USE_ENDSTOP is XMAX.”
#error "USE_XMAX_PLUG is required when X2_USE_ENDSTOP is _XMAX_."
^~~~~
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:1888:6: error: #error “USE_YMAX_PLUG is required when Y2_USE_ENDSTOP is YMAX.”
#error "USE_YMAX_PLUG is required when Y2_USE_ENDSTOP is _YMAX_."
^~~~~
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:2171:4: error: #error “TMC2208 or TMC2209 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN.”
#error “TMC2208 or TMC2209 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN.”
^~~~~
In file included from c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\marlinconfig.h:32:0,
from sketch\src\HAL\AVR\watchdog.cpp:25:
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\pins\pins.h:1274:8: error: #error “No E stepper plug left for Y2!”
#error "No E stepper plug left for Y2!"
^~~~~
In file included from c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\marlinconfig.h:40:0,
from sketch\src\HAL\AVR\watchdog.cpp:25:
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:1863:6: error: #error “USE_XMAX_PLUG is required when X2_USE_ENDSTOP is XMAX.”
#error "USE_XMAX_PLUG is required when X2_USE_ENDSTOP is _XMAX_."
^~~~~
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:1888:6: error: #error “USE_YMAX_PLUG is required when Y2_USE_ENDSTOP is YMAX.”
#error "USE_YMAX_PLUG is required when Y2_USE_ENDSTOP is _YMAX_."
^~~~~
c:\users\mache\appdata\local\temp\arduino_build_642215\sketch\src\inc\SanityCheck.h:2171:4: error: #error “TMC2208 or TMC2209 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN.”
#error “TMC2208 or TMC2209 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN.”
^~~~~
exit status 1
Error compilando para la tarjeta Arduino Mega or Mega 2560.
Por favor alguien que pueda ayudarme. Gracias