Bigtreetech Eddy

- English

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

  • 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

Instalación del sensor

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

Compilación del firmware

Para poder utilizar el dispositivo este ha de tener el firmware correcto del sensor o host donde se conecte:

  • desde SSH lanzaremos los siguientes comandos:

cd ~/klipper
make menuconfig
  • 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

Configuración Klipper

Dado que podemos utilizar el BTT Eddy de diferentes formas es importan elegir ejemplo de configuración adecuado:

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.

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:

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

Lo primero tendremos en cuenta la ubicación del sensor en el BTT Eddy:

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.

Con todos estos ajustes tan solo tenemos que reiniciar nuestro Klipper para que los valores se carguen y sean efectivos.

Calibración BTT Eddy

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.

Calibración DRIVE_CURRENT

Desde la interfaz de Klipper, es aconsejable desde la web, seguiremos los siguientes pasos:

  • Haremos un homing de la máquina

  • 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

Calibración de mapeo de lecturas

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

Calibración de malla

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

Compensación de temperatura

  • 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

Z-Offset

Como funciona el z-offset en un sensor estilo Eddy?

Probablemente ya sepas que se considera z-offset, en referencia a un sensor de nivelación, como la distancia entre la que el sensor se activa y la posición física de la punta de nuestro nozzle ya que la posición entre ambos siempre ha de ser la misma salvo ajustes físicos.

Esto funciona en aquellos sensores tradicionales que envian una señal simple de activación que es la que se usa de referencia para calcular junto con el z-offset donde ubicar el nozzle en altura con respecto a la cama.

En el caso de sensores estilo Eddy no envian una señal de activación si no que están enviando un flujo de telemetría al sistema. Klipper interpreta esta telemetría para traducirla en alturas/distancias de Z.

Durante el proceso de ajuste básicamente se ajusta mecanicamente mediante un papel la distancia correcta del nozzle con la cama y le decimos al sistema que para la lectura en el rango obtenido del test ese va a ser z=0.

Teniendo en cuenta lo anterior puede llevar a confusión el valor z-offset de la configuración del Eddy ya que básicamente funciona de la forma contraria a lo que entendemos como z-offset en un sensor normal. Ese valor indica cuanto puede subir por encima de la altura de capa para realizar el sondeo. Por ejemplo si ponemos 2.5mm en ese valor veremos que durante el sondeo usa esa altura... en resumen el valor de z-offset en este caso no es para ajustar z=0 si no para ajustar la distancia de sondeo.

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

  • Lanzaremos el comando PROBE_EDDY_CURRENT_CALIBRATE_AUTO CHIP=btt_eddy y seguiremos las indicaciones para bajar/ajustar la altura de Z para que el nozzle roce el papel

  • Realizaremos un SAVE_CONFIG

A modo de referencia tenemos el proceso explicado en la guía de sensores de nivelación.

Video Tutorial

Como ayuda adicional tenéis este videotutorial con el proceso a seguir.

Troubleshooting/Resolución de problemas

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.

Versiones BTT Eddy

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:

KNOMI

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.

KAMP

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

Probe Triggered Before Movement

Normalmente sucede cuanto intentamos utilizar el PROBE dos o mas veces, para evitarlo es aconsejable subir Z unos mm entre comandos PROBE.

Pausas o saltos durante el mallado

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

gcode command < ANY GCODE COMMAND > already registered

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.

Problemas z-offset

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.

Última actualización

¿Te fue útil?