Fysetc Spider
Fysetc Spider

FYSETC Spider: Guía completa de esta «bestia» para nuestras impresoras 3D

En el artículo de hoy vamos a hablar sobre las electrónicas Fysetc Spider, las cuales han sido diseñadas teniendo en mente su uso en impresoras Voron 2.4 o similares.

De hecho, el mismo equipo que desarrolla las impresoras 3D Voron cooperó estrechamente durante el diseño y desarrollo de la misma para adaptarlas a sus máquinas de impresión 3D.

Con un tamaño relativamente compacto para una placa de 8 drivers, las electrónicas Fysetc Spider disponen de grandes funcionalidades que os explicaremos a continuación.

Como ejemplos podríamos citar el adaptador de corriente a 12V y 5A, que nos permitirá alimentar ventiladores silenciosos sin necesidad de componentes externos, o el adaptador de 5V 8A para tiras leds, alimentación directa de Raspberry Pi, etc.

 

Introducción

Antes de continuar con el artículo me gustaría recordarte como siempre que disponemos de una gran comunidad en nuestro canal de Telegram.

Allí solemos compartir todas nuestras dudas y experiencias. Si deseas formar parte de él, no tengas reparo alguno en unirte a nosotros.

También puedes encontrar mucha ayuda o recursos directamente en el grupo de Telegram de FYSETC,‌ así como otras guías de ayuda en nuestro Bot de Telegram @ThreeDWorkHelpBot

 

¿Dónde comprar Fysetc Spider?

Fysetc Spider Board

Os dejo algunos enlaces a las electrónicas mencionadas en el artículo de hoy. Es mi deber comentarte que son enlaces a tiendas online (afiliados).

Si los utilizas, el precio del producto será el mismo que si accedes de manera habitual, pero a 3DWork le quedará una pequeña comisión que ayudará a mantener este sitio web (y te estaré eternamente agradecido).

Electrónica FYSETC Spider Amazon Logo PNG e1579685453346 aliexpress logo LogoretinaHTA3D 575x200 1
Display FYSETC MINI 12864 V2.1 Amazon Logo PNG e1579685453346 aliexpress logo LogoretinaHTA3D 575x200 1

Si lo deseas y como alternativa, también puedes utilizar nuestro buscador de componentes Markets.sx, donde podrás comparar precios en diferentes sitios (Amazon, Aliexpress, Banggood, etc.) con una sola búsqueda muy fácilmente.

Markets2

 

Diagramas Fysetc Spider

En los siguientes diagramas de placa, cableado y pinout, podrás encontrar las inmensas posibilidades y potencia de esta placa electrónica.

Características principales

Fysetc Spider
Fysetc Spider

A continuación procedemos a listar algunas de las características más importantes de esta espectacular electrónica, las cuales no te dejarán indiferente 🙂

  • Tamaño extremadamente compacto 155.3×76.5mm
  • Procesador STM32F446 a 180Mhz… una auténtica bestia!!!
  • 8 drivers con soporte UART y SPI (para TMC con pines para configuración sencilla)
  • Alimentación 24V con conversores a 12V/5A, 5V/8A (Raspberry Pi, tiras leds, etc.)
  • Protección con fusibles de fácil sustitución (entrada de corriente y cama caliente)
  • Conector especial para sensor de nivelación a diferentes voltajes (24v/5v/3.3v)
  • 10 salidas PWM controladas por Mosfet (1 Heatbed, 3 HotEnd, 3 Fan, 3 Leds RGB)
  • 3 conectores para sensores de temperatura Thermistor/Termoacoplador (AD597)
  • 3 Fans (usando un extrusor y sin leds RGB), 2 tiras RGB (12/24v) y 1 NeoPixel 5v
  • Conector UART para alimentación de Raspberry Pi (sin necesidad de cables externos)
  • 2 conectores para módulos SD
  • Conector SD en la placa
  • Conector USB C y conector opcional para USB Tipo-B
  • Conectores EXP para pantallas LDC/TFT o USART, I2C, CAN
  • Sensores PT100 pueden usarse directamente (sin electrónica adicional)

 

Conexiones Fysetc Spider

Selección de fuente alimentación

Las electrónicas Fystec Spider, al igual que las electrónicas SKR de BigTreeTech, disponen de un jumper específico para seleccionar la alimentación a usar entre USB o adaptador interno 5V (requiere la fuente de alimentación conectada).

assets%2F MTqLw6KI5FruaRNEMZD%2F M 1DnjK6acIKKTDcN4E%2F M KdFXWwlOcSZeIP uQ%2FimageEste jumper ayuda a evitar desagradables problemas que pueden ocurrir al mezclar alimentaciones diferentes. En la siguiente imagen puedes ver el detalle del jumper de selección de alimentación.

En el caso de conectar la electrónica Fysetc Spider a nuestro ordenador por USB, debes colocar el jumper en posición U5V.

Si al contrario la conectas directamente a la fuente de la impresora simplemente déjalo como en la fotografía.

 

Conectores de alimentación

assets%2F MTqLw6KI5FruaRNEMZD%2F M 1DnjK6acIKKTDcN4E%2F M Ke2WnRGDNmR3 dwt1%2Fimage

Tal como hemos comentado anteriormente, esta placa electrónica dispone de un arsenal de conexiones y opciones así que la parte de alimentación no podía ser menos.

Disponemos de las siguientes conexiones de alimentación de componentes, las cuales están bien indicadas en la serigrafía (así como su polaridad):

  • HotEnd, que como ya comentamos, puede controlar hasta 3 HotEnds compeltamente independientes (E0/E1/E2 OUT)
  • BED OUT (cama caliente). Si revisamos el esquema en puntos anteriores podremos conectar directamente nuestra cama (aunque siempre por protección es aconsejable el uso de un MOSFET externo) o una cama 220v usando un relé SSR.
  • BED IN (Cama caliente), normalmente conectado a nuestra fuente de alimentación pero podríamos, en casos especiales con camas con mucho consumo, conectar ahí otra fuente dedicada para la cama exclusivamente.
  • PWR IN, no tiene mucho misterio… la alimentación proporcionada por nuestra fuente de alimentación para que toda la electrónica funcione correctamente.

 

Termistores

assets%2F MTqLw6KI5FruaRNEMZD%2F M tAnywbEnynjhE1xzi%2F M tIlGIm4Ee5Ze0TQVW%2Fimage

La orientación de los termistores normalmente no es importante ya que estos no suelen tener polaridad. En este caso para esta placa contamos con un conector para la cama caliente (TB) y tres para calentadores de hotend (TE0, TE1 y T2).

Estos pines cuentan con resistencias Pull-up de 4k7 que permiten el uso de sondas PT1000 de forma directa. Es aconsejable usar conectores JST-XH 2.54mm ya que evitan que se produzcan desconexiones y se minimizan los falsos contactos.

 

Drivers

assets%2F MTqLw6KI5FruaRNEMZD%2F M tAnywbEnynjhE1xzi%2F M tK2FVS3SFvSsOYClG%2Fimage

Como ya hemos comentado anteriormente esta placa cuenta la abrumadora cantidad de 8 zócalos para drivers, lo cual nos ofrece un abanico de posibilidades de ampliación increíbles. Y como no, cabe destacar que para el eje Z disponemos de dos salidas de motor para usar doble eje Z en nuestra máquina usando un solo driver.

Z ConnectorsEso si, en el caso que no lo usemos es importante colocar jumpers en Z1-MOT para que funcionen correctamente dado que el splitter interno es serie, como puedes ver en la imagen a continuación.
 
Aunque siempre es aconsejable configurar nuestros drivers en modos «inteligentes» SPI/UART, la electrónica Fysetc Spyder también dispone de configuraciones para usar drivers en modo standalone.
 
assets%2F MTqLw6KI5FruaRNEMZD%2F M tAnywbEnynjhE1xzi%2F M tM91cJ6 MGvfnQyLL%2Fimage
Conexión de jumpers para UART
 

assets%2F MTqLw6KI5FruaRNEMZD%2F MahNMbv73DNK0e6iGUb%2F Mb1eHEOFpVheLsXZjcy%2Fimage
Soldadura PDN dependiendo de fabricante driver

 

assets%2F MTqLw6KI5FruaRNEMZD%2F MahNMbv73DNK0e6iGUb%2F Mb1ez0l BQsplCSqKRJ%2Ftelegram cloud photo size 4 5877201890746415314

 

Para drivers Bigtreetech deberemos asegurarnos que estén en UART mediante el jumper soldado en la parte de abajo del propio driver (detalle de soldadura PDN en la imagen superior)

 

assets%2F MTqLw6KI5FruaRNEMZD%2F M tAnywbEnynjhE1xzi%2F M tMwDIfoilycDQrrSR%2Fimage
Detalle de jumpers para SPI


Para drivers que usen SPI como TMC2130/TMC5160-1 o similares. En el caso que usemos Sensorless (homing sin finales de carreras físicos), o no, no es necesario cortar el pin DIAG ya que la placa cuenta con jumpers para ser habilitada esta función.

assets%2F MTqLw6KI5FruaRNEMZD%2F M tAnywbEnynjhE1xzi%2F M tMjL1i 4kZ YB eTc%2Fimage
Selección de Sensorless
assets%2F MTqLw6KI5FruaRNEMZD%2F M tAnywbEnynjhE1xzi%2F
Dependiendo de nuestro drivers usaremos jumpers MSx para configurar nuestros micropasos.

 

Dual Z y X (Marlin)

En el caso que utilizar doble driver para los ejes X y Z es importante colocar el segundo driver en los zócalos siguientes:

assets%2F MTqLw6KI5FruaRNEMZD%2F MahNMbv73DNK0e6iGUb%2F
Ubicación predefinida en Marlin para el uso de doble Z o X.

 

Sensorless

assets%2F MTqLw6KI5FruaRNEMZD%2F M tAnywbEnynjhE1xzi%2F M tMjL1i 4kZ YB eTc%2Fimage

Si queremos utilizar esta funcionalidad de los drivers TMC la cual usa los motores como finales de carrera lo tendremos muy sencillo. Eso es porque la placa dispone de jumpers específicos para habilitar esta función. 

De todas formas os aconsejamos revisar nuestra guía Sensorless para conocer más de esta gran funcionalidad. Por último, indicar que el uso de Sensorless es aconsejable únicamente para ejes X e Y dado que su resolución y cómo funciona puede dar problemas en eje Z.

 

Endstops

En la Fysetc Spider disponemos de 6 conectores para finales de carrera de 3 pines.

assets%2F MTqLw6KI5FruaRNEMZD%2F M tNPqpPyvv5jr7t9bH%2F M tOXrJjkvzqHGR4IAi%2FimageDe nuevo Fysetc ha implementado mejoras muy interesantes en los conectores de final de carrera donde con mucha frecuencia conectamos sensores de nivelación.

Estos sensores pueden requerir de diferentes voltajes así que se han incluido unos jumpers (mediante puente de soldadura) para que podamos escoger el voltaje que entregará cada conexión, algo realmente interesante.

 

assets%2F MTqLw6KI5FruaRNEMZD%2F MahNMbv73DNK0e6iGUb%2F Mb1goRGIjANX1c3AiZ7%2Fimage
Selección de voltaje para conectores Endstop.

Podemos encontrar los siguientes bloques de conectores que pueden usar dos tipos de voltajes:

  • Conectores X+/Y+: Podremos escoger 5v o 3.3v (defecto), indicado por ejemplo para sensores BLTouch de 5v
  • Conectores X-/Y-/Z-: Podremos escoger 24v o 3.3v (defecto), especialmente indicados para conectar sensores de nivelación inductivos/capacitivos
  • Conector Z+: Preparado para la conexión de un sensor de nivelación con servo (pin PA3 PWM). Podremos escoger mediante un jumper al lado de Z- el voltaje de placa 24v o 5v en el caso que usemos un sensor estilo BLTouch.

 

Ventiladores

La electrónica Fysetc Spider cuenta con conexiones para 3 ventiladores gestionables. Además de esta gran mejora podremos, sin necesidad de ningún convertidor de corriente, configurar las salidas de los mismos a 12V o 24V, muy útil para aquellos casos donde usemos ventiladores silenciosos para nuestra electrónica o hotend.

Para ello deberemos poner el jumper correspondiente entre FAN0/1/2 Voltage y el voltaje que queramos usar. En el siguiente diagrama puedes observarlo fácilmente:

assets%2F MTqLw6KI5FruaRNEMZD%2F MbedHSBwcqh0qU6TPiP%2F MbeeATS8QqgoMvRDQVn%2Fimage
Esquema de conectores ventilación y jumpers selección de voltaje.

 

Sensores de nivelación

En la Fysetc Spider contamos con diferentes opciones para instalar un componente de gran ayuda para un ajuste perfecto de nuestras primeras capas, un sensor de nivelación.

Si te parece bien, vamos a explicar como conectar los dos tipos más utilizados actualmente en impresión 3D:

 

BTtouch/3DTouch

assets%2F MTqLw6KI5FruaRNEMZD%2F Mb5X1weQeiBlp640lf2%2F

En 3DWork opinamos que el mejor sensor de nivelación, por precisión y por funcionalidad en practicamente cualquier impresora es el BLTouch/3DTouch.

Por contra son más delicados pero aunque tenga un coste superior siempre solemos aconsejarlos por calidad general y precisión, sobre todo si adquieres el original de Antclabs.

BLTouch (original antclabs) Amazon Logo PNG e1579685453346 aliexpress logo
3DTouch Amazon Logo PNG e1579685453346 aliexpress logo

Como siempre, os aconsejamos revisar la guía de instalación en Marlin aunque en la imagen superior os hemos dejado el esquema de conexión sugerido.

Es importante colocar el jumper rojo en la posición 5V para alimentar correctamente nuestro sensor.

assets%2F MTqLw6KI5FruaRNEMZD%2F Mb5X1weQeiBlp640lf2%2F Mb6CBwgDfAo6datyc Y%2Fimage

Son otros sensores todoterreno, con una configuración similar a la de otros sensores (por ejemplo los de infrarrojos). Suelen ser más robustos y no actúan por contacto, sino detectando campos magnéticos.

Por contra suelen tener menos precisión, les afecta las condiciones ambientales (temperatura, humedad, etc.) y además no son compatibles con superficies de cristal, así que si tu cristal es muy grueso precisarás de un sensor con bastante rango de detección.

De igual modo es importante colocar el jumper rojo en la posición 5V para alimentar correctamente nuestro sensor, en otros tipos puede variar.

En este tipo de electrónica (Fysetc Spider) es importante utilizar el pin PA3 para la conexión de la señal del Endstop, ya que tiene un conversor de señal de entrada para adaptarlo a las señales 3.3v de la placa y evitará que precisemos de optoacopladores externos.

 

Conectores para LCD

Contamos con dos conectores EXP compatibles con la inmensa totalidad de pantallas de este tipo. En el siguiente esquema podremos ver el esquema de pines disponibles:

assets%2F MTqLw6KI5FruaRNEMZD%2F MbHp6FGTMyC5eH4iXvo%2F MbLH 2 wzTDCZ2qtn99%2Fimage

Ejemplo de conexiones para algunos modelos:

Una pequeña pero funcional pantalla para el modo emulación Marlin que con sus leds da mucho juego para personalizar tu impresora.

 
 

IMPORTANTE!!! El conector EXP1 de la pantalla tiene que ir al conector EXP2 de la placa, el conector EXP2 de la pantalla tiene que ir al conector EXP1 de la placa.

 
assets%2F MTqLw6KI5FruaRNEMZD%2F MbHp6FGTMyC5eH4iXvo%2F MbLHZYayONf6o62BwwB%2Fimage

Unas de las pantallas más populares por su estupendo modo dual donde podemos disfrutar del modo emulación Marlin y su modo avanzado táctil, puedes encontrar más información en nuestra guía.

 
 

IIMPORTANTE! El conector EXP1 de la pantalla tiene que ir al conector EXP2 de la placa, el conector EXP2 de la pantalla tiene que ir al conector EXP1 de la placa. Además de este cruce tiene que girarse en uno de los extremos 180º para ambos cables.

 
assets%2F MTqLw6KI5FruaRNEMZD%2F MbHp6FGTMyC5eH4iXvo%2F MbLINNTzQilQURJfjDT%2Fimage
 
 

Algunas pantallas BTT añaden un condensador y una resistencia Pull-down en el pin RESET que puede hacer que nuestra placa no inicie. Estamos en contacto con el fabricante para una posible solución que pasaría por eliminar estos componentes o cortar el cable reset de los EXP para evitar este problema.

 

Las pantallas usadas por muchas impresoras de Creality y derivadas. Estas normalmente cuentan con 3 conectores EXP (EXP1/2/3) donde uno de ellos (EXP3) es un tipo de conexión simplificado de los otros dos que normalmente solo se encuentra en placas Creality o similares.

En el caso de nuestra Fysetc deberemos usar los conectores EXP1 y EXP2 conectando directamente al correspondiente de la placa:

assets%2F MTqLw6KI5FruaRNEMZD%2F MbHp6FGTMyC5eH4iXvo%2F MbLInvFml0wjUmh0Pe9%2Fimage
Esquema conexión pantalla CR10 STOCK DISPLAY.
 
 

IMPORTANTE! El conector EXP1 de la pantalla tiene que ir al conector EXP2 de la placa, el conector EXP2 de la pantalla tiene que ir al conector EXP1 de la placa.

 

Neopixel/RGB

La Fysetc Spider cuenta con varias opciones para el uso de iluminación en nuestra impresora que siempre es útil, ya sea para iluminar la zona de impresión, mostrar eventos de la impresora o para darle un toque personalizado.

 

Neopixel/WS280x

assets%2F MTqLw6KI5FruaRNEMZD%2F Mb1oBlVN01sHI5wa1P9%2F Mb5Q3g4Z0Tk5COrVEq1%2Fimage

Las tiras de led Neopixel son una excelente elección ya que con tan solo 3 cables podemos tener hasta 50 leds con iluminación inteligente. La placa cuenta con una fuente de 5v que puede entregar un máximo de 8A (si superamos 6A deberemos añadir un cooler al conversor de corriente).

Si usamos nuestra Raspberry Pi 3A se necesitan para ella, sumamos 1A para el uso del sistema con lo que nos quedan 4A para el sistema de iluminación. Aunque 4A nos darían para unos 66 leds se aconseja no sobrepasar de 3A, unos 50 leds, para dejar al menos 1A de margen.

RGB LED Ring 5V WS2812B Amazon Logo PNG e1579685453346 aliexpress logo
WS2812b 60leds 60pixels Amazon Logo PNG e1579685453346 aliexpress logo

Los cambios a efectuar en Marlin serían los siguientes (ver imagen inferior). No obstante, os recomendamos revisar nuestra guía para Neopixel:

// configuration.h
#define NEOPIXEL_LED // 3DWORK NEOPIXEL
  #define NEOPIXEL_PIN     PD3 // 3DWORK NEOPIXEL PIN CONTROL
  #define NEOPIXEL_PIXELS      20 // 3DWORK NEOPIXEL NUMERO LEDS

// configuration_adv.h
#define LED_CONTROL_MENU // 3DWORK NEOPIXEL MENU CONTROL LEDS

 

 

RGB

También podemos conectar nuestras tiras RGB aunque en este caso además de necesitar un mayor cableado estaremos limitados en el formato de los efectos dado que estas tiras no son gestionables por led individuales al contrario que las Neopixel.

assets%2F MTqLw6KI5FruaRNEMZD%2F Mb1oBlVN01sHI5wa1P9%2F Mb5RbsLQ rXATvA hIF%2Fimage

Como viene siendo habitual Fysetc nos permite poder elegir el voltaje de trabajo, en este caso entre 24/12v así que ubicaremos un jumper seleccionando el que más nos convenga siguiendo las especificaciones de nuestra tira RGB.

Cambios en Marlin:

// configuration.h
#define RGB_LED // 3DWORK RGB

// configuration_adv.h
#define LED_CONTROL_MENU // 3DWORK RGB MENU CONTROL LEDS

// Definición de pines incluidos en Marlin/src/pins/stm32f4/pins_FYSETC_S6.h
// SOLAMENTE INCLUIDOS A MODO DE REFERENCIA NO HAY QUE TOCAR NADA
#ifndef RGB_LED_R_PIN
  #define RGB_LED_R_PIN                     PB6
#endif
#ifndef RGB_LED_G_PIN
  #define RGB_LED_G_PIN                     PB5
#endif
#ifndef RGB_LED_B_PIN
  #define RGB_LED_B_PIN                     PB7
#endif
#ifndef RGB_LED_W_PIN
  #define RGB_LED_W_PIN                     -1
#endif

 

Conexión Raspberry Pi

Nuestra Fysetc Spider cuenta con un conector dedicado para la conexión de una Raspberry Pi normalmente para controlar nuestra impresora con Octoprint o Klipper.

assets%2F MTqLw6KI5FruaRNEMZD%2F MahNMbv73DNK0e6iGUb%2F Mb1kXLqLkvR9NXGtMm7%2Fimage

Este conector permite alimentar y conectar por UART nuestra Raspberry Pi y es interesante que la alimentación mediante el conector pueda proveer hasta 8A.

Para habilitar el puerto UART en nuestra Raspberry Pi deberemos reconfigurarla mediante raspi-config desde una linea de comandos SSH por ejemplo.

sudo raspi-config
=> Interfacing Option
=> Serial
=> NO=> YES
sudo nano /boot/config.txt
=> add this line :dtoverlay=pi3-disable-bt
=> then
sudo rebootsudo 
nano /boot/cmdline.txt
=> remove the word phase "console=serial0,115200" or "console=ttyAMA0,115200"
sudo reboot

En cualquier caso podemos conectar mediante USB normal nuestra Raspberry por el puerto USB-C de la placa y además contamos con un conector JST para poder conectar internamente al USB de la Pi.

assets%2F MTqLw6KI5FruaRNEMZD%2F Mb1oBlVN01sHI5wa1P9%2F Mb1p0fbFxF E2r9K hP%2Fimage
Conector USB interno usando nuestro cable USB adaptado para este conector JST.

 

Firmware soportados

La Fysetc Spider es una placa muy versátil como ya hemos comentado a nivel de hardware y no iva a ser menos a nivel de software.

La Spider es compatible con Marlin y Klipper aunque además dispone de una edición especial con más memoria para poder usarse con RRF (Duet).

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

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 ...

Platformio.ini

assets%2F MTqLw6KI5FruaRNEMZD%2F Ma4eQPcq 6eISKsjckN%2F Ma8 NPRnFmqtQBhuh0P%2Fimage

En este fichero deberemos indicar el chipset que tiene nuestra placa por lo que debemos buscar en el inicio del fichero el valor «env_default» y cambiarlo por el siguiente:

default_envs = FYSETC_S6
 
 

Actualmente Marlin (2.0.9.x) no cuenta con una definición de entorno específica para la Fysetc Spider y dado que su base es la misma que la Fysetc S6 usaremos esta para «platformio.ini»

 

Una de las grandes funcionalidades que tiene esta placa que no suelen tener otras es que su bootloader permite su actualización usando diferentes métodos. Uno de ellos es la estándar mediante SD en la pantalla LCD o externa ya que la placa no cuenta con SD o mediante USB poniendo la placa en modo BOOT0.

Por defecto la configuración de esta placa viene preparada para esta segunda usando DFU lo que no siempre es cómodo teniendo que acceder a la placa, cambiar el pin y conectando el cable USB.

Para que el proceso no de un fallo si no lo hacemos de esa forma y nos deje el binario para su copia en la SD comentaremos las siguientes líneas en el fichero indicado:

.../ini/stm32f4.ini

#
# FYSETC S6 (STM32F446RET6 ARM Cortex-M4)
#
[env:FYSETC_S6]
platform          = ${common_stm32.platform}
extends           = common_stm32
platform_packages = tool-stm32duino
board             = marlin_fysetc_s6
build_flags       = ${common_stm32.build_flags}
  -DVECT_TAB_OFFSET=0x10000
  -DHAL_PCD_MODULE_ENABLED
extra_scripts     = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
debug_tool        = stlink
# 3DWORK upload_protocol   = dfu
# 3DWORK upload_command    = dfu-util -a 0 -s 0x08010000:leave -D "$SOURCE"

 

Configuration.h

assets%2F MTqLw6KI5FruaRNEMZD%2F Mb5TtkpI0XmjcZpo4CM%2F Mb5V00k0OWPJO3BRc8T%2Fimage

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

#define SERIAL_PORT -1 // 3DWORK SERIAL1 FYSETC SPIDER
#define SERIAL_PORT_2 1 // 3DWORK SERIAL2 FYSETC SPIDER

 

BAUDRATE nos ayuda a definir la velocidad de la comunicación por el puerto SERIAL lo normal es usar 115200 o 250000.

#define BAUDRATE 115200

 

Ahora definiremos 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.

#define MOTHERBOARD BOARD_FYSETC_SPIDER // 3DWORK FYSETC

 

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 aunque otra medida más o menos estándar es 3.

// 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 cual es el vuestro o en su defecto uséis uno de valor 1 que suele ser el mas 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 // TE0
#define TEMP_SENSOR_1 0 // TE1
#define TEMP_SENSOR_2 0 // TE2
#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 // TB
#define TEMP_SENSOR_PROBE 0 
#define TEMP_SENSOR_CHAMBER 0
#define TEMP_SENSOR_COOLER 0
 
 

Recordad que esta placa tiene soporte para hasta 5 extrusores (actualmente Marlin esta limitando estos valores a solamente 3) y cama caliente con lo que en caso de usarlos deberemos activar el tipo correcto en cada uno de ellos

 

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

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

#define PIDTEMP // 3DWORK PID
#define PIDTEMPBED // 3DWORK PID

 

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

También recordaros 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 configurar vuestra Fysetc Spider aquí y cómo activar SensorLess en nuestra guía para Marlin.

 

Drivers, como ya hemos comentado esta placa cuenta con 6 zócalos para drivers soportando diferente tipos de drivers y sus configuraciones. Podéis encontrar como realizar la instalación de los mismos en la primera parte de la guía.

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
 
 

En el caso que queramos usar doble driver para los ejes de X y Z es importante que (actualmente en versiones 2.0.8.x) deberemos de colocar el segundo driver en los zócalos siguientes:
assets%2F MTqLw6KI5FruaRNEMZD%2F MahNMbv73DNK0e6iGUb%2F

 

STEPS o Pasos de Motor Los 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 apartado /Calibración/Calibración 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 impresión ya que suaviza la aceleración o deceleración cuando el cabezal de impresión está en movimiento.

#define S_CURVE_ACCELERATION // 3DWORK MEJORAS
 
 

Nota importate! Dependiendo de nuestra versión de Marlin y si usamos Linear Advance no son compatibles. En la sección /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. Como comentamos previamente disponemos de una guía detallada para 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 descomentar 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

En el caso de usar un sensor tipo BLTouch, que usan un servo para el proceso de sondeo, es aconsejable cambiar el pin del servo para adaptarlo al esquema de conexión.

assets%2F MTqLw6KI5FruaRNEMZD%2F Mb6E0OqlaPtzjiadJtF%2F

 

Para ello modificaremos el fichero pins …/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h

//.../Marlin/src/pins/stm32f4/pins_FYSETC_S6.h 

// Servos
//
//#define SERVO0_PIN                          PA3 // 3DWORK PINDAv2
#define SERVO0_PIN                          PA2 // 3DWORK BLTOUCH

 

Offsets del sensor, es muy importante decirle a Marlin donde 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 donde 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 esté 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 cuantos 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 líneas 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

 

Autonivelación, tal como os comentábamos anteriormente en la sección /Nivelación 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 Fysetc S6 no tendremos problemas de memoria.

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

La EEPROM de nuestra Spider es de 4Kb pero hay un problema en los ficheros pins en las versiones <= 2.0.9 (estable de Marlin a la hora de realizar esta guía) que pueden generar warnings durante la compilación relacionados con funciones de EEPROM e incluso durante el uso o actualizaciones Marlin.

Para poder solventarlo temporalmente es aconsejable comentar la siguiente linea en el fichero pins de la Fysetc S6 que es usada como base para nuestra Spider:

..Marlin/src/pins/stm32f4/pins_FYSETC_S6.h

#elif ENABLED(I2C_EEPROM)
 // #define MARLIN_EEPROM_SIZE              0x0800  // 3DWORK SPIDER EEPROM ERROR FIX 2KB
#endif

 

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

 

Configuration_adv.h

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.

En nuestro caso usaremos la de la pantalla dado que la Fysetc S6 no cuenta con conector SD integrado en la placa.

#define SDCARD_CONNECTION LCD // 3DWORK SD

 

Ventiladores, un gran acierto por parte de Fysetc es la inclusión de 3 ventiladores gestionables además de poder alimentarlos con diferentes voltajes desde la propia placa sin necesidad de convertidores, en el caso de la Spider contamos con 24/12/5v disponibles.

La definición del pin de cada FAN la podemos encontrar en …/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h que es usado por Marlin como fichero pins común para la Spider y la S6 tal como explicamos aquí.

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 número 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 parametros avanzados que encontraremos en la sección HAS_TRINAMIC_CONFIG

Micropasos, aunque podemos configurar desde 16 a 256 micropasos no os aconsejamos para nada usar otro valor diferente al de 16. Con esos micropasos 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 micropasos, 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 como tenemos 16 micropasos 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 línea.

//#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

 

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

Fichero pins Fysetc Spider

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

.../Marlin/src/pins/stm32f4/pins_FYSETC_SPIDER.h
.../Marlin/src/pins/stm32f4/pins_FYSETC_S6.h

 

Actualizar firmware en Fysetc Spider

La Fysetc Spider cuenta con varias opciones para poder actualizar su firmware.

Via SD Card

La opción más sencilla es la de usar una SD para la actualización que es el método por defecto que usa el bootloader de la placa.

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 30 segundos a que finalice el proceso.

Una vez finalizado el fichero firmware.bin debe quedar renombrado a «old.bin», el cual podremos guardar a modo de copia de seguridad.

Recuerda 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).

Via modo DFU/USB

assets%2F MTqLw6KI5FruaRNEMZD%2F Ma9AzdUsQKC0Iq5nUhh%2F Ma9 GOU8Myi1LwFqruo%2Fimage

Otra forma de actualizar nuestra placa, sobretodo en el caso de no disponer de un módulo o pantalla LCD con SD, es usando el modo DFU. Para ello procederemos a descargar el STM32 Cube Programmer (Windows, Mac y Linux) y abriremos la aplicación.

assets%2F MTqLw6KI5FruaRNEMZD%2F Ma9AzdUsQKC0Iq5nUhh%2F Ma9avHpN2A1p UkDdHi%2Fimage
  • Una vez en modo DFU volveremos a la aplicación y realizaremos los siguientes pasos:
    • Pulsaremos el botón REFRESH para que detecte el puerto DFU
    • Pulsaremos el botón CONNECT
    • Seleccionaremos el firmware.bin creado
    • En START ADDRESS pondremos 0x8010000
    • Pulsaremos START PROGRAMMING

Si todo ha funcionado correctamente ya tendremos nuestro nuevo firmware en nuestra Fysetc S6.

 

LCD Fysetc MINI 12864 2.1 (Neopixel)

assets%2F MTqLw6KI5FruaRNEMZD%2F Ma3NUyJ 2bzX63grUFm%2F Ma3P6VHFOiXGUzLQprb%2Fimage

Esta pantalla es muy adecuada para usar junto con esta electrónica ya que tiene un formato muy compacto fácilmente integrable y una estética muy buena además cuenta con unos leds controlables desde Marlin que siempre dan mucho juego.

Recuerda que según el esquema del fabricante esta pantalla requiere de conectar el EXP1 de nuestra placa con el EXP2 de la pantalla y el EXP2 de nuestra placa con el EXP1 de la pantalla. Conectarlo de forma incorrecta puede dañar nuestra pantalla e incluso nuestra placa.

Configuration.h Fysetc MINI 12864
# Definición de pantalla
#define FYSETC_MINI_12864_2_1 // Type A/B. Neopixel RGB Backlight
...
# Definición Neopixel de pantalla
// Support for Adafruit Neopixel LED driver
#define NEOPIXEL_LED
#if ENABLED(NEOPIXEL_LED)
#define NEOPIXEL_TYPE NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h)
//#define NEOPIXEL_PIN 4 // LED driving pin
//#define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip
//#define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once.
//#define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255)
#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
// Use a single Neopixel LED for static (background) lighting
// #define NEOPIXEL_BKGD_LED_INDEX 0 // Index of the LED to use - Do not 
...
// Use a single Neopixel LED for static (background) lighting
#define NEOPIXEL_BKGD_LED_INDEX 0 // Index of the LED to use - Do not change this setting
#define NEOPIXEL_BKGD_COLOR { 0, 255, 0, 0 } // R, G, B, W - We have set green background color as standard
#endif

 

Configuration_adv.h Fysetc MINI 12864
 # Habilitar menus de control LED
 #define LED_CONTROL_MENU

 

Conditionals_post.h Fysetc MINI 12864

Estas modificaciones se deben realizar si tu pantalla no aparecen letras de una forma clara/definida (puedes intuir las viendo en diagonal)

#elif ENABLED(FYSETC_MINI_12864)
#define _LCD_CONTRAST_MIN 255
#define _LCD_CONTRAST_INIT 255

.../Marlin/src/inc/Conditionals_post.h

 

Klipper

Instalación firmware Klipper en nuestra Spider

Uno de los pasos de instalación de Klipper es la creación y actualización del firmware de la placa. Para nuestra Spider estas son las opciones a usar cuando realizamos el paso «menuconfig»:

  • Habilitar «extra low-level configuration setup»
  • Seleccionar «12Mhz crystal» como referencia de reloj

 

Boot address (opción 1)

Actualmente no existe la opción para poder definir en Klipper la «boot address«, así que disponemos de los siguientes firmware preconfigurados klipper.bin y klipper-UART0.bin.

La diferencia entre ambos firmwares la puedes encontrar en el siguiente enlace, en el boot address 0x8000000. Por favor sigue los pasos para subir el firmware por DFU pero indicando que el «Start address» es 0x08000000 y seleccionando klipper.bin (no firmware.bin)

 

Boot address (opción 2)

Si Klipper soporta en un futuro «boot address» para los procesadores STM32F446 podremos definir como «boot address» 0x08010000 y generar nuestro propio firmware Klipper.

En ese caso necesitaremos quemar el bootloader primero. Podemos encontrar el bootloader de nuestra Fysetc en el directorio bootloader del repositorio de github siguiendo las instrucciones indicadas en el siguiente enlace. Una vez realizados estos pasos podemos realizar el proceso normal para subir el firmware por SD.

 

Notas finales

Pues esto es todo, ahora solamente quedaría compilar el firmware, ajustar cualquier error que nos reporte el compilado y meterlo en nuestra placa. Una vez subido el firmware, sería recomendable verificar inicialmente la impresora de la siguiente manera:

  • Revisar finales de carrera (Endstops), siempre que sea posible usando un terminal (Pronterface por ejemplo) con el comando M119
  • 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 /Calibración

 

Por lo demás esperamos que este extenso artículo os sirva de ayuda para la configuración de electrónicas Fysetc Spider. Si encuentras alguna errata, o deseas hacernos algún comentario al respecto, no dudes en escribirnos una nota al final del artículo.

No dudes en visitar otros artículos interesantes de nuestro blog:

 

3D enthusiasts