Octopus/Octopus Pro + EBB Toolhead (CANbridge)
Última actualización
Última actualización
En esta guía os mostraremos el proceso para tener nuestra Octopus/Octopus Pro usando un módulo EBB conectada directamente a nuestra Octopus.
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
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:
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:
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!!!
Volveremos al menu de CANboot para crear el firmware/bootloader para nuestro toolhead EBB:
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
:
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.
Ahora que ya tenemos preparadas nuestra Octopus y EBB con CANboot toca ponerse con el firmware Klipper.
Comenzaremos creando el firmware Klipper desde make menuconfig seleccionando la configuración para nuestra Octopus usando CANbus bridge.
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
:
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
Vamos a continuar generando el firmware Klipper para nuestra EBB.
Limpiaremos y lanzaremos nuestro make
ajustando las opciones dependiendo de nuestro modelo:
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:
Conectaremos por USB nuestro host y Octopus alimentando esta con la alimentación de nuestra impresora. Desde el terminal SSH lanzaremos el comando:
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:
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.
Y copiaremos la siguiente configuración:
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:
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:
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:
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
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
Realizaremos el proceso tanto para nuestra Octopus como EBB