Cuando montas una impresora 3D por primera vez —o cambias el firmware a Klipper— una de las primeras cosas que descubres es que 30mm impresos no siempre son 30mm reales. Y ahí empieza el baile de la calibración.
Este post documenta mi proceso para calibrar el rotation_distance en Klipper usando el método del cubo de calibración. 21 cubos después conseguí precisión milimétrica. Por el camino descubrí una trampa de ejes que me costó días de confusión.
El punto de partida
Mi primer cubo de calibración medía 29.5mm en el eje X en lugar de 30mm. El pie de rey no miente:
Un ~1.7% de desviación no parece mucho, pero en impresión 3D estos errores se acumulan. Las piezas no encajan, los agujeros no alinean, las tolerancias se van al traste.
La fórmula mágica
Klipper usa rotation_distance para saber cuánto se mueve el eje por revolución del motor.
Cuando el cubo mide menos de lo esperado, hay que reducir el valor:
new_rd = old_rd × (medido / esperado)
En mi caso:
new_rd = 32 × (29.5 / 30.00)
new_rd = 32 × 0.9833
new_rd = 31.47 (primera iteración)
32 × (30 / 29.5) = 32.54. El cubo salió aún más pequeño (29.4mm). Dirección completamente equivocada. La fórmula correcta es old × (real / esperado), no al revés.
La trampa de ejes de OrcaSlicer
Aquí es donde se puso interesante. Después de 5 cubos noté algo raro: el eje X de la impresora no coincidía con lo que mostraba OrcaSlicer.
Estaba imprimiendo un cubo que según el slicer medía 30mm en X, pero la impresora movía el eje Y en su lugar. El eje X de OrcaSlicer era el eje Y de la impresora, y viceversa.
Estuve dos días calibrando el eje X a la perfección — solo para descubrir que estaba ajustando la tensión de la correa Y. La solución fue simple: intercambiar el mapeo de ejes en el perfil de la impresora:
# Antes (mal — ejes intercambiados)
# OrcaSlicer X → impresora Y
# OrcaSlicer Y → impresora X
# Después (bien)
# Coincide la orientación de la cama en OrcaSlicer con la impresora real
# En mi caso: bed_custom_orientation = True + coordenadas intercambiadas
Una vez arreglado el mapeo, la calibración empezó a tener sentido. El 29.5mm era en el eje X real — y por fin pude calibrar correctamente.
21 iteraciones
La calibración no se hace una vez y ya. Cada ajuste en el firmware cambia ligeramente el comportamiento. Mi proceso:
- Imprimir cubo 20×20×20mm (2 paredes, 15% infill)
- Esperar ≈25 minutos
- Medir con pie de rey en X, Y, Z
- Aplicar la fórmula para cada eje
- Actualizar
printer.cfgy reiniciar Klipper - Repetir hasta que los tres ejes den 20.00mm ±0.05mm
Esto lo hice 21 veces. Cada cubo es una iteración. Algunas eran ajustes grandes (rd llegó a 38.5), otras micro-correcciones de décimas de milímetro.
La torre de cubos es mi recordatorio visual de que la impresión 3D es iterativa. No sale perfecto a la primera, pero cada intento te acerca un poco más. Y tenerlos apilados en la mesa es extrañamente satisfactorio.
Ajustes finales
Materiales usados:
- PETG básico Esun (translúcido) a 215°C
- Cama: 65°C
- Velocidad: 60mm/s exterior, 100mm/s interior
- Layer height: 0.2mm
- OrcaSlicer con perfil ajustado
Lo que aprendí
- Verifica el mapeo de ejes primero. Antes de imprimir un cubo, confirma que los ejes de OrcaSlicer coinciden con la impresora. Imprime una flecha para verificar.
- No confíes en el primer cubo. Siempre imprime al menos 2 para confirmar.
- Mide siempre en el mismo punto (centro de cada cara).
- El pie de rey digital es esencial. Mejor inversión de 15€.
- Documenta cada iteración. rd anterior, medida, rd nuevo. Sino perderás la cuenta.
- La paciencia paga. 21 cubos parecen muchos, pero ahora cualquier pieza sale con las medidas correctas desde la primera capa.
💬 Comentarios