BTT Octopus
BTT Octopus

BTT Octopus: Análisis y Guía de configuración con Marlin y Klipper

La conocida empresa Bigtreetech vuelve de nuevo a la carga con otra potente electrónica denominada BTT Octopus, la cual supera en prestaciones a su hermana pequeña, la SKR GTR.

De todas las electrónicas de alto rendimiento que han pasado por nuestras manos en 3DWork, como la previamente citada SKR GTR o la anterior SKR Pro, tenemos que afirmar que la BTT Octopus ha sido una de nuestras preferidas, sin duda alguna.

Y como siempre antes de continuar nuestro breve análisis, nos gustaría recordarte que disponemos de una gran comunidad en nuestro canal de Telegram. Si deseas formar parte de él, no tengas reparo alguno en unirte a nosotros.

Breve introducción

BTT Octopus
BTT Octopus

Rasgando un poco la superficie podremos descubrir que este «monstruo» dispone de 8 drivers reemplazables, 6 ventiladores PWM para utilizar con diferentes voltajes (gracias a sus DCDC integrados) y hasta un conector Ethernet con soporte CANBus, para poder ampliar aún más sus increíbles características.

Además, cabe mencionar que su compatibilidad con diferentes firmwares hacen de ella la solución perfecta para los makers más exigentes del mercado.

Sinceramente creo que cualquier usuario de una máquina «CoreXY» considerará que es la placa ideal. Sobre todo si dispones de una Voron 2.4, una BLV o una VCore3, siendo a día de hoy las mejores máquinas en este formato.

¿Donde puedo comprar la BTT Octopus?

Octopus01

Puedes adquirir la BTT Octopus en los marketplaces de Amazon y Aliexpress, como viene a ser habitual. No obstante, por aquí os dejamos los enlaces directos a los componentes que referenciamos en este artículo.

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. Algo que nos ayudará a soportar el proyecto y continuar generando contenido.

BTT OctopusAmazon Logo PNG e1579685453346aliexpress logo LogoretinaHTA3D 575x200 1
BTT GTR Amazon Logo PNG e1579685453346 aliexpress logo

Como alternativa, tambien puedes utilizar nuestro buscador de productos para impresión 3D Markets.sx, donde con una sola búsqueda se te mostrará precios de diferentes marketplaces (Amazon, Aliexpress, Banggood, etc.)

Markets2

Diagramas de la BTT Octopus

Antes de comenzar con los diferentes diagramas y esquemas es importante mencionar que existen hasta la fecha 2 versiones de la BTT Octopus, en concreto las versiones v1.0 y v1.1.

Las diferencias más notables entre ambas serían un cambio en la polaridad de la salida de los ventiladores, un problema en la v1.0 con el led del lector SD y que el regulador de la MCU y los endstops han sido sustituidos por otro modelo. En cualquier caso nada de esto casos afecta en ningún modo a su funcionamiento o a su rendimiento actual.

Como siempre tienes a tu entera disposición en el Github oficial del fabricante el manual de la BTT Octopus, del cual recomendamos su lectura por la información interesante que puedes extraer sobre esta electrónica en cuestión.

A continuación podéis encontrar los diferentes esquemas de cableado, pineado y medidas de esta placa:

SKR Octopus
BTT Octopus
SKR Octopus
SKR Octopus
Octopus04
Octopus05

Principales características

Os listamos algunas de las características más importantes de esta electrónica BTT Octopus:

  • Microcontrolador de 32 bits de ARM Cortex-M4 STM32F446ZET6 a 180MHz
  • Soporte para firmwares Klipper y Marlin
  • Interface para Raspberry Pi tanto por USB como UART por GPIO
  • Hasta 4 hotends disponibles
  • Alimentación independiente para motores, cama caliente y electrónica
  • DCDC integrados para proveer alimentación a 12V (4A), 5V (8A) y 3.3V (1A)
  • Hasta 6 ventiladores controlables y 2 sin control con posibilidad de selección del voltaje (Vin, 12V y 5V)
  • Protección ante cortos en ventiladores, algo muy importante ya que es uno de los problemas más comunes
  • Conector USB-C que permite la emulación serie para poder imprimir mediante USB
  • Compatibilidad con casi cualquier pantalla, aunque aconsejamos utilizar pantallas duales de SKR
  • MOSFETs de alto rendimiento, mejoran eficiencia y velocidad de calentado
  • Fusibles de protección reemplazables de forma muy sencilla
  • Doble salida de motor para el eje Z
  • Mejoras en el bootloader, soportando la actualización por USB (aconsejable) y DFU (usuarios avanzados)
  • EEPROM de 32K (AT24C32)
  • Conectores para leds RGB y Neopixel
  • Conector para interfaz WiFi (ESP8266)
  • PT100 interface (requiere amplificador INA826AIDR soldado a placa en zócalo)
  • Protección ante corto en termistores, otra gran mejora aplicada a los ventiladores. Permite reusar estos pines para otras tareas con un pin que hace bypass de estas protecciones
  • Soporte de BLTouch y similares con un conector destinado para ellos y usable por otros sistemas ABL. El puerto del PROBE se añadió protección extra con un optoacoplador para no necesitar usar un diodo BAT85
  • CAN BUS mediante conector 6P6C RJ11 para futuros módulos de expansión
  • SPI BUS puerto de expansión para módulos SPI como el MAX31865
  • I2C BUS puerto de expansión para módulos I2C
  • Soporte para módulos Relé y UPS

Comparativa: BTT Octopus Vs FYSETC Spider

BTT Octopus

Por poner un poco en contexto la BTT Octopus, os dejo una comparativa con otra electrónica de alto rendimiento, la FYSETC Spider, de la cual hicimos otra guía y análisis completo.

Puedes consultar el artículo en el siguiente enlace: FYSETC Spider: Guía completa de esta «bestia» para nuestras impresoras 3D.

Así puedes ver claramente de un vistazo ambas electrónicas y sus características principales:

BTT OctopusFYSETC Spider
ProcesadorCortex-M4 STM32F446 (180MHz)Cortex-M4 STM32F446 (180MHz)
Drivers8 drivers8 drivers
Hotends4 hotends + 1 heatbed3 hotends + 1 heatbed
Fans8 conectores (5V, 12V, 24V)
6 controlables + 2 normales
6 conectores (5V, 12V, 24V)
3 controlables + 3 normales
Finales de carrera8 Endstops6 Endstops
Alimentación4 conectores
(PWR IN, BED IN, BED OUT, MOTOR PWR)
3 conectores
(PWR IN, BED IN, BED OUT)
BLTouchSi, conector dedicadoSi
SensorlessSiSi
CANBusSiSi
Raspberry PiSi Si

Conexiones BTT Octopus

Octopus06

Conectores de alimentación

Octopus07

La BTT Octopus, como no podía ser menos, en una electrónica de alto rendimiento que cuenta con tres entradas de alimentación independientes: alimentación para la electrónica (conectores 3-4), alimentación independiente para motores (conectores 1-2) y alimentación para la cama caliente (conectores 5-6).

Si bien en determinadas máquinas todas irán conectadas a la misma fuente de alimentación, en máquinas que requieren configuraciones especiales podremos usar fuentes de alimentación independientes para estos componentes.

SKR Octopus
BTT Octopus

La BTT Octopus cuenta con un jumper para selección de alimentación usando el puerto USB-C. Con este pin conectado mediante jumper, la placa se alimentará por el puerto USB-C, y se podrá usar para realizar tareas de actualización de firmware o tests básicos.

Es importante no tener puesto el jumper en un uso normal conectado a la fuente de alimentación de la impresora, eso hay que tenerlo en cuenta.

Salidas alimentación para hotend y cama

Tal como adelantamos en las características principales, nuestra BTT Octopus cuenta con 4 salidas para diferentes Hotends y una salida para cama caliente (Heatbed), tal y como puedes observar en la imagen inferior.

Octopus09

Termistores

Octopus10

Al poder contar con 4 salidas de Hotend disponemos de 5 conectores para termistores, obviamente 4 para los Hotends (T0, T1, T3 y T3) y 1 para la cama caliente (TB). Os recordamos que la orientación de los cables de los termistores normalmente no es importante ya que estos no suelen tener polaridad.

Todos ellos con protección ante cortocircuitos, algo muy de agradecer ante fallos en la manipulación por nuestra parte o simplemente por un fallo de estos componentes.

Drivers

Octopus11

La BTT Octopus cuenta con 8 zócalos para drivers, haciendo de ella una electrónica ideal para máquinas exigentes como pueden ser impresoras CoreXY o similares (Voron 2.4, BLV o VCore3, por ejemplo).

Importante resaltar que el driver normalmente asignado al eje Z (MOTOR 2) dispone de 2 conectores de motor en paralelo, por si no deseamos usar doble eje Z independiente y autonivelado (otra alternativa bastante interesante).

El soporte para casi cualquier tipo de driver, y diferentes modos de los mismos, nos da una extensa gama de posibilidades a la hora de confeccionar nuestra máquina.

Octopus12

A día de hoy y bajo nuestro punto de vista, lo más aconsejable es siempre habilitar nuestros drivers en modo «inteligente» (UART/SPI) siempre que estos los soporten. No obstante, la BTT Octopus también ofrece la opción para usar estos mismos drivers en modo standalone (STEP/DIR) si lo deseas.

Lo más común es el uso de drivers TMC como los TMC2208, TMC2209 o TMC2226 los cuales se gestionan de forma inteligente usando UART.

Si desconoces este tipo de drivers, hace tiempo redactamos un estupendo artículo que puedes leer en el siguiente enlace: Drivers TMC: Descubre los mejores drivers para impresión 3D y sus tecnologías disponibles

Para configurar la placa en modo UART tan solo tendremos que usar el siguiente jumper tal como se puede ver en la siguiente fotografía:

Octopus13

Si usamos drivers SPI deberás conectar los jumpers en cada driver que usemos SPI según la siguiente imagen.

Octopus14

En caso de usar drivers que no soportan «modo inteligente» (como los UART/SPI) tendremos que usar la configuración de jumpers MSx marcados en las siguiente fotos, así como la configuración de los micropasos.

Octopus15

Os adjuntamos como referencia las configuraciones de los más comunes:

Octopus16
Octopus17
Octopus18

Varios ejes Z

Tal como hemos comentado ya esta Octopus está destinada a ser el corazón de máquinas potentes en las que el disponer doble, o incluso más, ejes Zs suele ser un requerimiento básico.

En este caso y para Marlin, el zócalo destinado para esta función por defecto es el MOTOR3, dejando para el primer extrusor el MOTOR4.

Octopus19
Ubicación del segundo driver para el eje Z por defecto en Marlin.

Sensorless

Octopus20
Por orden derecha-izquierda: X Y Z Z2 E0 E1 E2 E3.

Otra función cada vez más extendida y que simplifica considerablemente cablear nuestras máquinas es la función Sensorless, las cuales son utilizadas en diversos drivers TMC.

Esta función básicamente usa los motores como finales de carrera, detectando picos de consumo de corriente durante el proceso de Homing para simularlos.

Para habilitar esta función en un eje debemos modificar nuestro firmware. Para ello aconsejamos revisar nuestra guía Sensorless, y en lo que respecta a modificar el hardware es tan sencillo como colocar un jumper en los conectores dedicados a tal fin (ver imagen superior)

Es importante destacar que el uso de Sensorless es aconsejable únicamente para los ejes X e Y, ya que por su precisión y funcionamiento no se aconseja en ejes Z.

Ventiladores

La BTT Octopus cuenta con 6 ventiladores controlables y dos conectores para ventiladores siempre alimentados.

Octopus21

Una de las novedades, y que sinceramente nos ha enamorado de esta placa, es la de poder determinar el voltaje de estos ventiladores mediante jumpers (5V, 12V o 24V). Se acabaron definitivamente los conversores DCDC externos para silenciar nuestra impresora.

SKR Octopus
BTT Octopus

Sensores de nivelación automática

Todas y cada una de las BTT Octopus incluyen un par de conectores dedicados a sensores de nivelación. A continuación podéis ver dos ejemplos de conexión a los más comunes actualmente:

Desde 3DWork opinamos que los sensores BLTouch/3DTouch son, por precisión y por poder usarse prácticamente en cualquier impresora y superficie de impresión, nuestros preferidos sin lugar a duda.

Por otro lado suelen ser por su funcionamiento un poco más delicados y siempre es aconsejable adquirir un sensor original de Antclabs.

Os recordamos como siempre, revisar nuestra guía de configuración BLTouch para este tipo de sensores.

SKR Octopus
BTT Octopus

Otros sensores muy extendidos son los inductivos/capacitivos siendo los más «famosos» los PINDAV2/SuperPINDA por su precisión y tener un tamaño y peso perfecto para usar en nuestras impresoras.

Este tipo de sensores a diferencia de los BLTouch/3DTouch no actúan por contacto si no detectando campos magnéticos, limitando en este caso la precisión y funcionamiento en determinadas circunstancias y/o superficies de impresión.

Octopus24

En este caso Bigtreetech de nuevo ha hecho un gran trabajo añadiendo un puerto específico para este tipo de sensores al igual que en el caso del BLTouch / 3DTouch. Este nuevo puerto evita el problema habitual en este tipo de sensores que se tenía que añadir un diodo BAT85 como protección ya que se añadió internamente un optoacoplador.

Dependiendo del tipo de sensor si que es necesario el uso de una resistencia 4k7, normalmente en sensores tipo NPN. También tendremos que tener en cuenta, dependiendo del sensor, si hemos de habilitar el pull-down en nuestro firmware.

Sensor de filamentos

Octopus25

Dentro del arsenal de conectores disponibles en la Octopus encontramos además 4 conectores preparados por defecto para el uso de sensores de filamentos.

Las definiciones por defecto en Marlin de los pines para uso con sensores de filamentos son las siguientes:

#define FIL_RUNOUT_PIN                      PG12  // E0DET
#define FIL_RUNOUT2_PIN                     PG13  // E1DET
#define FIL_RUNOUT3_PIN                     PG14  // E2DET
#define FIL_RUNOUT4_PIN                     PG15  // E3DET

Puertos de expansión

Octopus26

Otra excelente mejora introducida en la BTT Octopus ha sido la inclusión de un puerto de conectividad CAN Bus usando un conector ethernet. Esta conexión CAN Bus nos permitirá ampliar nuestra placa con otras de expansión muy fácilmente, en caso de ser necesario.

A parte de este nuevo CAN Bus, tambien dispondremos de otros puertos de expansión adicionales para el uso de otros componentes, como pueden ser módulos relé, UPS, Neopixel, etc…

El módulo relé de Bigtreetech nos aporta el control del apagado de nuestra impresora de forma controlada, como por ejemplo una vez finalizada la impresión.

SKR Octopus
BTT Octopus

De igual forma que el módulo relé, el UPS nos ayuda a realizar un apagado de emergencia correcto ante un fallo de corriente, algo que junto con el PLR (Power Loss Recovery en Marlin) nos permitirá reanudar una impresión en caso de fallo de corriente.

Encontraréis más información detallada en la siguiente guía.

SKR Octopus
BTT Octopus

A todo maker 3D nos gusta que nuestras impresoras luzcan, nunca mejor dicho, bien bonitas. La instalación de una tira de led controlable, ya sea como iluminación de la zona de impresión o la notificación de eventos de la impresora, es una mejora muy interesante.

Podéis revisar nuestra guía sobre Neopixel donde encontraréis más información detallada.

SKR Octopus
BTT Octopus

Como no podía ser de otra forma, en las electrónicas BTT Octopus han pensado en una mejora muy común en nuestras impresoras. La conexión a una Raspberry Pi para la gestión de nuestras impresiones.

Disponemos de diferentes opciones de conexión. Desde la más sencilla vía cable USB-C o utilizando directamente puertos UART/SPI disponibles en la placa.

SKR Octopus
BTT Octopus
Octopus31 1
Conexión SPI

También disponemos en las BTT Octopus de un puerto Wifi para poder instalar módulos ESP12S o ESP07. Esto nos facilitará de conexión directa a nuestra placa sin problema alguno.

SKR Octopus
BTT Octopus

Configuración del firmware

Bigtreetech de nuevo ha prestado especial atención para que sus electrónicas dispongan de la mayor compatibilidad y soporte con los firmwares más populares del mercado, como pueden ser Marlin y Klipper.

En el caso de la BTT Octopus nos aseguran un soporte óptimo para firmwares Marlin, Klipper o RRF, e incluso ponen disponibles configuraciones para las impresoras Voron 2.4. Así que os dejamos por aquí un par de configuraciones básicas (Marlin/Klipper).

Firmwares Marlin

Marlin 12

Antes de continuar con la guía sobre modificación del firmware, quisiera indicar que disponéis de un firmware ya preconfigurado en el GitHub de Bigtreetech para este tipo de electrónicas. Podéis descargarlos desde este mismo enlace.

Archivo «Platformio.ini»

En este fichero indicaremos nuestro chipset/electrónica buscando al inicio del fichero el valor env_default y cambiarlo por:

default_envs = BIGTREE_OCTOPUS_V1

Archivo «Configuration.h»

Primero de todo y como siempre hacemos os aconsejamos añadir un comentario a cualquier línea de configuración que modifiquemos. Después nos será mucho más sencillo encontrar nuestras modificaciones para futuros cambios y/o consultas. Para ello podemos añadir:

En el caso que no tenga un comentario ya la línea
... // 3DWORK 
En el caso que ya tenga un comentario
... // 3DWORK ...

Comenzaremos por configurar correctamente los SERIAL y BAUDRATE, algo muy importante para el correcto funcionamiento de componentes como una pantalla TFT, WiFi o un dispositivo conectado por USB-C.

#define SERIAL_PORT 1 // 3DWORK TFT
...
#define BAUDRATE 115200
...
#define SERIAL_PORT_2 -1  // 3DWORK USB
...
#define SERIAL_PORT_3 2 // 3DWORK RPI

A continuación definiremos nuestro MOTHERBOARD, que como en el archivo platformio.ini nos indica que tipo de placa se tiene que usar a nivel de pines:

// Choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_BTT_OCTOPUS_V1_1
#endif

El siguiente paso será definir el número de extrusores y diámetro de filamento que usa nuestra impresora. Normalmente la mayoría de impresoras usan filamento de 1.75 mm, aunque otra medida menos común (pero también estándar) es 3 mm.

Recuerda que la BTT Octopus puede manejar hasta 4 extrusores dependiendo de la configuración de máquina.

// 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 el siguiente bloque de «Configuration.h» a modificar definiremos el número y tipo de termistores instalados. En el caso que no sepas cual es el tuyo exactamente te aconsejamos usar de tipo 1, que suele ser el más estándar.

Es muy importante indicar el tipo de termistor correcto para que las medidas que Marlin recibe sean las correctas evitando así problemas de extrusión y/o fallos en las lecturas.

#define TEMP_SENSOR_0 1 // 3DWORK HE1
#define TEMP_SENSOR_1 1 // 3DWORK HE2
#define TEMP_SENSOR_2 1 // 3DWORK HE3
#define TEMP_SENSOR_3 1 // 3DWORK HE4
#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 HB
#define TEMP_SENSOR_PROBE 0
#define TEMP_SENSOR_CHAMBER 0
#define TEMP_SENSOR_COOLER 0
#define TEMP_SENSOR_REDUNDANT 0

En el supuesto, y extraño, caso que queramos desactivar la cama caliente comentaremos o pondremos a 0 el valor de TEMP_SENSOR_BED.

PID, el PID nos permite ajustar los parámetros que usa Marlin para el control de la temperatura de nuestros calentadores sin tener fluctuaciones que puedan comprometer la calidad de nuestra impresión. Habilitaremos el PID de nuestros hotend o cama caliente en las siguientes líneas.

#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 nuestra impresora que la lógica de los finales de carrera es la correcta.

Puedes utilizar para ello el comando M119 desde un terminal como Pronterface (OPEN estado normal y TRIGGERED cuando están pulsados). Podremos invertir esta lógica cambiando las siguientes líneas:

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

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). Pero puedes alterar la lógica si lo precisas desde esta sección:

#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 activar, si el driver lo soporta, el uso de SensorLess. Esto te permitirá prescindir de los finales de carrera físicos liberando tu máquina de componentes y cables extra.

Drivers, como ya hemos comentado esta placa cuenta con 8 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

STEPS o pasos de motor, 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 /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

Dependiendo de nuestra versión de Marlin, Linear Advance puede no ser compatible. En la sección /Calibración/Calibración Inicial de nuestro bot de ayuda en Telegram @ThreeDWorkHelpBot o en nuestra guía de calibración podrás encontrar más información al respecto.

PROBE o sensor de nivelación, como hemos comentado en numerosas ocasiones, disponemos de una guía detallada para instalar un sensor BLTouch. Algo muy aconsejable a tener en cuenta para asegurarnos que nuestras impresiones siempre tienen una primera capa lo más perfecta posible.

Tal como hemos comentado anteriormente y dependiendo del tipo se sensor tendremos varias opciones para conectarlo ya sea en el conector para Bltouch, conector PROBE (inductivo/capacitativo) o al Z-.

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 está conectado en Z-STOP

También deberemos indicar el tipo de sensor que hemos instalado:

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 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 está 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 a nosotros personalmente nos gustan más las láminas PEI magnéticas.

Suelen ser un poco más susceptibles de marcarse con golpes pero tienen una excelente adherencia, no te limitan el tamaño de la cama y retirar las piezas es extremadamente sencillo y rápido.

En cualquier caso (tengamos cristal / vidrio 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, al cual le indicaremos cuantos milímetros 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. Fácil de identificar ya que el motor no girará correctamente e irá a trompicones. Para solucionarlo revisar pinout de la antigua placa y/o del motor y compararlo con el de nuestra nueva placa electrónica, 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 modificar en Marlin el giro del motor. Y la segunda, invertir el cableado de una de las bobinas del motor.

En nuestro caso optaremos por la primera modificando las siguientes líneas en Marlin. Cambiando el valor actual por el contrario (TRUE/FALSE). En nuestro caso, procedo a invertir 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. Este tiene que aparecer TRIGGERED con filamento y OPEN sin filamento. En el caso que parezca invertido deberás jugar con el valor (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 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 y tener muy en cuenta el punto anterior para ajustar falsos positivos:

#define FILAMENT_MOTION_SENSOR // 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 de dos maneras. La primera a asegurar que el sensor tiene una superficie donde detectar el final de carrera.

La segunda sería 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 BTT Octopus 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.

Básicamente nos permitirá «aparcar» el cabezal de impresión en una zona segura para realizar este cambio de filamentos. Aunque no dispongamos de sensor de filamentos sigue siendo muy aconsejable tenerlo activo, ya que nos permite mejorar las funciones de pausado.

#define NOZZLE_PARK_FEATURE // 3DWORK Cambio Filamentos

SD Card, si queremos que nuestro querido y estimado 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 Card.

#define SDSUPPORT // 3DWORK SD

Menú 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

Archivo «Configuration_adv.h»

Llegados a este punto, ya hemos finalizado la primera parte de la configuración. Así que pasaremos a editar las opciones avanzadas. Vamos a ello!

Scroll y nombres ficheros largos, es interesante activar esta función para poder mostrar el nombre completo de los ficheros a imprimir. 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. No todas las pantallas que dispongan de SD van a funcionar correctamente.

Podemos seleccionar 3 opciones:

  • LCD: Usaremos la SD Card de la pantalla Marlin.
  • ONBOARD: Usaremos la SD Card de la placa electrónica.
  • CUSTOM_CABLE: Le indicaremos a Marlin que utilizaremos un lector externo conectado a placa.
#define SDCARD_CONNECTION LCD // 3DWORK SD

Ventiladores, contamos con 6 ventiladores gestionables. Antes de sugerir cómo usarlos os remitimos a la definición de pins en Marlin 2.0.9.1:

.../Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_common.h
#define FAN_PIN                             PA8   // Fan0
#define FAN1_PIN                            PE5   // Fan1
#define FAN2_PIN                            PD12  // Fan2
#define FAN3_PIN                            PD13  // Fan3
#define FAN4_PIN                            PD14  // Fan4
#define FAN5_PIN                            PD15  // Fan5

Para nuestra instalación de ejemplo y para un solo extrusor realizaríamos la siguiente configuración de ventiladores.

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 esté en funcionamiento. De esta forma evitaremos desgastes y ruido innecesario:

#define E0_AUTO_FAN_PIN FAN1_PIN // 3DWORK FAN1 Asignado hotend
...
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50 // 3DWORK FAN1 Activación a temperatura
#define EXTRUDER_AUTO_FAN_SPEED 255   // 255 == Full speed

FAN2, Para aprovechar este arsenal de ventiladores gestionables asignaremos FAN2 como ventilador de la electrónica de forma dinámica. Este se activará cuando los drivers estén en uso, minimizando de nuevo desgaste y ruido por parte del ventilador, y refrigerando nuestra placa/drivers:

#define USE_CONTROLLER_FAN // 3DWORK FAN2 Habilitada ventilación gestionada de electrónica
...
#define CONTROLLER_FAN_PIN FAN2_PIN // 3DWORK FAN2 Asignado a electrónica
...
#define CONTROLLER_FAN_EDITABLE // 3DWORK FAN2 Gestionable GCode M710
...
#define CONTROLLER_FAN_MENU  // 3DWORK FAN2 Habilitar menú gestión pantalla

Babystepping, una función casi imprescindible tener es Babystepping. Esta nos permite ajustar la altura de Z durante una impresión (en tiempo real) para «afinar» de forma manual esta misma altura a nuestro gusto.

En nuestro ejemplo habilitaremos que se pueda activar con un doble click en el botón/encoder. Así siempre estará disponible y mostrará mejoras gráficas en el ajuste para entender la dirección del ajuste en 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 errores. 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 utilizar nivelación UBL esta opción no estará disponible.

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 haciendolos más fluidos evitando también un gran número de retracciones.

c9fa979e6ddc3e9d6a65d

Para usarlo debemos de configurar nuestro laminador/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 utilizar compatibilidad con S_CURVE. Tenéis más información en la guía de calibración.

Pausado avanzado, 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.

#define ADVANCED_PAUSE_FEATURE // 3DWORK Cambio 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 mismos la interpolación para siempre ofrecer máxima fiabilidad y precisión.

La 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 cómo 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 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, importante habilitarlo si queremos que nuestros motores sean «silenciosos», ya que si no estará 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 TIMING, 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 drivers para poder ajustar, por ejemplo, la temperatura de los mismos. Esto evitará posteriormente 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

Aquí usaremos los valores indicados para una Ender que son 100 mm/s para X Y y de 15 mm/s para Z. Aunque lo podemos ajustar a nuestras necesidades.

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

#define TMC_DEBUG // 3DWORK DRIVERS

Archivos «Pins» para la BTT Octopus

A continuación os dejo por aquí las rutas de los ficheros «Pins» que contienen las referencias para esta placa, y que podéis localizar dentro de los sources del firmware Marlin:

  • BTT Octopus v1: …/Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_0.h
  • BTT Octopus v1.1: …/Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_1.h
  • BTT Octopus common: …/Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_common.h

Instrucciones de flasheo en Marlin

Muy sencillo, solo tenemos que copiar nuestro archivo «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» 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).

Una interesante alternativa, solo para makers avanzados, es la posibilidad de actualizar mediante DFU el cual explicaremos más adelante.

Firmwares Klipper

Klipper es un firmware open-source para nuestras impresoras 3D que principalmente usa la potencia de una Raspberry Pi para controlar toda la electrónica, aunque se puede montar en muchos más dispositivos.

De esta forma tu impresora podrá operar con mayor velocidad y precisión, siempre dependiendo del hardware que tengamos a nuestra disposición.

Algo que sí que nos va a permitir Klipper en cualquier caso es el poder tener un control a más bajo nivel de nuestra máquina. Aunque requiere de un extra de conocimientos/esfuerzos nos aportará mayor velocidad a la hora de aplicar cualquier cambio y un control remoto de nuestra 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.

Conexión Raspberry Pi a la BTT Octopus

Como ya hemos comentado el corazón de Klipper corre en una Raspberry Pi. Ya hemos comentado diferentes formas de conectar esta a nuestra BTT Octopus, pero para nuestro ejemplo usaremos la más sencilla que es usando directamente un cable USB-C.

Octopus33
Detalle GPIO
Octopus34
Esquema por Thomas White
Octopus35
Conexión USB-C
Octopus36
Conexión USART y alimentación a través de Octopus.

Generación firmware Klipper

Octopus37

Para que Klipper pueda controlar nuestra Octopus debe contener un firmware el cual podemos obtener de diferentes formas:

  • Usando los firmwares precompilados que podemos encontrar en el Github oficial de Bigtreetech:
    • firmware-USB.bin en el caso que usemos la conexión entre nuestro Klipper y Octopus mediante USB-C
    • firmware-USART2.bin en este otro caso usaremos la conexión USART2 para comunicar ambos componentes
  • Compilando nuestro propio firmware:
    • Podemos seguir la documentación oficial de Klipper para instalarlo. También aconsejamos usar Kiauh, Fluidd Pi dispone de una imagen que facilita mucho el proceso de instalación de todos los componentes necesarios.
    • 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 = STM32F446
      • Bootloader offset = 32KiB bootloader
      • Clock Reference = 12 MHz crystal
      • Si usamos USB-C
        • Communication interface = USB (on PA11/PA12)
      • Si usamos USART2
        • Communication interface = Serial (on USART2 PD6/PD5)
    • El firmware «klipper.bin» se generará en la carpeta home/pi/klipper/out. Si Klipper no es capaz de copiarlo directamente en la SD de nuestra Octopus, podemos copiar manualmente en la SD usando WinSCP o el comando pscp en el CMD.

Y para actualizar nuestra BTT Octopus a firmware Klipper bastará con renombrar el firmware creado/descargado «firmware-USB.bin», «firmware-USART2.bin» o «klipper.bin» al típico archivo «firmware.bin», que es el nombre por defecto que usa el bootloader de las BTT Octopus para actualizarse.

Configuración básica de Klipper

Usando como referencia la documentación oficial de Klipper para instalarlo usaremos el archivo de configuración «Octopus klipper.cfg» como base para nuestro «printer.cfg» que incluye las definiciones correctas a nivel de pinouts para nuestra BTT Octopus.

Puedes usar la documentación de configuración de Klipper para habilitar las funciones que más te interesen. Si vamos a usar USB-C para comunicar Klipper con nuestra BTT Octopus ejecutaremos el siguiente comando desde Klipper

  • ls /dev/serial/by-id/*

Desde Kiauh disponemos en su menú de una forma rápida y sencilla para ejecutar esta acción, para identificar el ID correcto de nuestra electrónica y añadirlo a nuestro archivo «printer.cfg».

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_0E002B00135053424E363620-if00
Octopus38
  • Si usamos USART2 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 una terminal SSH.
    • Eliminar o comentar la línea console=serial0,115200 en /boot/cmdline.txt
    • Añadir dtoverlay=pi3-miniuart-bt al final del archivo /boot/config.txt
    • Modificar la configuración de [mcu] en printer.cfg a serial: /dev/ttyAMA0 y habilitar restart_method: command
...printer.cfg
[mcu]
serial: /dev/ttyAMA0
restart_method: command
Octopus39

Configuración de UI Klipper para LCD/TFT

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

Una de las pantallas LCD más extendidas también conocidas como RepRapDiscount Full Graphic Smart Controller. Para habilitarlas configuraremos la sección [display] en printer.cfg de la siguiente forma:

[display]
lcd_type: st7920
cs_pin: EXP1_4
sclk_pin: EXP1_5
sid_pin: EXP1_3
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
kill_pin: ^!EXP2_8

[output_pin beeper]
pin: EXP1_1

Otra de las pantallas más usadas por su tamaño, coste y funcionalidad de leds. Para habilitarlas configuraremos la sección [display] en printer.cfg de la siguiente forma:

[display]
lcd_type: uc1701
cs_pin: EXP1_3
a0_pin: EXP1_4
rst_pin: EXP1_5
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
## Some micro-controller boards may require an spi bus to be specified:
#spi_bus: spi
## Alternatively, some micro-controller boards may work with software spi:
contrast: 63
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
spi_software_sclk_pin: PA5

[output_pin beeper]
pin: EXP1_1

[neopixel btt_mini12864]
pin: EXP1_6
chain_count: 3
color_order: RGB
initial_RED: 0.4
initial_GREEN: 0.4
initial_BLUE: 0.4

Las TFT duales de Bigtreetech son todo terreno y la mejores pantallas para nuestras impresoras a nuestro parecer. 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: PA6
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

Firmwares RepRap

La versatilidad de la BTT Octopus es total, como os comentamos previamente. Tras hablar sobre las diferentes configuraciones en Marlin y Klipper le tocaría el turno de a los firmware RepRap.

No obstante, dada su complejidad, os remitimos al repositorio oficial de Bigtreetech donde podrás encontrar (y descargar) fácilmente las versiones preparadas para nuestra electrónica BTT Octopus.

Actualización mediante DFU

Nuestra Octopus nos permite su actualización mediante DFU que nos permitirá poder subir firmware o bootloader en caso que el proceso normal no funcione usando el cable USB-C.

Dado que es un proceso no recomendable para usuarios no experimentados os dejamos el enlace al documento de Bigtreetech donde explica el proceso.

Notas finales

Una vez finalizado todo el proceso, sin importar el tipo de firmware que hayas desplegado en tu impresora 3D, por favor, verifica inicialmente todos estos puntos uno por uno:

  • Revisar finales de carrera usando un terminal (Pronterface) con el comando M119
  • Valida individualmente el Homing de cada uno de los ejes de movimiento XYZ y si es preciso invertir el giro de motor en algún eje
  • Verificar que los termistores muestren la temperatura correcta
  • 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

Bueno, ha sido una guía bastante larga he de reconocerlo, pero pensamos que con gran contenido de valor para todo aquel que adquiera una electrónica de alto rendimiento, como lo son las BTT Octopus.

Deseamos sinceramente que os pueda ser de utilidad para la configuración de estas nuevas electrónicas. Y si os gusta, que compartáis la misma en vuestras redes sociales, algo que nos ayudará a mantener el proyecto y desarrollar más documentación técnica.

Puedes leer otros artículos interesantes en nuestro blog:

3D enthusiasts