Saltar al contenido
GEEKnodes

Impresión 3D · Actualizado el

Configurar y compilar Marlin 2 para la SKR 1.3 de la Ender 3

Compila Marlin 2 para una Ender 3 con placa SKR 1.3 y drivers TMC2208 usando VS Code y PlatformIO: configuración, entorno LPC1768 e instalación por microSD.

Después de cambiar la placa original de mi Ender 3 por una BIGTREETECH SKR 1.3, el siguiente paso fue configurar Marlin, el firmware que controla la impresora. La placa nueva no sirve de nada sin un firmware compilado para ella: hay que decirle qué placa es, qué drivers lleva, qué pantalla y qué termistores.

Cuando escribí esta guía en 2020 usé Marlin 2.0 con el editor Atom y el complemento PlatformIO. Atom se dejó de desarrollar en 2022, así que la he actualizado al método que recomienda hoy la documentación de Marlin: Visual Studio Code con PlatformIO. Los archivos y las rutas son los mismos, así que mis capturas siguen sirviendo de referencia.

Requisitos

1. Instalar VS Code y PlatformIO

  1. Instala Visual Studio Code.
  2. Abre la vista de Extensiones e instala PlatformIO IDE.
  3. Opcionalmente, instala Auto Build Marlin: añade botones para compilar y elige el entorno de la placa por ti. Al abrir la carpeta de Marlin, VS Code suele sugerirla.

La primera vez, PlatformIO tarda unos minutos en descargar sus herramientas.

2. Descargar Marlin y la configuración de ejemplo

  1. Descarga la última versión estable de Marlin desde marlinfw.org o desde sus versiones en GitHub. En 2020 yo usé la 2.0.x; hoy la rama estable es la 2.1.x.
  2. Descarga también las configuraciones de ejemplo (MarlinFirmware/Configurations) de la misma versión que Marlin. Mezclar versiones es la causa número uno de errores al compilar.
  3. Descomprime Marlin y abre la carpeta que contiene platformio.ini en VS Code (Archivo › Abrir carpeta).

Dentro verás la carpeta Marlin/ con los dos archivos que vas a tocar: Configuration.h y Configuration_adv.h.

Estructura de carpetas de Marlin 2 con Configuration.h y platformio.ini (captura de 2020) Archivo Configuration.h de Marlin abierto en el editor (captura de 2020)

3. Configurar Marlin para Ender 3 + SKR 1.3

En los ejemplos oficiales no hay una carpeta específica para Ender 3 con SKR 1.3, así que lo más práctico es partir de config/examples/Creality/Ender-3/CrealityV1/ (la placa original), copiar sus dos archivos a Marlin/ y cambiar lo que depende de la placa. Si quieres comparar, la carpeta BigTreeTech SKR 1.4 es la más parecida.

Esquema de una impresora conectada a la SKR 1.3, con cuatro drivers TMC2208 para X, Y, Z y E.
La configuración de Marlin debe corresponder a la placa y sus drivers.

En Configuration.h:

#define MOTHERBOARD BOARD_BTT_SKR_V1_3

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

#define CR10_STOCKDISPLAY   // pantalla original de la Ender 3

Revisa también:

  • TEMP_SENSOR_0 y TEMP_SENSOR_BED: el tipo de termistor. Si cambiaste el hotend por un V6, comprueba cuál lleva.
  • La dirección de los motores (INVERT_X_DIR…): con drivers TMC suele haber que invertir alguno respecto a la placa original.
  • Si montas un BLTouch o 3DTouch, la sección de sonda (BLTOUCH, NOZZLE_TO_PROBE_OFFSET, AUTO_BED_LEVELING_BILINEAR…).

En Configuration_adv.h está la corriente de los drivers en UART: X_CURRENT, Y_CURRENT, Z_CURRENT y E0_CURRENT, en miliamperios RMS. Parte de los valores del ejemplo y ajústalos según tus motores; no copies cifras a ciegas.

En platformio.ini, el entorno de la SKR 1.3 es LPC1768:

default_envs = LPC1768

4. Compilar

Lanza la compilación desde PlatformIO › Project Tasks › LPC1768 › Build, desde el icono de la barra inferior o con el botón de Auto Build Marlin. En 2020, con Atom, era el menú PIO Build (LPC1768); el resultado es el mismo.

Compilación de Marlin para la SKR 1.3 en curso (captura de 2020)

Al terminar, en la pestaña Terminal tiene que aparecer SUCCESS.

5. Instalar el firmware

El archivo resultante está en .pio/build/LPC1768/firmware.bin.

Secuencia de instalación: compilar para LPC1768, copiar firmware.bin a microSD y actualizar la placa.
La placa renombra el archivo a FIRMWARE.CUR cuando instala el firmware.
Archivo firmware.bin en la carpeta .pio/build/LPC1768 de Marlin
  1. Copia firmware.bin a la raíz de la microSD (FAT32).
  2. Con la impresora apagada, inserta la tarjeta en la ranura de la SKR 1.3.
  3. Enciende. La placa instala el firmware en unos segundos.
  4. Si al sacar la tarjeta el archivo se llama FIRMWARE.CUR, la actualización se ha hecho bien.

Comprobar que funciona

  • Envía M115 desde un terminal (OctoPrint, Pronterface…): muestra la versión de Marlin compilada.
  • M122 muestra el estado de los TMC2208; ningún driver debe aparecer con error de comunicación.
  • M502 seguido de M500 carga los valores del nuevo firmware en la EEPROM, para que no se mezclen con los antiguos.
  • Mueve cada eje y haz un home (G28).

Problemas habituales

Error al compilar que habla de la versión de Configuration.h. Los archivos de configuración no son de la misma versión que Marlin. Descarga los ejemplos de la etiqueta correspondiente.

La placa no se actualiza. La microSD no está en FAT32, el archivo no se llama exactamente firmware.bin o has puesto la tarjeta en la ranura de la pantalla en vez de la de la placa.

La pantalla no muestra nada. Falta CR10_STOCKDISPLAY o el cable está en el conector EXP equivocado.

Los motores hacen ruido pero no se mueven o se mueven al revés. Revisa los *_DRIVER_TYPE y los INVERT_*_DIR.

PlatformIO no encuentra el entorno. Has abierto la subcarpeta Marlin/ en vez de la carpeta raíz que contiene platformio.ini.

¿Y Klipper?

Hoy muchos usuarios de Ender 3 usan Klipper en lugar de Marlin. Klipper reparte el trabajo: un ordenador (normalmente una Raspberry Pi) calcula los movimientos y la placa solo los ejecuta. Aporta funciones como input shaping y pressure advance, y la configuración se edita en un archivo de texto (printer.cfg) sin recompilar. La SKR 1.3 (microcontrolador LPC1768) es compatible y el proyecto incluye una configuración de ejemplo para ella. Si ya tienes una Raspberry Pi con OctoPrint, es una opción a valorar; si quieres algo que funcione solo con la placa, Marlin sigue siendo perfectamente válido.

Comparación: Marlin calcula y controla desde la placa; Klipper calcula en un ordenador y controla desde la placa.
Klipper reparte el cálculo entre un ordenador y la placa de la impresora.

Relacionados

Vídeo del proceso

Material utilizado

Ender 3 en AliExpress

En calidad de afiliado de Amazon, GEEKnodes obtiene ingresos por las compras adscritas que cumplen los requisitos aplicables.

Preferencias de accesibilidad

Perfiles rápidos

Texto y lectura

Tamaño del texto
Por defecto
Altura de línea
Por defecto
Espaciado entre letras
Por defecto
Espaciado entre palabras
Por defecto

Color

Movimiento y orientación

Cursor