Octopus/Octopus Pro + EBB Toolhead (CANbridge)

En esta guía os mostraremos el proceso para tener nuestra Octopus/Octopus Pro usando un módulo EBB conectada directamente a nuestra Octopus.

Conexiones

En la siguiente imágen podremos ver el diagrama de conexiones que vamos a utilizar:

Conectaremos nuestra Octopus mediante cable USB y nuestro toolhead EBB usando el conector CAN de nuestra Octopus... a continuación tenéis más detalle sobre las conexiones:

  • Usaremos un cable de calidad y de la menos distancia posible USB-A a USB-c para conectar nuestra Octopus (USB-C) a nuestro host (USB-A)

  • Alimentaremos desde nuestra fuente de alimentación de la impresora nuestra Octopus y el toolhead EBB

  • Para el cable CANbus entre nuestra Octopus y el EBB.

    Necesitaremos un conector RJ11/12 (telefono 6 pins) y un tramo de cable, os acosejamos leer más abajo las sugerencias para el cableado CANbus, al igual que una crimpadora para esos conectores

Sugerencias sobre el cableado CAN:

  • La impedancia de los cables CAN debe ser de unos 120 ohms (+- 10%), para facilitar esto el cable utilizado tiene que tener una baja resistencia para mantener el umbral requerido por los receptores junto con los terminadores resistivos del bus

  • La sección del cable debería de ser >= 0.22mm2

  • Es aconsejable que el par de cables usados para la comunicación CAN sean trenzados o incluso en según que condiciones que estos tengan protección con un mallado extra en el cable

  • Es importante encontrar la combinación adecuada entre el bitrate y la longitud del cable, al final de la guía tenéis más información al respecto

  • Dado que el cableado va a estar en unas condiciones de temperatura y movimientos especiles en una impresora 3D se aconseja usar un cableado que sea relativamente flexible y aguante temperatura... cables PTFE suelen ser aconsejables

Instalando CANboot

Antes de comenzar con el proceso vamos a explicar brevemente que es CANboot y para/porque lo vamos a utilizar:

  • CANboot es un bootloader que se aplica a nuestras electrónicas (Octopus y EBB en este caso) que nos va a permitir poder aplicar el firmware Klipper usando USB, USART o CAN sin necesidad de acceder físicamente a la electrónica para realizar procesos como un reset o DFU

  • Utiliza un sistema similar a Klipper y su make menuconfig para crear, configurar y compilar el firmware

Vamos a comenzar instalando y entrando en el menú de creación del firmware/bootloader, desde el terminal SSH ejecutaremos:

cd ~
git clone https://github.com/Arksine/CanBoot
cd CanBoot
make menuconfig

CANboot para Octopus

En el menu de configuración de firmware/bootloader configuraremos de la siguiente forma, recuerda que tendrás que hacerlo para tu Octopus:

Una vez ajustadas las opciones pulsaremos Q y Y para salir y guardar la configuración. Lanzaremos el comando make:

make

Al finalizar obtendremos un firmware canboot.bin en /home/pi/CanBoot/out/canboot.bin el cual deberemos de copiar a nuestro equipo si aplicamos el firmware usando la SD en la electrónica.

A continuación vamos a aplicar nuestro firmware/bootloader CANboot a nuestra Octopus, y para ello necesitaremos la aplicación STM32CubeProgrammer para ello necesitaremos poner nuestra Octopus en modo DFU.

  • Conectaremos el cable USB entre nuestro ordenador y nuestra Octopus

  • Quitaremos el jumper de los pines USB-C y pondremos un jumper en BOOT0

  • Aplicaremos alimentación a nuestra Octpus desde la fuente de la impresora y pulsaremos y soltaremos el boton RESET, esto hará que entre en modo DFU.

  • Abriremos en nuestro ordenador STM32CubeProgrammer, deberemos asegurarnos que tenemos seleccionado USB y pulsaremos el botón de Connect en el caso que no nos indique que estemos conectados.

  • Deberemos de limpiar la memoria flash de nuestra Octopus.

  • Volveremos al inicio pulsando sobre el icono del lápiz y cargaremos nuestro firmware canboot.bin, el que preparamos para nuestra Octopus, y daremos a Download que descargará el firmware/bootloader a nuestra Octopus.

  • Una vez aplicado apagaremos la alimentación de nuestra Octopus y quitaremos el jumper de BOOT0... ya tenemos nuestra Octopus con CANboot!!!

CANboot para EBB

Volveremos al menu de CANboot para crear el firmware/bootloader para nuestro toolhead EBB:

make clean
make menuconfig

En los ejemplos anteriores usamos 500000 como velocidad del bus CAN, en cualquier caso es interesante realizar la pruebas con 1000000 para ver si funciona correctamente.

Una vez ajustadas las opciones, pulsaremos Q y Y para salir y guardar la configuración. Lanzaremos el comando make:

make

Al finalizar obtendremos un firmware canboot.bin en /home/pi/CanBoot/out/canboot.bin el cual deberemos de copiar a nuestro equipo.

A continuación vamos a aplicar nuestro firmware/bootloader CANboot a nuestra EBB, y para ello necesitaremos la aplicación STM32CubeProgrammer para ello necesitaremos poner nuestra EBB en modo DFU.

  • Comenzaremos colocando el jumper VUSB para que permita encender la EBB mediante USB

  • Activaremos el modo DFU

  • Conectaremos la EBB a nuestro ordenador y desde STM32CubeProgrammer realizaremos los mismos pasos que hicimos para nuestra Octopus.

  • Una vez finalizado el proceso apagaremos nuestra EBB quitando el cable USB, quitaremos el jumper VBUS y pondremos el jumper 120R.

Instalando Klipper

Ahora que ya tenemos preparadas nuestra Octopus y EBB con CANboot toca ponerse con el firmware Klipper.

Klipper para Octopus (CANbus Bridge)

  • Comenzaremos creando el firmware Klipper desde make menuconfig seleccionando la configuración para nuestra Octopus usando CANbus bridge.

cd ~/klipper
make menuconfig

IMPORTANTE!!!

A la hora de generar el firmware Klipper usando como conexión CANbus asegúrate que seleccionas la velocidad correcta que usaste previamente al generar el fimware/bootloader CANboot. En el ejemplo usamos 500000 pero os aconsejamos hacer pruebas con 1000000.

  • Una vez ajustadas las opciones, pulsaremos Q y Y para salir y guardar la configuración. Lanzaremos el comando make:

make
  • Os aconsejamos cambiar el nombre del firmware creado a octopus_klipper.bin y lo dejaremos en el directorio de klipper para evitar que se sobreescriba

mv ~/klipper/out/klipper.bin octopus_klipper.bin

Klipper para EBB

Vamos a continuar generando el firmware Klipper para nuestra EBB.

  • Limpiaremos y lanzaremos nuestro make ajustando las opciones dependiendo de nuestro modelo:

make clean
make menuconfig
  • Una vez ajustadas las opciones, pulsaremos Q y Y para salir y guardar la configuración. Lanzaremos el comando make y copiaremos el firmware creado a ebb_klipper.bin en nuestro directorio klipper:

make
mv ~/klipper/out/klipper.bin ebb_klipper.bin

Configuración Klipper

Conectaremos por USB nuestro host y Octopus alimentando esta con la alimentación de nuestra impresora. Desde el terminal SSH lanzaremos el comando:

ls /dev/serial/by-id/*

Esto nos devolverá el serial id de nuestra Octopus, en nuestro caso /dev/serial/by-id/usb-CanBoot_stm32f429xx_350026000B50314B33323220-if00 :

El serial id puede variar en tu caso, adapta los siguientes pasos a tu caso!!!

Ahora procederemos a aplicar el firmware Klipper que generamos en el punto anterior usando CANboot:

cd CanBoot/scripts
pip3 install pyserial
python3 flash_can.py -f ~/klipper/octopus_klipper.bin -d /dev/serial/by-id/usb-CanBoot_stm32f429xx_350026000B50314B33323220-if0

Recuerda poner tu serial id, y el paso de pip3 install pyserial solamente es necesario que lo hagas la primera vez.

Ahora que ya tenemos nuestra Octopus con el firmware Klipper que habilita CANbridge procederemos a configurar nuestra interfaz CAN.

sudo nano /etc/network/interfaces.d/can0

Y copiaremos la siguiente configuración:

/etc/network/interfaces.d/can0
allow-hotplug can0
iface can0 can static
    bitrate 500000
    up ifconfig $IFACE txqueuelen 1024
  • Recuerda ajustar el bitrate al mismo que indicases en tu firmware/bootloader!!!

  • Usando CTRL+X y Y y ENTER guardaremos los cambios

Apagaremos la impresora, conectaremos los cables de alimentación y RJ11/12 a nuestro EBB... Volveremos a encender la impresora.

Ahora que nuestra interfaz CAN vamos a revisar que esté levantado y funcionando con el comando, ip -s link show can0 en el caso de que diera un error podemos intentar levantarlo con sudo ip link set up can0 :

Si todo funcionó correctamente, lanzaremos el siguiente comando para encontrar los UUID de nuestros dispositivos CAN:

cd CanBoot/scripts
python3 flash_can.py -i can0 -q

Podemos ver los UUID de nuestra Octopus con Klipper (463b35222d7b) y nuestra EBB en CANboot (127081e7e3c6).

Ahora lanzaremos el comando para aplicar el firmware Klipper previamente creado para nuestra EBB usando la interfaz CAN:

python3 flash_can.py -f ~/klipper/ebb_klipper.bin -u 127081e7e3c6

Ajustando nuestro printer.cfg

Si hemos llegado hasta aquí ya tenemos nuestro CAN montado, aplicado nuestros firmwares Klipper/CANboot y disponemos de nuestro bus CAN funcionando y los UUID de nuestros componentes.

Ahora deberemos de configurar nuestro fichero de configuración de Klipper, printer.cfg o alguno de sus includes, para indicarle que conecte con nuestros componentes usando el bus CAN.

Modificaremos nuestras secciones mcu y mcu EBBCan para indicar sus UUID:

[mcu]
canbus_uuid: 463b35222d7b

[mcu EBBCan]
canbus_uuid: 127081e7e3c6

Si tenemos problemas de conexión:

  • En ocasiones el interfaz/bus CAN puede tardar en levantarse, prueba a realizar un reset o un reinicio de la máquina

  • Podemos lanzar el comando sudo ip link set up can0

  • Revisa nuestra guía de Troubleshooting CAN

Actualizando nuestro firmware Klipper mediante CANboot

Dado que ya tenemos montada nuestra red CANbus y disponemos de CANboot en nuestras electrónicas, podemos realizar actualizaciones de firmware de una forma sencilla.

  • Volveremos a crear el firmware tal como realizamos en pasos anteriores

  • Lanzaremos el script flash_can.py para aplicar el firmware, es importante tener el UUID

python3 flash_can.py -f ~/klipper/octopus_klipper.bin -u 463b35222d7b
  • Realizaremos el proceso tanto para nuestra Octopus como EBB

Última actualización