Bigtreetech Eddy
Última actualización
Última actualización
El BTT Eddy es un sensor de nivelación por escaneo de la superficie, este tipo de sensores pueden escanear tu cama en unos pocos segundos con una alta precisión.
Entre sus ventajas podemos destacar:
nivelación de alta velocidad, completa un nivelado de cama en unos pocos segundos (alrededor de 20s para una cama de tamaño medio)
alta precisión, con lecturas de 0.0005 mm de precisión
IMPORTANTE!!!
Por el tipo de sensor utilizado el BTT Eddy este solamente es compatible con superficies metálicas conductivas y que además cuenten con un campo magnético uniforme. El BTT Eddy puede dar problemas con camas con zonas específicas de nivelación o imanes para fijar el fleje/PEI.
tamaño compacto y bajo peso, con sus 6g y su pequeño tamaño es integrable en casi cualquier cabezal de impresión no afectando en el aumento de masa que pueda afectar las inercias y vibraciones durante nuestras impresiones. Especialmente pensado para su instalación en cabezales Voron
compensación de temperatura, integra la función de compensación de temperatura de Klipper para una precisión perfecta
Dado que ya no es necesario el uso del fork Bigtreetech de Klipper al usar este tipo de sensores es aconsejable utilizar Klipper oficial. Esta guía está pensada para utilizar Klipper oficial así que si estás utilizando el fork de Bigtreetech te aconsejamos que migres a la versión oficial por lo que es aconsejable reinstalarla siendo lo más fácil desde Kiauh.
Algunos consejos de instalación:
el sensor hemos de montarlo en nuestro cabezal de impresión entre 2-3mm entre la superficie de impresión/punta del nozzle.
en el caso de la versión USB es aconsejable evitar que pase al lado de cables que generen mucho ruido eléctrico (motores por ejemplo) y/o utilizar un cable de calidad con buen apantallamiento, flexible y tolerable a temperaturas
instalarlo, especialmente el lado de la electrónica del sensor, alejado de fuentes de calor como el hotend
Para poder utilizar el dispositivo este ha de tener el firmware correcto del sensor o host donde se conecte:
BTT Eddy solamente es compatible con instalaciones de Klipper que utilicen Python 3. En el caso que veamos errores durante la compilación del estilo Internal error during connect: split() takes no keyword arguments
normalmente indican que tu instalación de Klipper está basada en Python 2 por lo que es aconsejable reinstalarla siendo lo más fácil desde Kiauh.
desde SSH lanzaremos los siguientes comandos:
estableceremos estos valores en la configuración de menús:
Pulsaremos Q
y Yes
para salvar los cambios
Desde la linea de comandos SSH lanzaremos el comando make
Si tenemos el sensor conectado quitaremos el cable
Dejaremos pulsado el botón BOOT, se puede pulsar sin desmontar el sensor, mientras volvemos a conectar el cable USB (este debe estar conectado a nuestro host Klipper). Una vez conectado y encendido el sensor podemos dejar de pulsar BOOT ya tendremos nuestro sensor en ese modo.
desde SSH lanzaremos el comando lsusb
para ver si aparece nuestro sensor, deberíamos de ver algo como:
nos aseguramos que estamos en el directorio Klipper con cd ~/klipper
lanzaremos make flash FLASH_DEVICE=2e8a:0003
para generar y aplicar el firmware, recuerda ajustar 2e8a:0003
a lo obtenido en el lsusb
una vez finalizado el proceso lanzaremos ls /dev/serial/by-id/*
para ver si aparece el serialID de nuestro sensor que usaremos en la configuración de Klipper en la sección [mcu eddy]
que veremos más adelante
Dado que podemos utilizar el BTT Eddy de diferentes formas es importan elegir ejemplo de configuración adecuado:
utilizaremos el sensor BTT Eddy como sensor de nivelación/probe y otro dispositivo como z-endstop (homing) -> este sería el fichero de configuración a tomar como ejemplo
utilizaremos el sensor BTT Eddy como sensor de nivelación/probe y z-endstop -> este sería el fichero de configuración a tomar como ejemplo
utilizaremos el sensor BTT Eddy como sensor de nivelación/probe y z-endstop además de utilizar la nueva función de z-offset -> este sería el fichero de configuración a tomar como ejemplo
El siguiente paso va a depender de que hemos elegico como z-endstop:
En el caso que queramos utilizar nuestro BTT Eddy como z-endstop, que normalmente es lo aconsejable, deberemos de seguir los siguientes pasos:
indicar que nuestro sensor Eddy va a hacer el proceso de z-endstop para el homing
en la sección [stepper_z]
de nuestro printer.cfg
(o del include que pueda contenerlo) cambiaremos endstop_pin
a endstop_pin: probe:z_virtual_endstop
, también es aconsejable comenta o eliminar position_endstop: 0
asegurarnos que hemos copiado o añadido como include a nuestro printer.cfg el fichero de ejemplo del punto anterior.
En el caso que utilicemos un dispositivo como el BTT KNOMI algunas macros pueden entrar en conflicto por lo que suele ser aconsejable comentarlas en el fichero de configuración del KNOMI y dejar las del Eddy
El siguiente paso será ajustar la configuración específica que obtuvimos en las secciones previas, ya sea si lo pusimos directamente en el printer.cfg o lo incluimos como un include tendremos que ajustar sobre las configuraciones de ejemplo:
Uso de includes:
Dado que Klipper puede funcionar con configuraciones modulares en base a includes, que son referencias a otros cfg para ser procesados para la configuración, es la forma más ordenada y limpia de implementar el BTT Eddy ya que todo lo relacionado con el lo vamos a tener en un fichero específico.
De los ficheros de configuración anteriores lo ideal es crear un eddy.cfg
y copiar la configuración de ejemplo de puntos anteriores.
Para incluirlo en nuestra configuración como include será tan sencillo como poner la línea:
[include eddy.cfg]
Como siempre encima de la linea #*# <---------------------- SAVE_CONFIG ---------------------->
y dado que Klipper proceso de forma secuencial la configuración encima o debajo de otras secciones que puedan afectarles, como por ejemplo si tenemos un KNOMI en nuestra máquina debería de estar por debajo de la configuración de este.
el serial del BTT Eddy en el caso que usemos la versión USB
los offsets del sensor XY para nuestra máquina
Podemos utilizar el siguiente procedimiento para obtener los offsets para nuestro caso.
Podemos obtener esos offsets simplemente midiendo con una regla la distancia desde nuestro nozzle al punto de medición del sensor en X e Y. Tenéis más información sobre esta forma manual en la guía de sensores de nivelación.
También contamos con otro modo más preciso, aunque para ello tenemos que tener la máquina funcional para hacer un homing.
Desde nuestro interfaz de control de Klipper (Mainsail/Fluidd/KlipperScren) colocaremos el sensor/cabezal en el centro de nuestra área de impresión, previamente hemos de realizar un home.
Desde la consola/terminal del interfaz lanzaremos la macro PROBE
, en la cama podemos poner un folio o cinta de carrocero marcando el punto donde está el punto de medición de la sonda para tenerlo como referencia.
Lanzaremos desde la consola/terminal la macro GET_POSITION
que nos devolverá la ubicación actual de la máquina que nos anotaremos:
Recv: // toolhead: X:46.500000 Y:27.000000 Z:15.000000 E:0.000000
Con los controles de movimiento haremos que el nozzle quede encima de la marca que hicimos previamente y haremos lo mismo lanzando de nuevo el comando GET_POSITION
y calcularemos nuestros offsets en base a la diferencia de ellos.
Estos valores los colocaremos en nuestro printer.cfg
y haremos un RESTART
desde la consola para que se carguen.
mesh_min y mesh_max, tenéis más información e incluso una macro para calcularlos en la guía de sensores de nivelación.
home_xy_position, que también tenéis explicado en a guía de sensores de nivelación.
Con todos estos ajustes tan solo tenemos que reiniciar nuestro Klipper para que los valores se carguen y sean efectivos.
Ahora que ya tenemos nuestro sensor con el firmware, en el caso de que lo necesite, y la configuración de Klipper hecha es el turno de la calibración.
Desde la interfaz de Klipper, es aconsejable desde la web, seguiremos los siguientes pasos:
Haremos un homing de la máquina
En el caso que usemos el BTT Eddy como z-endstop puede ser que no podamos hacer un homing por lo que simplemente haremos homing de los ejes XY con G28 XY desde la consola y moveremos manualmente el cabezal a la distancia de 20mm
Colocaremos el cabezal en el centro de la cama, si nuestra rutina de homing ya la tenemos asi no hace falta modificar la ubicación, y dejaremos cabezal a 20mm de la cama.
Lanzaremos la macro LDC_CALIBRATE_DRIVE_CURRENT CHIP=btt_eddy
Una vez finalizado el proceso guardaremos los ajustes calculados con SAVE_CONFIG
Una vez que ya tenemos el DRIVE_CURRENT
calibrado, nuestro sensor ya está capacitado para poder realizar lecturas de nuestra cama. Pero antes debemos hacer que Klipper ajuste las lecturas del sensor con respecto a la altura del nozzle. Este proceso básicamente coloca el nozzle en z=0 y va realizando medidas con el sensor mientras incrementa la altura del nozzle.
Lanzaremos el comando PROBE_EDDY_CURRENT_CALIBRATE_AUTO CHIP=btt_eddy
Seguiremos las instrucciones para mover nuestro nozzle hasta tocar nuestra cama con un papel encima, el proceso tradicional de ajustar el nozzle.
Una vez finalizado daremos al ok en la UI y veremos que comienza el proceso de calibración.
Al finalizar el proceso ejecutaremos la macro SAVE_CONFIG
para guardar los valores
Tenemos una guía de nivelación de cama que os puede servir como referencia, aunque tiene algunos cambios en el caso del BTT Eddy.
Haremos un homing de todos los ejes ya sea desde la interfaz o con G28
desde la consola
Utilizaremos la macro BED_MESH_CALIBRATE METHOD=rapid_scan
Una vez finalizado guardaremos cambios con SAVE_CONFIG
La nueva actualización de Klipper para soportar el BTT Eddy incluye mejoras en la macro BED_MESH_CALIBRATE añadiendo por ejemplo un nuevo de escaneo para este tipo de sensores METHOD=scan.
SCAN_MODE=[detailed | rapid], nos va a permitir elegir el método de escaneo con uno más detallado realizando pausas para obtener varios sondeos de cada punto o el rápido que va a realizar el sondeo sin parar y de forma realmente rápida
SCAN_SPEED=[speed], donde ajustaremos la velocidad durante el escaneo
SAMPLE_TIME=[time], el tiempo de pausado cuando realizamos un escaneo en modo detallado
SAMPLES_RESULT=[option], el tipo de fórmula a aplicar sobre las lecturas de sondeo
standard, todas las medidas son calculadas como medias
centered, las medidas son filtradas los primeros y últimos se obvian y el resto son medias
weighted, las medidas cercanas al sensor son usadas tal cual y las lejanas como medias
Actualmente solamente la versión USB lo soporta!!!
Haremos un homing de todos los ejes ya sea desde la interfaz o con G28
desde la consola y moveremos el eje Z a 5mm desde los controles de la interfaz o consola con un G0 Z5
Es aconsejable ajustar el timeout de inactividad (idle timeout) para que el proceso se complete, lo haremos con la macro SET_IDLE_TIMEOUT TIMEOUT=36000
Lanzaremos la macro de calibración TEMPERATURE_PROBE_CALIBRATE PROBE=btt_eddy TARGET=56 STEP=4
Nos aparecerá en la interfaz un asistente para hacer el proceso de nivelación de altura con el papel
Ajustaremos desde la interfaz la temperatura de la cama y del nozzle a las máximas temperaturas que solamos imprimir con nuestra máquina. Es aconsejable realizar este test en condiciones óptimas evitando corrientes de aire.
El asistente nos irá indicando cada vez que sea necesario volver a realizar el ajuste del papel, ten mucho cuidado de no quemarte durante el proceso!!!
También podremos ir avanzando en estos pasos con las macros:
TEMPERATURE_PROBE_NEXT
que usaremos para forzar un nuevo test antes de que llegue a la temperatura objetivo
TEMPERATURE_PROBE_COMPLETE
para indicar que el proceso ha finalizado antes de llegar a la temperatura objetivo TARGET
ABORT
para parar el proceso
Este proceso solamente aplicará si utilizamos nuestro BTT Eddy como z-endstop!!!
Para ajustar el z-offset cuando utilizamos nuestro BTT Eddy como z-endstop para realizar el proceso de homing:
Haremos un homing de todos los ejes ya sea desde la interfaz o con G28
desde la consola
Colocaremos un trozo de papel debajo del nozzle
Desde el interfaz ajustaremos nuestro z=0
Una vez en esa posición y si vemos que el papel no queda ligeramente rozando el nozzle usaremos los controles babystepping para ajustar la altura
Una vez finalizado el proceso daremos al botón SAVE para guardar los ajustes del z-offlset
A modo de referencia tenemos el proceso explicado en la guía de sensores de nivelación.
Como ayuda adicional tenéis este videotutorial con el proceso a seguir.
El BTT Eddy es un sensor recientemente implementado en Klipper por lo que puede ser susceptible de mejoras en su uso y estabilidad, en cualquier caso os facilitamos algunos tips en el caso de problemas con su uso.
Es importante que dependiendo de nuestra máquina podamos escoger la versión/modelo adecuado para nuestro uso.
Existen básicamente 3 versiones de BTT Eddy:
BTT Eddy, suele ser el aconsejable siempre ya que se conecta por USB y se gestiona como cualquier otra MCU en nuestro Klipper... además cuenta con sensor de temperatura que nos va a dotar de funcionalidades extras importantes. Por contra va a requerir de un cable extra USB y la instalación del mismo.
BTT Eddy Coil, esta versión está especialmente pensada para su instalación junto a toolheads como los EBB36/42 ya que cuenta con la conexión I2C necesaria. En este caso no contamos con sensor de temperatura que va a limitar ciertas opciones pero por otro lado el cableado al ir al toolhead debería de ser más simple.
BTT Eddy CAN, en este caso se utiliza un bus CAN para la conexión a nuestro sistema directamente a nuestro host, electronica o toolhead siempre que estos cuenten con un bus CAN.
A continuación una tabla comparativa:
Como ya hemos comentado durante la fase de instalación/configuración si tenemos un KNOMI podemos tener problemas ya que algunas macros van a entrar en conflicto.
Para hacerlos compatibles tenemos diferentes opciones como comentar en el cfg del KNOMI las macros en conflicto, añadir la configuración de BTT Eddy después de la del KNOMI.
Por otro lado en la configuración de ejemplo del BTT Eddy, en el caso de disponer KNOMI, deberemos des comentar las macros que hacen referencia a este.
Muchos usuarios les gusta utilizar KAMP aka Klipper-Adaptive-Meshing-Purging ya que permitía tener un mallado dinámico del área de impresión y un ajuste de la línea de purgado.
Con la integración nativa del mallado dinámico en Klipper el uso de KAMP ya no aporta tantos beneficios y si juntamos esto con que el mallado de cama con BTT Eddy es extremadamente rápido carece de sentido usarlo.
Además de esto las macros de KAMP pueden entrar en conflicto con las de BTT Eddy por lo que es aconsejable eliminarlo o al menos eliminar/comentar de nuestra configuración KAMP_SETTINGS.cfg
la línea #[include ./KAMP/adaptive_meshing.cfg]
.
Si queremos utilizar el mallado dinámico podemos utilizar el valor ADAPTIVE=1
cuando llamamos a nuestra macro de nivelación BED_MESH_CALIBRATION
... tenemos más información en nuestra guía de mallado cama inteligente.
Error during homing probe: Eddy current sensor error
Normalmente este error indica un fallo en los valores reportados por el sensor BTT Eddy, tenemos diferentes opciones para solucionar este tipo de problemas:
revisa que tu sensor se encuentre a la altura adecuada, como os dijimos este ha de estar entre 2-3mm de la punta del nozzle siendo 2.5mm la altura óptima
siempre que ajustemos la altura del sensor es necesario eliminar toda la configuración de calibración y realizar de nuevo esta
si seguimos con problemas podemos poner el valor 16
en reg_drive_current
Normalmente sucede cuanto intentamos utilizar el PROBE
dos o mas veces, para evitarlo es aconsejable subir Z unos mm entre comandos PROBE
.
Normalmente sucede cuando no hemos configurado bien las macros de mallado, BED_MESH_CALIBRATE METHOD=rapid_scan
También puede suceder como os comentamos anteriormente por utilizar KAMP o similares que modifican esta macro de sistema
Al igual que el anterior normalmente hace referencia al uso de una macro que usa el BTT Eddy y que no se ha cargado de forma correcta o ha sido machacada por otra configuración.
Os aconsejamos leer esta interesante información de como funciona en BTT Eddy. Con un BTT Eddy el z-offset actúa diferente a un sensor normal que indica la altura entre la activación del sensor y del nozzle... en este caso indica a que altura el sensor activa la señal de final de carrera.
Por esto es muy importante que hagamos una calibración correcta y si decidimos utilizar la versión z-offset de la configuración deberemos des comentar la macro z-offset que incluye ese ejemplo que alineara ese offset al z-offset.
Lo primero tendremos en cuenta la ubicación del sensor en el BTT Eddy: