Octopus/Octopus Pro + EBB Toolhead (CANbridge)

- English

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

Octopus v1.0/v1.1
Octopus Pro
  • 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

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
  • 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 :

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

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

¿Te fue útil?