Host como segunda MCU
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
En ocasiones como por ejemplo añadir un sensor acelerómetro, un relé de apagado o la gestión de dispositivos por GPIO nos puede interesar usar nuestro host como segunda MCU y poder integrarla para su uso en Klipper.
El proceso es muy sencillo:
Usando nuestro cliente SSH/Terminal favorito nos conectaremos a nuestro Host. Os aconsejamos usar o por ejemplo.
Entraremos en el directorio de Klipper lanzando el siguiente comando:
Instalaremos el soporte local para MCU, al usar el comando sudo nos solicitará la contraseña:
Haremos que el servicio de MCU Klipper funcione en el arranque:
Crearemos nuestro firmware Klipper para nuestro Host, en las opciones iremos con las flechas a la opción Micro-controller Architecture y pulsando enter seleccionaremos de la lista Linux process una vez seleccionado pulsaremos Q e Y para confirmar:
Pararemos por seguridad el servicio Klipper con el siguiento comando:
Ejecutaremos el comando siguiente para crear y aplicar el firmware Klipper para nuestro Host:
Ahora tan solo tenemos que iniciar nuestro servicio Klipper y si hemos seguido las instrucciones correctamente y no falló ningún paso ya tendremos nuestro Host como segunda MCU:
Si nuestro Klipper no conecta con nuestro Host como MCU podemos revisar el log de Klipper (klippy.log):
revisaremos que el servicio klipper-mcu funcione correctamente
systemctl status klipper-mcu
Nos debería retornar algo así:
klipper@bigtreetech-cb1:~# systemctl status klipper-mcu ● klipper-mcu.service - Starts the MCU Linux firmware for klipper on startup Loaded: loaded (/etc/systemd/system/klipper-mcu.service; enabled; preset: enabled) Active: activating (auto-restart) (Result: exit-code) since Mon 2023-12-11 19:39:56 CET; 4s ago Docs: https://www.klipper3d.org/RPi_microcontroller.html Process: 2408 ExecStart=/usr/local/bin/klipper_mcu -r -I ${KLIPPER_HOST_MCU_SERIAL} (code=exited, status=255/EXCEPTION) Main PID: 2408 (code=exited, status=255/EXCEPTION) CPU: 6ms
En el caso que nos indique que el servicio no este funcionando y mediante un sudo service klipper-mcu restart nos diga que el servicio no existe realizaremos los pasos previos para montarlo
si vemos problemas de Permission denied al intentar conectar a /tmp/klipper_host_mcu podemos intentar reparando añadiendo permisos al usuario pi al grupo tty necesario para el acceso:
Ahora solo nos queda añadir a nuestro printer.cfg la configuración de nuestra nueva MCU:
Este paso es opcional y normalmente se utilizará en el caso de que queramos usar un componente externo SPI conectado a nuestra RPI como por ejemplo un acelerómetro.
Para ello y desde SSH ejecutaremos:
Encontraremos la opción de habilitar SPI en Interfacing options:
Al igual que el paso anterior, en ocasiones puede interesarnos habilitar el soporte para I2C, normalmente para acelerómetros de la familia MPU.
Para ello y desde SSH ejecutaremos:
Encontraremos la opción de habilitar I2C en Interfacing options:
Además, en este caso necesitaremos añadir o des comentar unas líneas de nuestro /boot/config.txt (o /boot/firmware/config.txt dependiendo de la distro usada para instalar el OS en nuestra RPI):
Ahora que ya podemos usar nuestra Raspberry como segunda MCU de nuestro Klipper y dado que normalmente el objetivo suele ser para poder tener control desde Klipper sobre las funcionalidades de nuestra Raspberry como pueda ser el acceso a los GPIO os sugerimos algunas herramientas que facilitarán la gestión:
Lo primero que haremos será instalar las herramientas para tenerlas disponibles:
Con gpiod instalado ya dispondremos de comandos útiles para la gestión de nuestro GPIO:
gpiodetect, que nos permitirá detectar nuestros gpio
gpioinfo, nos proporcionará información sobre gpio