skr3 banner

Bigtreetech SKR 3 : re-evolución!!!

Bigtreetech ha sacado la nueva serie SKR 3 con dos versiones que incluyen muchas mejoras y novedades que seguro que van a permitir exprimir nuestras impresoras al máximo.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FGqqNdkhm9tZN1NP2GC10%2Fimage

Si necesitas más información o ayuda no dudes a unirte al grupo de Telegram de SKR @SKR_board_32bits.‌

Os recordamos que tienes mas guías de ayuda en nuestro bot de Telegram @ThreeDWorkHelpBot

Especificaciones SKR 3 y SKR 3 EZ

Tal como os hemos avanzado la nueva serie SKR v3 de Bigtreetech dispone de dos versiones de su electrónica, a continuación tenéis un video donde podéis ver en resumen sus bondades.

Características comunes en ambas versiones

  • Multiples salidas para ventiladores, tres de ellas controlables con la que podemos optimizar el uso de los mismos para que, por ejemplo, se usen como ventiladores de capa… para el hotend o para nuestra electrónica. También disponemos de selección de voltaje, con un módulo que no se incluye, que nos permite seleccionar entre 24v, 12v o 5v las salidas de ventilador controlables (afecta a todas las salidas de ventilador el voltaje seleccionado)
image 16
  • Hasta 5 drivers, los cual nos da una gran versatilidad para una electrónica de este tamaño. Poder tener un doble Z real en drivers separados, todo y que cuenta con doble salida de motor a uno de los drivers, contar con doble extrusión o incluso para tenerlo de respaldo por si falla alguno de los otros ahora no es un problema.
  • Conectividad, podemos usar conexiones USB o CAN a nuestro gusto permitiendo mayor flexibilidad. En el caso de usar CAN contamos con dos conexiones, una usando el conector USB y otro usando los 6 pines XH2.54
  • Protecciones, si ya su hermana la SKR 2 disponía de múltiples protecciones con esta SKR 3 se siguen manteniendo y mejorándolas como el caso de las entradas de termistores.
  • Modo DFU, que nos va a facilitar una forma alternativa y útil para poder actualizar nuestra SKR 3
  • Soporte PT1000, ahora no necesitaremos ningún módulo externo para poder usar este thermistor de alta capacidad
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FzXMHGjUBsUdMpcmDCkhg%2Fimage
  • DCDC 5v, la inclusión de un DCDC TPS5450-5A nos permite mantener una corriente de salida de 5A, hasta picos de 6A, perfectos para alimentar nuestra Raspberry Pi.

Es importante recordar que alimentar nuestra Raspberry Pi por GPIO no es siempre aconsejable dependiendo del modelo dado que no disponen de protecciones adecuadas para filtrado de voltaje/corriente.

Por otro lado este DCDC comparte los 5A con todos los conectores 5v de la electrónica que cubren, entre otros, con TFT, Servo, RGB, etc…

  • WiFi universal y modular, con el principal objetivo para usarse en firmwares RRF contamos con soporte WiFi universal pudiendo elegir entre diferentes controladoras como ESP12S, ESP-07 o ESP32.
  • MCU, tanto la SKR 3 como la SKR 3 EZ usan los mismos procesadores… podemos encontrar ARM Cortex-M7 CPU STM32H743VIT6 a 480MHz (que montan en sus hermanas mayores BTT Octopus y Octopus Pro) y el STM32H723GT6 a 550MHz. Estas MCUs son totalmente compatibles con Marlin, Klipper y RepRap.
image 17
ARM Cortex-M7 CPU STM32H743VIT6 a 480MHz
  • EEPROM, dispone de un chip EEPROM dedicado permitiendo mayor espacio para firmware.

Diferencias entre la SKR 3 y la SKR 3 EZ:

  • Diferentes tamaños, mientras que la SKR 3 tiene un tamaño de 110*85mm la SKR 3 EZ cuenta con unas dimensiones de 109.7*98mm.
  • Compatibilidad con motores/drivers HV (high voltage), la SKR 3 soporta motores de 12v a 24v… por otro lado la SKR 3 EZ permite, ajustando un jumper, trabajar con motores de 12v a 48v algo que puede incrementar las prestaciones de nuestra máquina en términos de velocidad de impresión.
  • Ventiladores normales no controlables, mientras que la SKR 3 dispone de dos conectores para ventiladores normales no controlables la SKR 3 EZ dispone de 3 de estos conectores.
  • Drivers EZ, los nuevos drivers EZ como más adelante detallaremos cuentan con muchas ventajas al usar un nuevo encapsulado. En el caso de la SKR 3 para poder usar drivers EZ es necesario un adaptador, por otro lado la SKR 3 EZ dispone de un zócalo exclusivo para ellos.
image 18

Pricipales ventajas sobre la SKR 2:

Si nos estamos planteando renovar nuestra eletrónica y tenemos dudas entre seleccionar la estupenda SKR 2 o alguna versión de las nuevas serie SKR 3 os listamos algunas diferencias para ayudaros a decidir la más adecuada en vuestro caso:

  • La nueva serie SKR 3 cuenta con una potentísima MCU a 480MHz mientras que normalmente las SKR 2 montan una MCU a 168MHz. Este extra de potencia es especialmente importante en el caso que usemos firmwares como Marlin o Reprap.
  • En el caso que quieras mejorar tu máquina con drivers/motores HV (hasta 48v) solamente la SKR 3 EZ te va a dar un soporte nativo para ellos.
  • Para trabajar con filamentos técnicos suele ser lo más común el uso de termistores PT1000, en este caso la serie SKR 3 dispone de soporte para ellos sin electrónica adicional.
  • Si eres de los que usas o tienes pensado usar CAN la serie SKR 3 tiene más opciones de soporte nativo.
image 19

Drivers EZ

Junto con la nueva serie SKR 3 Bigtreetech ha presentado una nueva gama de drivers EZ que se caracterizan por un nuevo formato totalmente revolucionario y que, según Bigtreetech, va a permitir múltiples mejoras en el manejo y uso de estos componentes.

Bigtreetech ha lanzado siete versiones de sus drivers en formato EZ para cubrir una amplia gama de máquinas: EZ5160 Pro, EZ2208, EZ2209, EZ2130, EZ2225, EZ2226, y EZ6609. Todos ellos usando drivers TMClos cuales son a día de hoy un estándar en calidad y fiabilidad en impresión 3D.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FHpt0AZPGtswaGn8y6OSP%2Fimage

Además su diseño compacto, que permite el diseño de placas potentes y más compactas, lleva integrado un disipador de calor 2 en 1 que mejora la temperatura y flujo de aire de disipación mejorando el rendimiento del driver.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FZNWBZH4VVZu1oRr736NM%2Fimage

Por otro lado y gracias a su diseño no dispone de pines como los tradicionales reduciendo el riesgo de dañar los drivers durante su manipulación algo que según Bigtreetech afecta a un 40% de los usuarios.

En el caso que estemos interesados en cambiar nuestros drivers pero nuestra electrónica no disponga de zócalos compatibles con drivers EZ Bigtreetech ha pensado en todo con adaptadores que permiten usarlos.

spaces%2F MTqLw6KI5FruaRNEMZD

Donde comprar la SKR 3?

Puedes adquirir la SKR 3 o SKR 3 EZ en la página web de Bigtreetech así como en los marketplaces de Amazon y Aliexpress.

Por aquí os dejamos los enlaces directos a esos marketplaces:

SKR 3Amazon Logo PNG e1579685453346aliexpress logo
SKR 3 EZaliexpress logo

Si utilizas los links de compras, el precio del producto será el mismo que si accedes de manera habitual, pero a 3DWork le quedará una pequeña comisión. Algo que nos ayudará a soportar el proyecto y continuar generando contenido.

Conexiones

Si algo nos tiene acostumbrados Bigtreetech es a disponer de un completo arsenal de conexiones para poder sacar el máximo provecho a sus electrónicas y como no podía ser de otra forma la serie SKR 3 esta a la altura y con nota.

Diagramas y esquemas serie SKR 3

Os adjuntamos algunos esquemas/diagramas de la serie SKR 3 que nos van a ser de mucha ayuda en la instalación/configuración:

image 20
SKR 3 – Diagrama conexiones
image 22
SKR 3 – Diagrama de pines
image 21
SKR 3 – Dimensiones
image 23
SKR 3 EZ – Diagrama conexiones
image 24
SKR 3 EZ – Diagrama de pines
image 25
SKR 3 EZ – Dimensiones

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Conexiones básicas

Vamos a revisar las conexiones básicas que hemos de tener en cuenta para poner en marcha nuestra SKR 3.

Alimentación

Podemos alimentar nuestra SKR 3 de dos formas, dependiendo de que queramos hacer con ella, ya sea desde una fuente de alimentación externa que será la forma por defecto o por USB en aquellos casos que la usemos para tests básicos de electrónica o carga del firmware.

Para seleccionar una forma u otra lo haremos mediante un jumper en los pines VUSB de la electrónica… con el puesto diremos a la electrónica que su alimentación es por USB.

Os volvemos a recordar que en carga por USB determinadas funciones NO están disponibles como mover motores, comunicación con drivers inteligentes, calentadores, etc…

image 27
image 28

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

En caso de que la electrónica le llegue alimentación correcta el led D7 se encenderá (rojo), de no encenderse comprobar la correcta instalación de los cables y que los fusibles (amarillo y rojo) estén bien.

Drivers

La SKR 3 es compatible con gran variedad de drivers además que dependiendo de estos podemos usarlos en diferentes modos en caso que sean UART/SPI o inteligentes.

Modo Step/Dir (STANDALONE)

En este modo el driver se usa en modo «tonto» en el cual la electrónica/firmware no puede intercambiar información o ajustarlo dinámicamente según necesidades.

Normalmente usaremos este modo para drivers del tipo A4988, DRV8825, LV8729, etc… o aquellos que no dispongan de opciones para poder usarse en modo UART/SPI.

En este modo tenemos que configurar los jumpers MS0-MS2 de acuerdo con las especificaciones de nuestros drivers y necesidades. Es importante indicar en el firmware que vamos a usar este modo!!

spaces%2F MTqLw6KI5FruaRNEMZD

La SKR 3 EZ no cuenta con pines MS0-MS2 y esta configuración se realiza directamente en el firmware de la electrónica.

Modo UART/SPI

A día de hoy es más que aconsejable el uso de drivers en modo UART/SPI los cuales permiten obtener un mejor rendimiento del driver y la máquina además de darnos acceso a algunas ventajas como el ajuste de la corriente de los motores, sensorless u otras funciones avanzadas directamente desde el firmware.

Dependiendo de nuestro driver soportará UART o SPI, si necesitais más información sobre UART y SPI os aconsejamos leeros la guía de drivers TMC.

Los drivers compatibles con UART suelen ser los más extendidos hoy en día para máquinas de gama baja o media por su coste contenido y su gran desempeño.

Normalmente tenemos dentro de esta gama los TMC2208, TMC2209 y los TMC2225 que son identicos a los TMC2209 con otro encapsulado que mejora la refrigeración del driver.

Para indicar a nuestra electrónica que estamos usando unos drivers en modo UART tan solo tenemos que colocar el driver tal como ves en las siguientes capturas.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2F7UkNVC0PptOYSY8yPiQk%2Fimage
SKR 3 – Jumper modo UART

Normalmente el modo SPI está restringido a drivers de media/alta gama como los TMC2130, TMC5160, TMC5161, etc.

Para indicar a la electrónica que nuestros drivers usarán SPI lo haremos ajustando los jumpers siguiendo el siguiente esquema.

spaces%2F MTqLw6KI5FruaRNEMZD
SKR 3 – Jumpers modo SPI

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

En la SKR 3 EZ y usando drivers TMC normales no es posible mezclar drivers UART y SPI. Mientras que si usamos drivers EZ podremos hacerlo.

También es importante indicar que la SKR 3 EZ no dispone de jumpers para la seleccion de UART/SPI y este se realiza a través del firmware.

Modo Sensorless (solamente en UART/SPI)

Una funcionalidad muy interesante para reducir el cableado y posibles puntos de fallos hardware con sensores de final de carrera es el uso de Sensorless.

Esta funcionalidad te permitirá prescindir de los finales de carrera haciendo que el propio driver detecte el final de carrera directamente.

Para habilitar este modo tan solo tendremos que colocar un jumper en la elctrónica y configurar de forma adecuada nuestro firmware. Os aconsejamos reviséis nuestra guía sensorless para más detalle e información.

image 29
SKR 3 – Jumper DIAG/Sensorless
image 30
SKR 3 EZ – Jumper DIAG/Sensorless

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Este modo solamente se puede utilizar en caso de drivers en UART/SPI y que cuenten con compatibilidad sensorless/stallguard.

Es aconsejable usara únicamente en los ejes X e Y.

Ventiladores

Como ya os adelantamos la serie SKR 3 cuenta con 3 ventiladores controlables perfecto para usarlos en diferentes roles, como ventilador de capa o hotend o electrónica, o de repuesto en caso que alguno se estropee.

image 32
image 31

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Otra novedad interesante en esta serie SKR 3 es la posibilidad, mediante un módulo externo SKR 3-DC MODE que se ha de adquirir por separado, de poder seleccionar el voltaje de las salidas de ventiladores controlables. Algo que puede ser de gran utilidad en determinadas máquinas.

image 33

Para poder utilizar este módulo externo lo primero será colocar el jumper de selección de voltaje de ventiladores en la posición VOT, en la posición VIN usará el voltaje de nuestra fuente de alimentación. Mediante el módulo SKR 3-DC MODE podremos seleccionar entre 5v o 12v mediante un jumper.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FQBLQLRS48m1ZfrGqEg6K%2Fimage

Modos USB/CANbus

Con el auge del uso de Klipper y como siempre Bigtreetech adaptandose a las necesidades de los usuarios se ha introducido el uso de la electrónica por CANbus usando el interfaz USB.

La serie SKR 3 incluye un botón próximo a la conexión USB que permite la configuración del puerto USB para el uso como CANbus o USB normal.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FvU5XHeZBCqgeJc3bSRU0%2Fimage

Con el botón pulsado el puerto USB queda en modo CANbus y con el sin estar pulsado en modo USB normal.

Opciones de expansión

La nueva serie SKR 3 cuenta con múltiples conectores dedicados para mejorar y expandir sus funcionalidades mejorando nuestra impresora con sensores de nivelación, de filamento, módulos relé, módulos UPS, tiras leds Neopixel o RGB, etc…

A continuación os adjuntamos detalles de algunos de ellos:

Una gran mejora para nuestras impresoras que nos pueden facilitar tener una primera capa lo más perfecta posible es la instalación de un sensor de nivelación como el Bltouch por ser uno de los más versátiles. Tienes información detallada en nuestra guía de Bltouch o si prefieres unos inductivo en su propia guía.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2Fza2iHciX1nhJgmmFAGmM%2Fimage
SKR 3 – Bltouch esquema conexiones
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2F1Tf1hF0y0sS4tef5Crtl%2Fimage
SKR 3 EZ – Bltouch esquema conexiones

Las electrónicas de la serie SKR 3 cuentan con conexiones EXP para LCD tradicionales y conector TFT para el uso de pantallas host serial con lo que tenemos un amplio abanico de opciones para disponer de pantalla en nuestra impresora.

spaces%2F MTqLw6KI5FruaRNEMZD
SKR 3 – Esquema conexión pantallas Bigtreetech duales
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FALTrURcaOjUNnqjp7pA3%2Fimage
SKR 3 EZ – Esquema conexión pantallas Bigtreetech duales

Tenéis más información sobre las pantallas Bigtreetech en este enlace.

Otra gran mejora que puede salvarnos más de una impresión es la instalación de un sensor de filamentos.

Podéis encontrar más información en el siguiente enlace.

spaces%2F MTqLw6KI5FruaRNEMZD
SKR 3 – Esquema conexión sensor de filamentos
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FtylMJAnEBvDMOazQGFAv%2Fimage
SKR 3 EZ – Esquema conexión sensor de filamentos

Aunque no es una mejora directamente en el uso de la impresora si que es muy útil la inclusion de una tira led controlable ya sea como iluminación de la zona de impresión así como la gestión de eventos. Os animamos a revisar la guía de Neopixel donde encontraréis más información detallada.

spaces%2F MTqLw6KI5FruaRNEMZD
SKR 3 – Esquema conexión Neopixel
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2Fc3uFAIRLiuJIUU9yCR9N%2Fimage
SKR 3 EZ – Esquema conexión Neopixel

Nos aporta un control del encendido o apagado de nuestra máquina de forma controlada, como por ejemplo apagar esta una vez finalizada la impresión.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2Fqqfknpg4jelkJe0XnENP%2Fimage
SKR 3 – Conexión módulo Relé 1.2 Bigtreetech
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FhYY9iaNtbWhcOnQAGKVa%2Fimage
SKR 3 EZ – Conexión módulo Relé 1.2 Bigtreetech

Al igual que el módulo relé el UPS nos permite realizar un apagado de emergencia correcto sobretodo si usamos PLR (Power Loss Recovery)/restauración impresión ante fallo de corriente. Podéis encontrar más información detallada en la siguiente guía.

spaces%2F MTqLw6KI5FruaRNEMZD
SKR 3 – Esquema conexión módulo UPS Bigtreetech
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2F1l9UgB1dW1yCDQJSzooG%2Fimage
SKR 3 EZ – Esquema conexión módulo UPS Bigtreetech

Es de agradecer que Bigtreetech añada soporte para termistores PT1000 que dan un claro enfoque de la serie SKR 3 a máquinas potentes en funciones y opciones.

Estos termistores avanzados nos pueden permitir trabajar con altas temperaturas de una forma fiable.

Cuando usemos un termistor PT1000 necesitaremos conectar los jumpers marcados en las capturas siguientes, dependiendo si lo conectamos en TH0 o TH1, para que la resistencia pull-up de estos conectores varíe de 4.7K a 1K que es lo que necesitan estos PT1000.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FRTUZIRNzBmm5kQmPCAiU%2Fimage
SKR 3 – PT1000

En el caso de la SKR 3 EZ las resistencias pull-up varian de 4.7K a 2.2K.

spaces%2F MTqLw6KI5FruaRNEMZD
SKR 3 EZ – PT1000

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Firmware

Como casi todas las placas de Bigtreetech prestan especial atención a la máxima compatibilidad con los firmwares más populares, en este caso soporte para Marlin, Klipper o RRF nos aseguran poder usar esta placa en prácticamente cualquier entorno de impresión 3D.

Marlin

Os aconsejamos seguir nuestra guía para «cocinar» vuestro propio Marlin que tenemos en la sección /Marlin de nuestro bot de ayuda en Telegram @ThreeDWorkHelpBot

Podéis encontrar las fuentes del firmware oficial de Bigtreetech aquí.

platformio.ini

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FwCWBzZIqQ1PAyryfJYDD%2Fimage

En este fichero deberemos indicar el chipset que tiene nuestra placa por lo que deberemos buscar en el inicio del fichero el valor «env_default» y cambiarlo por el siguiente en el caso de que nuestra placa tenga una MCU STM32H743VIT6:

default_envs = STM32H743VI_btt
image 34
ARM Cortex-M7 CPU STM32H743VIT6 a 480MHz

Si nuestra SKR 3 cuenta con una MCU STM32H723GT6:

default_envs = STM32H723VG_btt

Marlin/configuration.h

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2F3rbuzdAUCnTRXRGhO0DV%2Fimage

Os aconsejamos añadir un comentario a cualquier linea que modifiquemos ya que después nos será mucho más sencillo encontrar nuestras modificaciones. Para ello podemos añadir:

En el caso que no tenga un comentario ya la linea
... // 3DWORK 
En el caso que ya tenga un comentario
... // 3DWORK ...

Comenzaremos definiendo nuestro MOTHERBOARD el cual al igual que hicimos el platformio.ini nos indica el tipo de chipset que lleva nuestra placa y que permite a Marlin usar una configuración de pines u otra.

En el caso que usemos una versión de Marlin 2.9.x:

#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_BTT_SKR_3 // 3DWORK SKR3
#endif

En el caso que usemos una versión de Marlin 2.1.x o superior:

#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_BTT_SKR_V3_0 // 3DWORK SKR3
#endif
#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_BTT_SKR_V3_0_EZ // 3DWORK SKR3
#endif

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Configuraremos correctamente los SERIAL y BAUDRATE para esta máquina algo clave para el correcto funcionamiento de nuestra conexión TFT, USB o WIFI.

#define SERIAL_PORT 1 // 3DWORK SKR3
...
#define BAUDRATE 115200 // 3DWORK SKR3
...
#define SERIAL_PORT_2 -1 // 3DWORK SKR3
...
#define SERIAL_PORT_3 3 // 3DWORK SKR3

Definiremos el número de extrusores y diámetro del filamento que usa nuestra impresora que básicamente indica el diámetro del mismo. Normalmente impresoras usan filamento del 1.75 y en ceuanto al número de extrusores lo más normal es de disponer de 1.

// This defines the number of extruders
// :[0, 1, 2, 3, 4, 5, 6, 7, 8]
#define EXTRUDERS 1

// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75

Termistores, en estas variables indicaremos que termistores tenemos, os aconsejamos que identifiquéis cuál es el vuestro o en su defecto uséis uno de valor 1 que suele ser el más normal.

Es importantísimo indicar el tipo de thermistor correcto para que las medidas que Marlin recibe sean las correctas para evitar problemas de extrusión y/o fallos de lecturas.

En el caso que queramos desactivar o activar la cama caliente comentaremos o activaremos el thermistor de la cama, de esta forma Marlin sabe si tiene o no cama caliente.

En nuestro ejemplo y para esta placa usaremos un hotend y una cama caliente con un sensor de temperatura estándar.

#define TEMP_SENSOR_0 1 // 3DWORK SKR3 TE0
#define TEMP_SENSOR_1 0 
#define TEMP_SENSOR_2 0 
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#define TEMP_SENSOR_5 0
#define TEMP_SENSOR_6 0
#define TEMP_SENSOR_7 0
#define TEMP_SENSOR_BED 1 // 3DWORK SKR3 TB
#define TEMP_SENSOR_PROBE 0 
#define TEMP_SENSOR_CHAMBER 0
#define TEMP_SENSOR_COOLER 0

Recordad que esta placa tiene soporte para 2 extrusores y cama caliente con lo que en caso de usarlos deberemos activar el tipo correcto en cada uno de ellos.

En el caso que usemos un termistor PT1000, que estas SKR 3 lo soportan de forma nativa, deberemos de indicar que es del tipo 1010 (PT1000+1K pull-up).

PID/MPC, otra parte muy importante es el PID/MPC del que podéis obtener más información detallada en la sección /Calibracion/Calibracion Inicial de nuestro bot de ayuda en Telegram @ThreeDWorkHelpBot o en nuestra guía de calibración.

Básicamente el PID/MPC ayuda a que Marlin controle de forma adecuada la temperatura sin tener grandes fluctuaciones.

En el caso de usar hasta versiones 2.0.9.x habilitaremos PID como sistema de control de temperatura además de las opciones de ajuste desde la pantalla de nuestra impresora si disponemos de ella:

#define PIDTEMP // 3DWORK PID
...
#define PIDTEMPBED // 3DWORK PID
...
#define PID_EDIT_MENU // 3DWORK PID
...
#define PID_AUTOTUNE_MENU // 3DWORK PID

En el caso que usemos versions 2.1.x os aconsejamos que, para el hotend, usemos el nuevo MPC ya que es más inteligente y adaptable que el tradicional PID:

//#define PIDTEMP          // See the PID Tuning Guide at https://reprap.org/wiki/PID_Tuning
#define MPCTEMP        // ** EXPERIMENTAL **
#define MPC_HEATER_POWER { 40.0f }                  // (W) Heat cartridge powers.
#define MPC_TUNING_POS { X_CENTER, Y_CENTER, 1.0f } // (mm) M306 Autotuning position, ideally bed center at first layer height.
#define MPC_EDIT_MENU                             // Add MPC editing to the "Advanced Settings" menu. (~1300 bytes of flash)
#define MPC_AUTOTUNE_MENU                         // Add MPC auto-tuning to the "Advanced Settings" menu. (~350 bytes of flash)

ENDSTOPS o finales de carrera, es importante verificar cuando realizamos un cambio de electrónica y encendemos por primera vez que la lógica de los finales de carrera es la correcta usando el comando M119 desde un terminal como Pronterface… esto es OPEN en estado normal y TRIGGERED cuando están pulsados. Podremos invertir esta lógica cambiando:

#define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe.

Por otro lado y aunque lo normal es que las máquinas realicen el home en MIN (esquina inferior izquierda) en lugar de MAX (esquina superior derecha), usando HOME_DIR para este cambio -1(MIN) 1(MAX), debemos recordar que en el caso de cambiar la lógica habilitar los finales de carrera correspondientes:

#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

Recordad que si disponéis de drivers TMC en modo UART podéis utilizar, si el driver lo soporta, el uso de SensorLess que permitirá prescindir de los finales de carrera físicos liberando de componentes y cables.

Podéis encontrar información de cómo activar SensorLess en nuestra guía para Marlin. En todo caso aquí tenéis una breve información de como habilitarlo:

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2Fj0Of7G4vdd7ytWiMSKEg%2Fimage

Es importante el ajuste de la sensibilidad para ajustarla a nuestra máquina.

Drivers, como ya hemos comentado esta placa cuenta con 5 zócalos para drivers soportando diferente tipos de drivers y sus configuraciones.

En nuestro ejemplo utilizaremos unos TMC2209 en modo UART (inteligente), con doble Z independiente y un solo extrusor:

#define X_DRIVER_TYPE  TMC2209 // 3DWORK DRIVERS
#define Y_DRIVER_TYPE  TMC2209 // 3DWORK DRIVERS
#define Z_DRIVER_TYPE  TMC2209 // 3DWORK DRIVERS
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
#define Z2_DRIVER_TYPE TMC2209 // 3DWORK DRIVERS
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2209 // 3DWORK DRIVERS

La serie SKR 3 soporta diferentes modos para los drivers tando en modo STANDALONE como en modo UART/SPI.

– Para modo UART/SPI cogeremos de la lista el modelo de nuestro driver

– Para modo STANDALONE cogeremos el modelo de nuestro driver pero acabado en _STANDALONE

spaces%2F MTqLw6KI5FruaRNEMZD

STEPS o pasos de motor, tos valores indicaremos a Marlin los pasos de motor para realizar movimientos. En este ejemplo usaremos los que una impresora Ender lleva por defecto, en todo caso de nuevo os remitimos a la sección /Calibracion/Calibracion Inicial de nuestro bot de ayuda en Telegram @ThreeDWorkHelpBot o aquí para el proceso calibrar estos pasos para nuestro extrusor y ejes de movimiento.

#define DEFAULT_AXIS_STEPS_PER_UNIT { 80.00, 80.00, 400.00, 93 } // 3DWORK pasos para Ender3 ejes X, Y, Z,Extrusor

S_CURVE_ACCELERATION, esta funcionalidad ofrece una gran mejora en la calidad de impresion ya que suaviza la aceleración o deceleracion cuando el cabezal de impresión está en movimiento.

#define S_CURVE_ACCELERATION // 3DWORK MEJORAS

Nota importante!!! es que dependiendo de nuestra versión de Marlin y si usamos Linear Advance no son compatibles. En la seccion /Calibracion/Calibracion Inicial de nuestro bot de ayuda en Telegram @ThreeDWorkHelpBot o en nuestra guía de calibración podréis encontrar más información detallada de Linear Advanced

PROBE o sensor de nivelación, ya hemos comentado hay una guía detallada de como instalar un sensor BLTouch vamos a realizar una revisión de las partes más importantes a tener en cuenta en el caso que queramos instalar un sensor de nivelación, algo muy aconsejable para asegurarnos que nuestras impresiones siempre tienen una primera capa lo más perfecta posible.

Comenzaremos por indicar donde está conectado nuestro sensor de nivelación, en este caso lo conectaremos en el conector final de carrera de Z-

#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN // 3DWORK PROBE indicamos a Marlin que nuestro sensor esta conectado en Z-STOP

Tipo de sensor BLTouch o Inductivo, existen diferentes tipos de sensores. Dependiendo del usado deberemos des-comentar uno u otro.

En el caso de un sensor Inductivo:
#define FIX_MOUNTED_PROBE // 3DWORK PROBE
En el caso de un sensor tipo BLTouch:
#define BLTOUCH // 3DWORK PROBE

Offsets del sensor, es muy importante decirle a Marlin dónde se encuentra exactamente instalado nuestro sensor de nivelación… esto lo haremos definiendo los PROBE OFFSET.

El Offset es la distancia entre la punta del nozzle y la punta del sensor de nivelación que dependiendo de dónde esté deberán ser valores positivos o negativos, puedes usar el siguiente gráfico como ejemplo de que valor poner en cada caso.

e28dfb5d468ada9c88b4a

En nuestro caso y como ejemplo nuestro sensor esta desplazado hacia la izquierda del nozzle en X 30mm y 10mm en Y ya que está esa distancia hacia el fondo de la impresora.

#define NOZZLE_TO_PROBE_OFFSET { -30, 10, 0 } // 3DWORK PROBE

PROBING_MARGIN (en versiones anteriores MIN_PROBE_EDGE), es muy normal que tengamos en nuestras impresoras un cristal como base de impresión aunque personalmente nos gustan más las láminas PEI magnéticas que aunque ser un poco mas susceptibles a marcarse con golpes tienen una excelente adherencia, no te limita el tamaño de la cama y retirar las piezas es extremadamente sencillo y rápido.

En cualquier caso ya tengamos cristal u otra superficie es aconsejable que el sensor este alejado de cualquier objeto que pueda molestarle durante el proceso de nivelación, ya sean grapas para fijar el cristal o el propio desajuste del inicio y final de cama que haga que el sensor no pueda medir.

Para esto usaremos este PROBING_MARGIN en el cual le diremos cuántos mm se tiene que alejar de los bordes de la cama.

En nuestro caso usando un BLtouch y una plataforma PEI lo dejamos por defecto.

#define PROBING_MARGIN 10 // 3DWORK PROBE

Dirección de motores, otro problema muy común a la hora de poner en marcha una impresora es que el cableado de las bobinas de nuestros motores no coincidan y se pueden dar dos casos:

  1. que estén mezclados los conectores de nuestras bobinas, es muy fácil de identificar ya que el motor no girará correctamente e irá a trompicones. Para solucionarlo es aconsejable revisar el pinout de la antigua placa y/o del motor y compararlo con el de nuestra nueva placa para asegurarnos que coinciden
  2. que el motor gire en la dirección incorrecta. En este caso de nuevo tenemos dos opciones… la primera y aconsejable es la de modificar en Marlin el giro del motor y la segunda es la de invertir el cableado de una de las bobinas del motor

En nuestro caso optamos por la primera modificando las siguientes lineas en Marlin cambiando el valor actual por el contrario… en este caso invertimos el eje Z.

#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false // 3DWORK Invertimos el giro del eje Z

Tamaño de impresión, si hemos usado un Marlin genérico es importante verificar que las dimensiones de impresión son las correctas para nuestra máquina.

Para el tamaño de cama en el ejemplo usamos una Ender 3 a su máximo tamaño, es aconsejable verificar que puedes llegar físicamente a estas medidas y ajustarlo de ser necesario:

#define X_BED_SIZE 235 // 3DWORK BED
#define Y_BED_SIZE 235 // 3DWORK BED
...
#define Z_MAX_POS 250 // 3DWORK BED

Sensor de filamentos, te aconsejamos revisar en la sección /Mejoras/Sensor de filamentos de nuestro bot de ayuda en Telegram @ThreeDWorkHelpBot o en nuestra guía podréis encontrar más información detallada acerca de como instalar y configurar un sensor de filamentos.

#define FILAMENT_RUNOUT_SENSOR // 3DWORK SENSOR FILAMENTOS

Al igual que con los finales de carrera es aconsejable revisar con un M119 el estado del sensor de filamentos el cual tiene que aparecer TRIGGERED con filamento y OPEN sin. En el caso que parezca invertido deberemos de jugar con el valor de (LOW/HIGH):

#define FIL_RUNOUT_STATE LOW // 3DWORK SENSOR FILAMENTOS

También podemos indicar la distancia de filamento que queremos desde que el sensor detecta el fallo el sensor en:

#define FILAMENT_RUNOUT_DISTANCE_MM 25 // 3DWORK SENSOR FILAMENTOS

En el caso que nuestro sensor de filamento funcione por detección de flujo de filamento (como el sensor de BigtreeTech Smart Filament Sensor) deberemos habilitar lo siguiente:

#define FILAMENT_MOTION_SENSOR // 3DWORK SENSOR FILAMENTOS

Autonivelación, tal como os comentábamos anteriormente en la sección /Nivelacion de nuestro bot @ThreeDWorkHelpBot tenéis más información detallada de como activar autonivelación UBL (la más avanzada y aconsejable para camas de cierto tamaño o con problemas) y MESH que permite tener una malla sin sensor haciendo el proceso manualmente.

En todo caso para este ejemplo habilitaremos BILINEAR.

#define AUTO_BED_LEVELING_BILINEAR // 3DWORK PROBE

Es importante decirle a Marlin que habilite la autonivelación (G29) después de un homing (G28) aunque en versiones actuales ya no es necesario pero aconsejamos habilitarlo.

#define RESTORE_LEVELING_AFTER_G28 // 3DWORK PROBE

En el caso de BILINEAR especificaremos el número de puntos a realizar por malla en la siguiente parte de Marlin (por defecto lleva 3 puntos por eje, 3×3=9 puntos de comprobación).

if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR)
// Set the number of grid points per dimension.
#define GRID_MAX_POINTS_X 3 // 3DWORK PROBE

Otra función que por seguridad debemos de habilitar es la de que realice un homing en el centro de la cama, esto nos ayuda a dos cosas… la primera a asegurar que el sensor tiene una superficie donde detectar el final de carrera y el segundo verificar visualmente que nuestros Offsets están de forma correcta ya que el sensor de nivelación tiene que quedar perfectamente posicionado en el centro de nuestra cama.

#define Z_SAFE_HOMING // 3DWORK PROBE

EEPROM, en la EEPROM Marlin guarda los valores de configuración de diferentes funciones para que estas puedan usarse por el sistema y ser cambiadas por el usuario sin necesidad de tener que modificar ficheros fuentes de Marlin, compilar y subir en cada cambio el firmware. Es muy aconsejable activarla y con nuestra SKR 3 no tendremos problemas de memoria.

#define EEPROM_SETTINGS // 3DWORK EEPROM
#define EEPROM_CHITCHAT // 3DWORK EEPROM

Nozzle Park, en el ejemplo que estamos explicando hemos añadido un sensor de filamentos. Para que este funcione deberemos activar NOZZLE_PARK_FEATURE que básicamente nos permite «aparcar» el cabezal de impresión en una zona segura para realizar este cambio de filamentos aunque si no tenemos sensor de filamentos es muy aconsejable tenerlo activo ya que nos permite mejorar las funciones de pausado.

#define NOZZLE_PARK_FEATURE // 3DWORK SENSOR FILAMENTOS

SD, si queremos que nuestro Marlin pueda leer de nuestra SD ya sea el de la placa o en una pantalla que sea compatible (ojo que las Touch no lo son) deberemos activar el soporte de SD.

#define SDSUPPORT // 3DWORK SD

Menu Homing Avanzado, no es necesario pero si muy aconsejable en el caso de realizar tests habilitar esta función que nos permite poder realizar un homing por separado de cada eje.

#define INDIVIDUAL_AXIS_HOMING_MENU // 3DWORK MEJORAS

Marlin/configuration_adv.h

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FjzEtNgrpnwcUHB9CUC1K%2Fimage

Ya hemos finalizado la primera parte y ahora tendremos que pasar a la configuración de las opciones avanzadas.

Scroll y nombres ficheros largos, es interesante activar esta función para poder mostrar el nombre completo de los ficheros a imprimir.

Al igual que el anterior y para que funcione correctamente tenemos que activar la siguiente opción.

#define LONG_FILENAME_HOST_SUPPORT // 3DWORK MEJORAS
#define SCROLL_LONG_FILENAMES // 3DWORK MEJORAS

Conexión SD, en configuration.h habilitamos el soporte para SD y en configuration_adv.h definiremos de donde Marlin intentará usar esa SD.

Disponemos de tres opciones, LCD donde usaremos la de la pantalla Marlin… ONBOARD donde usaremos la de la placa y CUSTOM_CABLE donde le indicaremos que usamos un lector externo conectado a la placa

Tal como comentamos previamente no todas las pantallas que dispongan de SD van a funcionar correctamente.

#define SDCARD_CONNECTION LCD // 3DWORK SD

Ventiladores, un gran acierto por parte de Bigtreetech es la inclusión de 3 ventiladores gestionables.

La definición del pin de cada FAN la podemos encontrar en /Marlin/src/pins/stm32h7/pins_BTT_SKR_3.h

  • FAN0, en este caso no vamos a realizar ningún cambio en su rol ya que es el ventilador de capa y este lo gestiona el propio slicer/fileteador para enfriar el filamento.
  • FAN1, en nuestro ejemplo lo vamos a asignar al hotend para que de forma dinámica solamente se active cuando el hotend este en funcionamiento evitando desgastes del ventilador y ruido innecesario:
#define E0_AUTO_FAN_PIN FAN1_PIN // 3DWORK FAN1 asignado hotend
...
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50 // 3DWORK FAN1 activacion a temperatura
#define EXTRUDER_AUTO_FAN_SPEED 255   // 255 == full speed
  • FAN2, para aprovechar este arsenal de ventiladores gestionables (podemos disponer de más reutilizando pines de otras funciones como RGB por ejemplo) para asignar FAN2 como ventilador de la electrónica dinámico para que este se active cuando los drivers estén en uso minimizando de nuevo desgaste y ruido por parte del ventilador:
#define USE_CONTROLLER_FAN // 3DWORK FAN2 habilitada ventilacion gestionada de electronica
...
#define CONTROLLER_FAN_PIN FAN2_PIN // 3DWORK FAN2 asignado a electronica
...
#define CONTROLLER_FAN_EDITABLE // 3DWORK FAN2 gestionable gcode M710
...
#define CONTROLLER_FAN_MENU  // 3DWORK FAN2 habilitar menu gestion pantalla

Babystepping, una función casi imprescindible tener es baby stepping. Babystepping nos permite ajustar la altura de Z durante una impresión para ajustar de forma manual esta altura a nuestro gusto.

En nuestro ejemplo habilitaremos que se pueda activar con un doble click en el botón/encoder, que siempre este disponible y nos muestre mejoras gráficas en el ajuste para entender la dirección del ajuste desde la pantalla.

#define BABYSTEPPING // 3DWORK MEJORAS
#define DOUBLECLICK_FOR_Z_BABYSTEPPING // 3DWORK MEJORAS
#define BABYSTEP_ALWAYS_AVAILABLE // 3DWORK MEJORAS
#define BABYSTEP_ZPROBE_GFX_OVERLAY // 3DWORK MEJORAS

Reintentos en caso de fallo en la nivelación, otra función muy útil es la de poder reintentar el proceso de homing en caso de fallo. En ocasiones nuestro sensor de nivelación puede tener un fallo puntual y mediante esta función nos permitirá volver a intentarlo un número finito de veces.

#define G29_RETRY_AND_RECOVER // 3DWORK MEJORAS
#define G29_MAX_RETRIES 4 // 3DWORK MEJORAS

En caso de usar nivelación UBL esta opción no es compatible.

Soporte ARC, una mejora sustancial en la calidad de nuestras impresiones y también cuando imprimimos a través de dispositivos serial como TFT, Octoprint, etc… Permite simplificar los comandos gcodes minimizando el numero de movimientos y haciéndolos más fluidos evitando también un gran número de retracciones.

c9fa979e6ddc3e9d6a65d

Para usarlo debemos de configurar nuestro fileteador/slicer para que aplique estos cambios o en el caso de Octoprint podemos usar un plugin. En cuanto a los cambios en en Marlin:

#define ARC_SUPPORT // 3DWORK MEJORAS

Es importante recalcar que en el caso de habilitar ARC para su uso es aconsejable, en el caso que también lo tengamos habilitado, la compatibilidad con S_CURVE. Tenéis más información en la guía de calibración.

Pausado avanzado, tal como comentamos anteriormente en este ejemplo usamos un sensor de filamentos. Para que funcione correctamente tenemos que habilitar ADVANCED_PAUSE_FEATURE que habilita el comando gcode M600 para el cambio de filamentos.

Esto puedes hacerlo con o sin sensor de nivelación y requiere NOZZLE PARK para su correcto funcionamiento.

No entraremos en la configuración detallada ya que la tienes dentro de /Mejoras/Sensor Filamentos dentro de nuestro bot o directamente en la guía.

#define ADVANCED_PAUSE_FEATURE // 3DWORK SENSOR FILAMENTOS

Configuración drivers UART/SPI, con nuestros drivers en UART/SPI tenemos que configurar correctamente los parámetros avanzados que encontraremos en la sección HAS_TRINAMIC_CONFIG

Micro-pasos, aunque podemos configurar desde 16 a 256 micro-pasos no os aconsejamos para nada usar otro valor diferente al de 16. Con esos micro-pasos la definición que podríamos alcanzar mecánicamente es prácticamente imposible de alcanzar con impresoras normales además de que los drivers TMC ya realizan ellos mismo la interpolación de estos para siempre ofrecer la máxima fiabilidad y precisión.

Hablando de fiabilidad es otro aspecto importante a la hora de los micro-pasos, los motores de pasos que llevan nuestras impresoras pierden torque (y pasos) a altas revoluciones así que aumentar esta definición de pasos aumentará exponencialmente el porcentaje de fiabilidad y por lo tanto que nuestras piezas no salgan correctamente.

En el ejemplo siguiente podremos ver cómo tenemos 16 micro-pasos para nuestro eje X.

#if AXIS_IS_TMC(X)
#define X_CURRENT 650 // (mA) RMS current
#define X_CURRENT_HOME X_CURRENT
#define X_MICROSTEPS 16 // 0..256
#define X_RSENSE 0.11
#define X_CHAIN_POS -1
#endif

Otro valor importante de los valores anteriores es el de CURRENT donde ajustaremos la corriente de nuestros motores. También puedes ajustarlos desde el LCD desde Configuración/Avanzado/TMC junto con otras opciones que explicaremos a continuación.

STEALTHCHOP, es importante habilitarlo si queremos que nuestros motores sean «silenciosos» ya que si no estarán funcionando en modo SpreadCycle que es el modo potencia.

#define STEALTHCHOP_XY // 3DWORK DRIVERS
#define STEALTHCHOP_Z // 3DWORK DRIVERS
#define STEALTHCHOP_E // 3DWORK DRIVERS

Aunque es raro algunos extrusores pueden trabajar mejor con el modo StealthChop deshabilitado. Si es nuestro caso comentaremos la siguiente linea.

//#define STEALTHCHOP_E // 3DWORK DRIVERS

CHOPPER TIMMING, es usado por StealthChop para la sincronización de señales a los motores. Este tiene que coincidir con el voltaje usado en nuestra impresora, en el caso de Ender 3 y normalmente en todas las impresoras a 24v.

#define CHOPPER_TIMING CHOPPER_DEFAULT_24V // 3DWORK DRIVERS

Monitor Status, esta función nos permite que Marlin pueda controlar en detalle todos los parámetros de los drives para poder ajustar por ejemplo la temperatura de los mismos para evitar problemas más graves.

#define MONITOR_DRIVER_STATUS // 3DWORK DRIVERS

Hybrid Threshold, otra interesante función es Hybrid Threshold que nos permite que Marlin cambie entre StealthChop (silencio) o SpreadCycle (potencia) dinámicamente en base a la velocidad de movimientos.

#define HYBRID_THRESHOLD // 3DWORK DRIVERS
#define X_HYBRID_THRESHOLD 100 // [mm/s]
#define Y_HYBRID_THRESHOLD 100
#define Z_HYBRID_THRESHOLD 15

En nuestro caso usamos los valores indicados para una Ender que son 100mm/s para X Y y de 15 para Z aunque lo podemos ajustar a nuestras necesidades.

Aunque es una función interesante no os aconsejamos habilitarla o al menos a unos umbrales usados durante la impresión ya que puede introducir, el cambio entre un modo u otro, imprecisiones en los movimientos y afectar a nuestras impresiones.

TMC Debug, en este caso es un requerimiento de MONITOR_DRIVER_STATUS que deberemos de habilitar y nos permitirá tener accesible el comando M122 muy útil para obtener información avanzada del estado y configuración de nuestros drivers.

#define TMC_DEBUG // 3DWORK DRIVERS

En el caso que usemos drivers en SPI deberemos revisar la sección TMC_USE_SW_SPI en configuration_adv.h

Configuraciones módulos expansión

Como ya os explicamos anteriormente la SKR 3 cuenta con diferentes opciones de expansión con diferentes módulos. A continuación os indicamos como configurar estos:

Contar con un sensor de filamentos en nuestra máquina es interesante para no perfer algunas impresiones si no hicimos un cálculo del uso y disponibilidad de filamento.

Ya os indicamos en el apartado opciones de expansión como conectar el sensor de filamentos, ahora vamos a indicaros como configurarlo en Marlin.

image 35
#define FILAMENT_RUNOUT_SENSOR // 3DWORK SENSOR FILAMENTOS - Habilita
...
#define FIL_RUNOUT_ENABLED_DEFAULT false // 3DWORK SENSOR FILAMENTOS - Habilitado por defecto
#define NUM_RUNOUT_SENSORS   1 // 3DWORK SENSOR FILAMENTOS - Numero de sensores
#define FIL_RUNOUT_STATE     LOW // 3DWORK SENSOR FILAMENTOS - Logica del sensor M119
#define FIL_RUNOUT_PULLUP // 3DWORK SENSOR FILAMENTOS - Pine electronica pull-up 

En el caso que usemos un sensor de filamentos inteligente, con detección de astascos o rotura de filamento, como los Smart Filament Sensor de Bigtreetech:

image 36
#define FILAMENT_RUNOUT_DISTANCE_MM 3 // 3DWORK SENSOR FILAMENTOS - Sensibilidad SFS1 7mm SFS2 3mm
...
#define FILAMENT_MOTION_SENSOR // 3DWORK SENSOR FILAMENTOS - Habilitar sensor atascos

También necesitaremos tener NOZZLE_PARK aunque si seguimos la guía de configuración Marlin anterior ya la tendremos habilitada, aunque en el caso de tener sensor se aconseja modificar las coordenadas:

image 37
#define NOZZLE_PARK_FEATURE // 3DWORK MEJORAS
...
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } // 3DWORK SENSOR FILAMENTOS

Otra función necesaria será ADVANCED_PAUSE_FEATURE:

image 38
#define ADVANCED_PAUSE_FEATURE // 3DWORK MEJORAS

Disponéis de más información extre en nuestra guía específica de instalación de sensor de filamentos.

Otra mejora muy interesante es la de añadir a nuestra impresora una tira led inteligente, Neopixel, que nos permita darle un toque único además de poder notificar ciertas acciones de forma visual.

Ya os indicamos en el apartado opciones de expansión como conectar nuestra tira led a nuestra SKR 3, ahora vamos a indicaros como configurarlo en Marlin.

image 39
#define NEOPIXEL_LED // 3DWORKS NEOPIXEL - Habilitar
...
  #define NEOPIXEL_TYPE          NEO_GRBW // 3DWORKS NEOPIXEL - NEO_GRBW, NEO_RGBW, NEO_GRB, NEO_RBG, etc.
  //#define NEOPIXEL_PIN                4 // 3DWORKS NEOPIXEL - Deshabilitado ya que el pin ya se encuentra definido en el fichero pins
  #define NEOPIXEL_PIXELS              30 // 3DWORKS NEOPIXEL - Numero de leds
  #define NEOPIXEL_BRIGHTNESS         127 // 3DWORKS NEOPIXEL - Brillo (0-255)
  #define NEOPIXEL_STARTUP_TEST         // 3DWORKS NEOPIXEL - Demo de leds al arranque

En el caso que dispongamos de pantalla LCD en modo emulación Marlin puede ser interesante habilitar el menu de control:

image 40
#define LED_CONTROL_MENU

Dado que normalmente las impresiones suelen ser de varias horas suele ser interesante poder automatizar la tarea de apagado en la finalización de impresión.

Aunque hay diferentes opciones de realizar ese proceso, ya sea mediante enchufes inteligentes u otras automatizaciones, podemos usar un módulo relé para el control de apagado.

Ya os indicamos en el apartado opciones de expansión como conectar nuestro módulo relé a nuestra SKR 3, ahora vamos a indicaros como configurarlo en Marlin.

image 41
#define PSU_CONTROL // 3DWORK RELE - Habilitar
#define PSU_NAME "Power Supply" // 3DWORK RELE - Identificador
#define PSU_ACTIVE_STATE HIGH // 3DWORK RELE - Tipo 'LOW' para ATX, 'HIGH' para X-Box

El uso de módulos UPS junto con la funcionalidad PLR (Power Loss Recovery) o recuperar la impresión ante un fallo de corriente es más que aconsejable en el caso de querer aprovechar esta funcionalidad para asegurar un mayor % de opciones de poder recuperar nuestra impresión sin incidentes.

Ya os indicamos en el apartado opciones de expansión como conectar nuestro módulo UPS a nuestra SKR 3, ahora vamos a indicaros como configurarlo en Marlin.

image 42
#define POWER_LOSS_RECOVERY // 3DWORK PLR - Habilitar
#define PLR_ENABLED_DEFAULT   false // 3DWORK PLR - Modo por defecto
#define BACKUP_POWER_SUPPLY // 3DWORK PLR - Habilitar uso modulo UPS
#define POWER_LOSS_ZRAISE       10 // 3DWORK PLR - Movimiento seguridad Z
#define POWER_LOSS_STATE     HIGH // 3DWORK PLR - Logica modulo UPS

IMPORTANTE!!! el modo PLR solamente funciona con aquellas impresiones que usan la SD usada por Marlin, actualmente no soporta impresiones lanzadas desde un host externo como Octoprint o pantalla TFT externa.

En el caso que usemos PLR sin módulo UPS el uso intensivo del sistema de la SD puede reducir significativamente la vida útil de la SD y generar una carga extra de proceso en nuestra impresora/electrónica afectando al rendimiento general.

Podéis encontrar más información y detalles en nuestra guía UPS.

Como ya pudisteis leer en la descripción de las características de la serie SKR 3 disponemos de un puerto para dotar a nuestra impresora de conectividad WiFi.

Es importante explicar que esta funcionalidad está basada en el proyecto ESP3D que permitirá el control de nuestra impresora mediante WiFi para realizar algunas funciones.

Su funcionamiento tiene bastantes restricciones/limitaciones si lo comparamos con Octoprint y no aconsejaríamos el uso más que para lanzar comandos o monitorizar desde tu red local tu impresora.

Para habilitar el soporte WiFi en Marlin usando un ESP8266, aunque es compatible con otros tipos de ESP, básicamente deberemos habilitar los SERIAL correctamente… en concreto el UART3 sobre el SERIAL_PORT_3.

image 43

También desde configuration_adv.h contamos con algunas opciones de configuración:

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FRnp85fwmO4Eq0aBrGwnX%2Fimage

Descargaremos el .bin o compilaremos para nuestro ESPxxx el firmware ESP3D colocandolo en la SD con el nombre esp3d.bin y al reiniciar/encender la electrónica si todo funciona según lo esperado Marlin aplicará el firmware ESP3D a nuestro ESPxxx. Nos fijaremos que el fichero en la SD pase de esp3d.bin a esp3d.cur.

A partir de este punto deberíamos buscar un AP WiFi llamado ESP3D y usando la contraseña 12345678 podremos conectarnos al interfaz web para la configuración de la conexión y acceso a la impresora.

image 44

Tenéis más información en la Wiki del proyecto ESP3D.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Fichero pins de nuestra SKR 3

A continuación tienes los ficheros pins que contienen las referencias para esta placa:

  • /Marlin/src/pins/stm32h7/pins_BTT_SKR_3.h

Actualizar firmware Marlin

En este caso es muy sencillo y tan solo tenemos que copiar nuestro firmware.bin en la raíz de la SD formateada en FAT32, insertar la SD en la ranura del módulo y esperar unos 30seg a que finalice el proceso. Una vez finalizado el fichero firmware.bin debe quedar renombrado a firmware.CUR el cual podemos guardar a modo de copia de seguridad (recordar que un firmware compilado no se puede modificar, ese proceso solamente se puede hacer con los ficheros fuentes de vuestro firmware y vuelto a compilar).

Puesta en marcha inicial Marlin

ahora solamente queda compilar, ajustar cualquier error que nos reporte el compilado y meterlo en nuestra placa!!!

Como siempre os aconsejamos verificar inicialmente la impresora de la siguiente manera:

  • en el caso de nuestra SKR 3 revisar el jumper de alimentación ya que de tenerlo en una posición incorrecta no funcionará correctamente.
    • Usaremos la no colocaremos el jumper VUSB para un uso normal de la impresora alimentada mediante la fuente de alimentación de la impresora (12/24v)
    • Usaremos la colocaremos el jumper VUSB cuando tengamos la placa conectada solamente a nuestro ordenador desconectada de nuestra impresora
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FX565QBl3dYXT7VDoXvi8%2Fimage
  • revisar los finales de carrera siempre que sea posible usando un terminal (Pronterface por ejemplo) con el comando M119
  • en el caso que usemos nuestros drivers en UART/SPI es importante lanzar el comando M122 desde un terminal (Pronterface por ejemplo) para verificar que todo funciona correctamente. En el caso que nos repote en todos o algunos de nuestros ejes el error ALL LOW podemos revisar los siguientes puntos:
    • Estamos alimentando nuestra placa usando la fuente de alimentación de la impresora con el pin de selección de voltaje en la posición correcta.
    • Que nuestros drivers/placa estén preparados para comunicacióno UART/SPI ya que hay que colocar unos jumpers en placa y algunos drivers DIY pueden requerir de soldar un pequeño puente en ellos.
    • Que en nuestro Marlin tengamos definidos correctamente los drivers así como las direcciones de comunicación UART/SPI para nuestro modelo de placa que podemos encontrar en configuration_adv.h buscando ADDRESS.
  • revisar individualmente el homing de cada uno de los ejes de movimiento en el siguiente orden X Y Z E y en caso necesario invertir el giro del motor
  • revisar que nuestros termistores reportan correctamente la temperatura
  • revisar que nuestros calentadores de cama y de hotend funcionan correctamente
  • realizar la guía de Calibración Inicial que podéis encontrar en nuestro bot en el apartado /Calibracion

Klipper

Klipper es un firmware open-source para nuestras impresoras 3D que usa la potencia de una Raspberry Pi, normalmente aunque se puede montar en muchos más dispositivos, para el control de la electrónica de tu impresora. Haciendo esto podemos hacer funcionar de una forma más veloz y con más precisión dependiendo del sistema y hardware que tengamos.

Algo que si que nos va a permitir Klipper en cualquier caso es el poder tener un control a más bajo nivel de nuestra máquina, que también requerirá de un extra de conocimientos/esfuerzos, mayor velocidad a la hora de aplicar cualquier cambio además de un control remoto de la máquina de primera clase.

Es importante recalcar que si venimos de otros sistemas Klipper puede tener algunas restricciones en cuanto a compatibilidad con componentes o con determinadas funciones que ahora tengamos en nuestra impresora.

Por otro lado contamos con funciones muy interesantes de control de nuestra impresora como Pressure Advance (similar a Linear Advance de Marlin) y Input Shaper los cuales van a mejorar enormemente la velocidad y calidad.

Klipper básicamente consiste en tres componentes básicos sobre los cuales se pueden integrar otros para extender el sistema.

  • Klipper es el componente central y encargado de interpretar el gcode y control de tu impresora.
  • Moonraker, es una API que permite enlazar servicios externos con Klipper exponiendo estados de impresión o métodos para permitir que otros servicios hablen con Klipper.
  • UI/Interfaz, permite un control sencillo de Klipper usando Moonraker para interactuar con él.

Preparación de nuestra Raspberry Pi

Klipper es un firmware muy versátil y podemos instalarlo sobre casi cualquier host/dispositivo que pueda correr Linux.

En nuestros ejemplos vamos a usar siempre una Raspberry Pi dado que suele ser lo más extendido además de por compatibilidad y tener un gasto de corriente eléctrica comedido.

Lo primero de todo deberemos preparar nuestra Raspberry Pi montando Klipper, tenemos diferentes opciones que os pasamos a describir:

  • Usando una distribución de Klipper, es la forma más aconsejable y rápida para montar el sistema. Disponemos de diferentes opciones aconsejadas:
    • MainsailOS, una de las más usadas y muy aconsejable
    • RatOS, está enfocada a máquinas Ratrig pero si tienes conocimientos ya de Klipper puede ser muy aconsejable aún sin disponer de máquinas Ratrig ya que su configuración modular, macros y scripts son enormemente útiles.
    • FluiddOS, otra distribución interesante para montar Klipper de una forma rápida.
  • Usando Kiauh, Kiauh es un conjunto de scripts que disponen de menús para poder instalar todo el sistema Klipper y otras extensiones de una forma muy sencilla desde nuestro cliente SSH. Además incluye algunas herramientas muy útiles para el mantenimiento/gestión de nuestro Klipper.
  • Manualmente, otra opción… que no siempre sería la más aconsejable dependiendo de vuestros conocimientos… es la instalación manual de todos los componentes que necesita Klipper.

No vamos a entrar en el detalle de la instalación dado que es un proceso más o menos largo dependiendo de que opción elijamos para la instalación.

Os aconsejamos revisar nuestra guía instalación Klipper.

Compilar firmware Klipper para SKR 3

Una vez tengamos todo el sistema Klipper montado y acceso tanto a la UI como al terminal por SSH el siguiente paso será la generación del firmware Klipper para nuestra SKR 3.

Tenemos diferentes opciones para generar este firmware:

  • Usando firmware Klipper precompilados que podemos encontrar en el Github de Bigtreetech, si bien parece la forma más cómoda no os la aconsejamos ya que es muy probable que tarde o temprano tengáis que hacer el proceso manual.
    • firmware-USB.bin en el caso que usemos la conexión entre nuestro Klipper y SKR 3 mediante USB
    • firmware-USART1.bin en este otro caso usaremos la conexión USART1 para comunicar ambos componentes.

Para utilizar la conexión USART tenemos que conectar el pin UART-TX de nuestra Raspberry con el pin USART-RX1 de nuestra placa, el pin UART-RX de nuestra Raspberry con el pin USART-TX1 de nuestra placa.

  • Compilando nuestro firmware
    • Podemos seguir la documentación oficial de Klipper para instalarlo también aconsejamos usar Kiauh, Fluidd Pi o MainsaiOS disponen de imágenes que facilitan mucho el proceso de instalación de todos los componentes necesarios. Podéis revisar nuestra Guía de Klipper.
    • Siguiendo la documentación anterior iremos a la opción de Building the micro-controller usando esta configuración:
      • [*] Enable extra low-level configuration options
      • Micro-controller Architecture = STMicroelectronics STM32
      • Processor model = STM32H743
      • Bootloader offset = 128KiB bootloader (SKR SE BX v2.0)
      • Clock Reference = 25 MHz crystal
      • Si usamos USB
        • Communication interface = USB (on PA11/PA12)
      • Si usamos USART1
        • Communication interface = Serial (on USART1 PA3/PA2)

El firmware klipper.bin se generará en la carpeta home/pi/klipper/out el cual si Klipper no es capaz de copiarlo directamente en la SD de nuestra SKR 3 copiar manualmente en la SD usando WinSCP o el comando pscp en el CMD.

image 45
  • Actualizando nuestra SKR 3 a firmware Klipper bastará con renombrar el firmware creado/descargado firmware-USB.bin, firmware-USART2.bin o klipper.bin a fiwmware.bin que es el nombre por defecto que usa el bootloader de nuestra Octupus para hacer el. proceso de actualización

Configuración básica de Klipper

  • Usando como referencia documentación oficial de Klipper para instalarlo para configurar Klipper usaremos la configuración SKR 3 klipper.cfg como base para nuestro printer.cfg que incluye las definiciones correctas a nivel de pineado para nuestra SKR 3.
  • Puedes usar la documentación de configuración de Klipper para habilitar las funciones que más nos interesen.
  • Si vamos a usar USB para comunicar Klipper con SKR 3 ejecutaremos el siguiente comando desde Klipper ls /dev/serial/by-id/*, desde Kiauh disponemos desde su menú de una forma rápida y sencilla para ejecutar esta acción, para identificar el ID correcto de nuestra SKR 3 y añadirlo a nuestro printer.cfg
image 46
Ejemplo de serial-id para nuestra SKR 3 en USB
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h743xx_41003D001751303232383230-if00

Si usamos USART1 para comunicar necesitaremos modificar algunas configuraciones en nuestra Raspberry Pi directamente en la SD desde el ordenador o. de la forma más cómoda y aconsejable que es mediante SSH

  • Eliminar o comentar la linea console=serial0,115200 en /boot/cmdline.txt
  • Añadir dtoverlay=pi3-miniuart-bt al final de /boot/config.txt
  • Modificar la configuración de [mcu] en printer.cfg a serial: /dev/ttyAMA0 y habilitar restart_method: command
[mcu]
serial: /dev/ttyAMA0
restart_method: command

Configuración de UI Klipper para LCD/TFT

Para habilitar la UI de Klipper para pantallas LCD/TFT tenemos los siguientes ejemplos:

BTT TFT Emulación

Las TFT duales de BigtreeTech unas todo terreno y la mejores pantallas para nuestras impresoras cuentan con un modo emulación perfecto para usar en Klipper. Para habilitarlas configuraremos la sección [display] en printer.cfg de la siguiente forma:

[display]
lcd_type: emulated_st7920
spi_software_miso_pin: PA14 # status led, Virtual MISO
spi_software_mosi_pin: EXP1_3
spi_software_sclk_pin: EXP1_5
en_pin: EXP1_4
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2

[output_pin beeper]
pin: EXP1_1

Reprap Firmware

Tal como hemos comentado la SKR 3 soporta RepRap Firmware el cual podréis encontrar aquí.

Os aconsejamos seguir la siguiente guía para la configuración en detalle de nuestra SKR 3 en RRF.

3D enthusiasts