Correctos los drivers, ya vienen preparados para UART, así que no hay que hacerles nada más que colocarlos.
Veo que en Z tienes husillos, que supongo son de 2 mm de paso, siendo los micropasos teóricos 1600 y supongo que las poleas de los motores de X e Y serán de 16 dientes y si es así, los micropasos teóricos para ellos serían 100 (para drivers a 16 micropasos), por lo que los ajustes que tenías en Marlin 1 parecen muy separados de los teóricos (más de un 16% en estos últimos): en el tutorial pongo los teóricos y ya los ajustarás en la calibración (espero no haber olvidado nada).
Instalación de Visual Studio Code (VSCode)
Descargamos de su
página oficial la versión
User instaler que corresponda al sistema operativo de nuestro ordenador.
Lo instalamos ejecutando el archivo descargado: la instalación no tiene misterio, pulsar
Siguiente las veces que lo solicite,
Instalar y
Finalizar.
Si dejamos marcada la casilla, se ejecutará directamente VSCode al pulsar
Finalizar.
Ya dentro de VSCode, si se quiere cambiar el idioma a Español, pulsamos CTRL+MAYUSCULAS+P, pulsamos en
Configure Display Language, lo seleccionamos en el desplegable y reiniciamos VSCode.
Para compilar el firmware necesitamos instalar la extensión
PlatformIO IDE, siendo también recomendable para facilitar la compilación, instalar la extensión
Auto Build Marlin.
Para ello, en el menú de iconos de la izquierda, seleccionamos el de los cuatro cuadraditos (
Extensiones) y en el cuadro de búsqueda escribimos el nombre de la extensión: cuando la encuentre, pulsamos en el botón azul
Instalar que tiene a la derecha.
PlatformIO tarda algo más en instalarse, hay que esperar que termine e indique que ha finalizado.
Una vez instaladas las dos extensiones, reiniciamos VSCode y ya lo tenemos listo para compilar.
Configurar Marlin
Descargamos Marlin de su
página oficial, la versión 2.1.x (archivo 2.1.x.zip), lo descomprimimos y nos generará una carpeta denominada
Marlin-2.1.x.
Arrancamos VSCode, seleccionamos el icono de los dos folios (
Explorador) y pulsamos en
Abrir carpeta, seleccionando la que hemos creado antes (
Marlin-2.1.x).
Se nos abrirá en el explorador, el esquema en árbol con todas las carpetas y archivos que integran Marlin: para ver los de configuración, abrimos la rama Marlin y seleccionamos el archivo
Configuration.h, apareciendo en la ventana del editor el código que lo integra.
Hacemos los siguientes cambios (como está -> como debe quedar):
#define MOTHERBOARD BOARD_RAMPS_14_EFB -> #define BOARD_MKS_GEN_L_V21
#define X_DRIVER_TYPE A4988 -> #define X_DRIVER_TYPE TMC2208
#define Y_DRIVER_TYPE A4988 -> #define Y_DRIVER_TYPE TMC2208
#define Z_DRIVER_TYPE A4988 -> #define Z_DRIVER_TYPE TMC2208
#define E0_DRIVER_TYPE A4988 -> #define E0_DRIVER_TYPE TMC2208
#define TEMP_SENSOR_BED 0 -> #define TEMP_SENSOR_BED 1
//#define COREXY -> #define COREXY
#define X_MIN_ENDSTOP_INVERTING false -> #define X_MIN_ENDSTOP_INVERTING true
#define Y_MIN_ENDSTOP_INVERTING false -> #define Y_MIN_ENDSTOP_INVERTING true
#define Z_MIN_ENDSTOP_INVERTING false -> #define Z_MIN_ENDSTOP_INVERTING true
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 500 } -> #define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 1600, 100}
#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 } -> #define DEFAULT_MAX_ACCELERATION { 1500, 1500, 100, 10000}
#define DEFAULT_ACCELERATION 3000 -> #define DEFAULT_ACCELERATION 600
#define DEFAULT_RETRACT_ACCELERATION 3000 -> #define DEFAULT_RETRACT_ACCELERATION 1000
#define DEFAULT_TRAVEL_ACCELERATION 3000 -> #define DEFAULT_TRAVEL_ACCELERATION 1000
#define JUNCTION_DEVIATION_MM 0.013 -> #define JUNCTION_DEVIATION_MM 0.067
//#define S_CURVE_ACCELERATION -> #define S_CURVE_ACCELERATION
#define XY_PROBE_FEEDRATE (133*60) -> #define XY_PROBE_FEEDRATE (50*60)
#define INVERT_X_DIR false -> #define INVERT_X_DIR true
#define INVERT_E0_DIR false -> #define INVERT_E0_DIR true
//#define EEPROM_SETTINGS -> #define EEPROM_SETTINGS
#define LCD_LANGUAGE en -> #define LCD_LANGUAGE es
Ahora seleccionamos el archivo
Configuration_adv.h y realizamos los siguientes cambios:
#define ARC_SUPPORT -> //#define ARC_SUPPORT
//#define TMC_DEBUG -> #define TMC_DEBUG
Hechos todos los cambios, seleccionamos la opción del menú
Archivo>Guardar todo.
Con eso, Marlin queda configurado y listo para compilar y grabar en la placa.
Compilar y grabar en la placa
Conectada la placa al ordenador por USB, comprobamos si la reconoce el sistema operativo del ordenador y le asigna un puerto COM: si es así, pasamos directamente a la compilación.
Con la carpeta de Marlin abierta en VSCode y una vez hechas las modificaciones en los archivos de configuración, seleccionamos a la izquierda el icono de
Marlin Auto Build y pinchamos en
Show ABM panel: nos abrirá la ventana con los entornos de compilación que admite la placa, en este caso solo
Mega2560 y dos botones a su derecha.
El botón
Build realiza la compilación del firmware nada más, indicando si ha sido exitosa o, en caso contrario, los errores encontrados.
El botón
Upload realiza lo mismo que el anterior pero, si no hay errores durante la compilación, al terminar graba en la placa el firmware compilado.
Una vez cargado Marlin en la placa, ya se puede desconectar el cable USB.
Reiniciamos la impresora y si nos indica si queremos refrescar la EEPROM, indicamos que sí; si no lo hace, seleccionamos las opciones del menú
Configuración>Rest. fábrica y después
Configuración>Guardar EEPROM.
Con esto, quedaría lista la impresora para su calibración (indico una forma de hacerlo en
este post) y lo primero que habrá que comprobar es que los ejes se muevan como deben (al ser una CoreXY, quizá no se muevan con la dirección y sentido correctos).
Si hay alguna parte en la que he dado una explicación demasiado escueta, no dudes en indicármelo y te la amplío.
P.S.: Pon los disipadores a los drivers antes de comenzar a usarlos: he dejado la regulación que trae Marlin por defecto, pero habría que ajustarla al mínimo que permita que los ejes se muevan de forma correcta.
Veo que tienes colocado un 3D Touch, pero en Marlin 1 no lo tenías activado.
Solo veo cuatro drivers conectados a la placa, por lo que tienes los dos motores de Z en uno solo: dado que tienes un zócalo libre (¿compraste 5 TMC2208?), la mejor opción sería colocar un driver en él y controlar cada motor de Z con su propio driver, lo que permite aumentar la fuerza en el eje sin necesidad de regular el driver demasiado alto. Y teniendo un sensor (el 3D Touch), podrías incluso hacer que la cama se nivele sola de los dos lados que llevan los husillos.