For the complete documentation index, see llms.txt. This page is also available as Markdown.

Bigtreetech Eddy

El BTT Eddy es un sensor de nivelación por escaneo de la superficie basado en corrientes de Eddy (inductivo). Este tipo de sensores pueden escanear tu cama en unos pocos segundos con una alta precisión, sin contacto físico y sin pin de toque.

Entre sus ventajas destacan:

  • Nivelación de alta velocidad: completa un nivelado en unos 20 segundos para una cama de tamaño medio, y menos con la cama pequeña.

  • Alta precisión: lecturas con resolución de 0.0005 mm.

  • Tamaño compacto y bajo peso: 6 g, integrable en casi cualquier cabezal sin afectar a inercias ni vibraciones.

  • Compensación de temperatura: integra la función de compensación térmica de Klipper para mantener la precisión cuando la cama calienta.

  • Escaneo continuo: con METHOD=rapid_scan el cabezal no se detiene en cada punto, el sondeo se hace en movimiento. Es especialmente rápido con el BTT Eddy.

Klipper oficial, no el fork de BTT

Desde hace tiempo ya no es necesario usar el fork de Klipper de Bigtreetech. Esta guía está escrita para Klipper oficial. Si usas el fork de BTT, migra a la versión oficial — lo más fácil es reinstalar desde KIAUH.

Versiones del BTT Eddy

Existen tres versiones del sensor con diferencias importantes según el setup:

Versión
Conexión
Sensor temperatura
Cuándo usarla

BTT Eddy

USB

La opción habitual y recomendada. Se gestiona como una MCU independiente en Klipper.

BTT Eddy Coil

I2C (EBB36/42)

No

Para toolheads tipo EBB36/EBB42. Simplifica el cableado pero pierde la compensación de temperatura.

BTT Eddy CAN

CANbus

Para setups con bus CAN directo al host, electrónica o toolhead.

Instalación del sensor

Algunos consejos antes de montar el sensor:

  • Montarlo en el cabezal con 2-3 mm entre la superficie de medición del Eddy y la punta del nozzle (2.5 mm es el valor óptimo).

  • En la versión USB, evitar que el cable pase junto a cables de motores u otras fuentes de ruido eléctrico. Usa un cable de calidad, apantallado y flexible.

  • Mantener la parte electrónica del sensor alejada de fuentes de calor como el hotend.

Compilación del firmware

Desde SSH:

Selecciona estos valores en el menú:

Pulsa Q y Yes para guardar, luego:

Con el sensor desconectado, mantén pulsado el botón BOOT y conecta el cable USB al host. Suelta BOOT una vez conectado.

Verifica que aparece en el sistema:

Deberías ver algo como:

Flashea el firmware (ajusta el ID al que veas en lsusb):

Una vez finalizado, obtén el serial ID del sensor:

Anota el ID — lo usarás en la sección [mcu eddy] del printer.cfg.

Configuración Klipper

Elige el fichero de ejemplo según tu setup:

Si usas el BTT Eddy como z-endstop (recomendado)

En la sección [stepper_z] de tu printer.cfg:

Ajustes a personalizar en el cfg del Eddy

Una vez copiado el fichero de ejemplo, personaliza:

  • Serial del BTT Eddy (versión USB): el ID que obtuviste con ls /dev/serial/by-id/*.

  • Offsets XY del sensor: la distancia en X e Y desde el nozzle al punto de medición del Eddy.

Cómo medir los offsets XY

El punto de medición del sensor está marcado en la PCB:

Método manual: mide con una regla la distancia desde el nozzle al punto de medición del sensor en X e Y.

Método preciso (requiere la máquina funcional con homing en XY):

  1. Haz home en XY: G28 XY

  2. Coloca el cabezal en el centro de la cama

  3. Lanza PROBE desde la consola (pega un trozo de cinta en la cama para marcar el punto de sondeo)

  4. Lanza GET_POSITION y anota la posición

  5. Mueve el nozzle encima del punto marcado con los controles manuales

  6. Lanza GET_POSITION de nuevo y calcula la diferencia — esos son los offsets

Aplica los valores en tu cfg y haz RESTART.

Calibración BTT Eddy

1. Calibración DRIVE_CURRENT

Controla la intensidad del campo magnético que genera el sensor. Hay que calibrarla una vez (o cada vez que cambies la altura de montaje del sensor).

  • Haz home en XY: G28 XY

  • Mueve el cabezal al centro de la cama a 20 mm de altura

  • Lanza la calibración:

  • Guarda el resultado:

2. Calibración de mapeo de lecturas (correlación sensor → altura Z)

Este proceso establece la relación entre las lecturas del sensor y la posición real del nozzle. Hay que repetirlo si cambias la altura de montaje del sensor.

Dos comandos disponibles

  • PROBE_EDDY_CURRENT_CALIBRATE_AUTO CHIP=btt_eddy — variante histórica usada por la guía oficial de BTT, hace el proceso completo en automático.

  • PROBE_EDDY_CURRENT_CALIBRATE CHIP=btt_eddy — el comando estándar de Klipper. Hace exactamente lo mismo: tras el test del papel, mueve el cabezal y ejecuta una serie de movimientos para correlacionar las lecturas del sensor con posiciones Z.

Cualquiera de los dos vale. En esta guía usamos el segundo, que es el documentado oficialmente en Klipper.

  • Lanza:

  • Aparecerá el asistente para bajar el nozzle con un papel hasta tocar la cama (el procedimiento clásico del papel).

  • Acepta con ACCEPT cuando el papel haga la resistencia justa.

  • El proceso continúa automáticamente y tarda aproximadamente dos minutos. Klipper publicará en consola las medidas de ruido y la frecuencia leída a cada altura Z.

  • Al terminar, guarda:

Habilitar el rapid scan (proving)

PROBE_EDDY_CURRENT_CALIBRATE solo calibra la relación lectura-altura para el sondeo estándar. Para usar METHOD=rapid_scan con precisión, Klipper hace una calibración adicional —llamada coloquialmente "proving"— que se ejecuta la primera vez que lanzas un mallado con escaneo rápido:

Si la cama no está suficientemente paralela a los raíles XY, el modo rapid scan puede no ser fiable y Klipper lo avisará por consola. En ese caso usa primero METHOD=scan o haz un Z-tilt / QGL más fino.

3. Calibración de malla

Con el sensor ya calibrado, haz el mallado de cama:

Parámetros avanzados de escaneo

BED_MESH_CALIBRATE con el BTT Eddy soporta opciones adicionales:

  • METHOD=rapid_scan — escaneo continuo sin parar en cada punto (el más rápido, recomendado para uso diario)

  • METHOD=scan — escaneo con pausa en cada punto para múltiples lecturas (más lento, más preciso)

  • SCAN_MODE=detailed o SCAN_MODE=rapid — submode del método scan

  • SCAN_SPEED=[velocidad] — velocidad durante el escaneo continuo

  • ADAPTIVE=1 — mallado adaptativo nativo de Klipper: sondea solo el área que ocupa la pieza actual. No necesitas KAMP para esto.

Ejemplo de uso con mallado adaptativo:

Añade esto a tu macro de inicio para sondear solo el área necesaria en cada impresión.

4. Compensación de temperatura (solo versión USB)

Este proceso crea un perfil de corrección para compensar la deriva térmica del sensor conforme calienta la cama y el propio cabezal. Sin él, las lecturas del Eddy varían con la temperatura y la primera capa se desplaza unas centésimas entre impresiones en frío y en caliente.

Sección [temperature_probe] en printer.cfg

A partir de Klipper 0.13 el procedimiento se ha estandarizado a través del módulo [temperature_probe], que se vincula automáticamente con la sección [probe_eddy_current] si comparten el mismo nombre.

¿Por qué los parámetros calibration_*?

  • calibration_bed_temp: tras la primera muestra Klipper enciende la cama y va tomando muestras conforme sube la temperatura. Al terminar, la apaga.

  • calibration_extruder_temp: si está definido, Klipper calienta primero el hotend hasta esa temperatura para que el nozzle ya esté dilatado durante el primer sondeo manual. Evita errores de varias centésimas por la dilatación del filamento entre frío y caliente.

  • extruder_heating_z: Z al que se sitúa el cabezal mientras calienta el hotend, lo suficientemente lejos de la cama para no calentar la bobina del Eddy con el calor radiado del nozzle.

  • max_validation_temp: temperatura máxima usada al final del proceso para validar la curva de compensación. En impresoras cerradas tipo Voron / Bambu hay que subirla a 100-120, ya que el aire interno alcanza temperaturas más altas.

Procedimiento

Con la sección [temperature_probe] añadida, reinicia Klipper y lanza:

TARGET es la temperatura máxima de la bobina del Eddy a la que quieres llegar — no la temperatura de cama. En la práctica con cama a 90-100 °C la bobina del Eddy estabiliza alrededor de 50-70 °C.

Klipper irá tomando muestras cada 2 °C de subida (configurable con STEP=4 en el propio comando para muestrear cada 4 °C y acelerar el proceso). En cada muestra pide hacer el test del papel; acepta con ACCEPT. Cuidado de no quemarte durante el proceso.

Comandos auxiliares durante la calibración:

  • TEMPERATURE_PROBE_NEXT — forzar el siguiente paso antes de llegar a la temperatura objetivo.

  • TEMPERATURE_PROBE_COMPLETE — finalizar el proceso antes de llegar a TARGET con los datos recogidos hasta ahora.

  • ABORT — cancelar sin guardar nada.

Al terminar, guarda con SAVE_CONFIG. Klipper escribirá los coeficientes de la curva de compensación al final del printer.cfg dentro del bloque #*# <--- SAVE_CONFIG --->.

5. Ajuste del Z-Offset

El z-offset del Eddy funciona diferente al de un sensor tradicional

En un sensor clásico (BLTouch, inductivo...), el z-offset es la distancia entre el punto de activación del sensor y la punta del nozzle — es fijo y depende del montaje.

En el Eddy no hay "punto de activación" — el sensor envía telemetría continua que Klipper traduce a distancias. Durante la calibración le dices al sistema que, para las lecturas obtenidas con el nozzle tocando la cama (test del papel), eso es z=0.

Por eso el parámetro z_offset en la config del Eddy no indica la distancia sensor-nozzle, sino la altura de sondeo por encima de la cama (normalmente 2.5 mm). Ajustar la primera capa se hace con PROBE_CALIBRATE como en cualquier otro sensor.

Para ajustar z=0 con el Eddy como z-endstop:

Sigue el asistente para ajustar el nozzle con el papel. Al finalizar, SAVE_CONFIG.

Video Tutorial

Troubleshooting

Error during homing probe: Eddy current sensor error

Indica lecturas fuera de rango del sensor. Causas habituales:

  • El sensor no está a la altura correcta (debe estar 2-3 mm sobre el nozzle, óptimo 2.5 mm).

  • Siempre que cambies la altura de montaje, borra toda la calibración y repítela desde el principio.

  • Si persiste, prueba a poner reg_drive_current: 16 manualmente en la sección del Eddy.

Probe Triggered Before Movement

Sucede cuando lanzas PROBE dos veces seguidas sin subir el cabezal entre medidas. Sube Z unos milímetros entre comandos PROBE.

Pausas o saltos durante el mallado

Causas posibles:

  • Macro BED_MESH_CALIBRATE mal configurada — asegúrate de usar METHOD=rapid_scan

  • KAMP instalado y en conflicto — ver sección KAMP más abajo

gcode command <XX> already registered

Una macro del Eddy está siendo sobreescrita por otra configuración (KAMP, KNOMI, u otro include). Revisa el orden de los includes en tu printer.cfg y elimina macros duplicadas.

Problemas de z-offset

Lee este documento de BTT sobre cómo funciona el z-offset en el Eddy. El comportamiento es diferente al de un sensor tradicional — entenderlo evita muchas confusiones.

KNOMI — conflicto de macros

Si tienes KNOMI, comenta en su cfg las macros que entren en conflicto con el Eddy. Además, en el cfg de ejemplo del Eddy descomenta las macros específicas para KNOMI.

KAMP — ya no es necesario

KAMP (Klipper-Adaptive-Meshing-Purging) fue muy útil antes de que Klipper integrara el mallado adaptativo nativo. Hoy en día:

  • Klipper 0.12+ tiene mallado adaptativo nativo (ADAPTIVE=1 en BED_MESH_CALIBRATE)

  • El escaneo con BTT Eddy es tan rápido que sondear toda la cama tampoco penaliza mucho

  • Las macros de KAMP pueden entrar en conflicto con las del Eddy

Recomendación: elimina KAMP o al menos comenta la línea [include ./KAMP/adaptive_meshing.cfg] en KAMP_SETTINGS.cfg y usa ADAPTIVE=1 directamente.

Última actualización