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

Malla nivelación de cama

Configuración completa de la malla de nivelación de cama en Klipper: bed_mesh, mallado adaptativo nativo, perfiles y compensación física.

Ahora que ya tenemos nuestra cama correctamente nivelada es el turno de hacer una malla con medidas de nuestra cama para poder ajustar/minimizar cualquier desviación de la misma y que nuestras primeras capas sean siempre lo más perfectas posible.

Podéis encontrar la documentación oficial de Klipper:

Configuración del mallado de cama

Para poder realizar un mallado de nivelación de nuestra cama es fundamental tener en cuenta que antes deberemos de definir las características.

Dentro de nuestro printer.cfg crearemos, si no la tenemos ya, la sección [bed_mesh] a continuación os vamos a mostrar un ejemplo:

En la configuración de [bed_mesh] de ejemplo podremos encontrar los siguientes parámetros importantes:

  • speed, creo que es autoexplicativo y hace referencia a la velocidad de nuestra máquina durante el proceso

  • mesh_min y mesh_max son las coordenadas de inicio y final del área donde realizaremos nuestro mallado con respecto a nuestro sensor... tenemos que tener en cuenta que estos puntos de inicio y final permitan que nuestro sensor pueda llegar a hacer las medidas si no nos indicará problemas al aplicar el proceso de mallado indicando, por ejemplo, que nos hemos salido de las coordenadas

  • probe_count, es el que indicará el número de sondeos en cada eje... normalmente y dependiendo del estado de nuestra cama 5,5 (25 puntos) suelen ser más que suficientes

  • fade_start fade_end, estos parámetros muy útiles permiten ajustar la desviación inicial de nuestra cama hasta una altura para asegurar una correcta dimensionalidad de nuestras piezas.

    • fade_start, por defecto 1 es la altura de Z a partir de la cual empezaremos la corrección

    • fade_end, por defecto 0 y es la altura de Z que usará para completar las correcciones, normalmente se suele usar 10

Ejemplo visual de las correcciones fade
  • faulty_regions, es otra función interesante en el caso de que tengamos zonas en las que nuestro sensor falle o reporte medidas incorrectas como camas con imanes integrados o PEI que con su campo magnético pueden afectar a las lecturas de algunos sensores. Esta función puede ayudar a compensar este efecto realizando un sondeo alrededor del punto para obtener valores de compensación en ese punto. La imagen siguiente puede ayudar a entender mejor su funcionamiento, así como el ejemplo de configuración.

Mallado de cama con sensor

Lo más aconsejable por precisión y comodidad es el uso de un sensor de nivelación que nos ayude desde el proceso.

Podemos lanzar el proceso de calibración desde las opciones de vuestra UI Mainsail o Fluidd o por consola lanzando BED_MESH_CALIBRATE, podemos ejecutar BED_MESH_CLEAR para limpiar los valores, una vez efectuado el mallado podemos guardarlo con SAVE_CONFIG.

Un valor añadido de la UI es que tiene un visualizador que nos permite ver el estado de nuestro mallado y por ende nuestra cama.

IMPORTANTE!!! Habilitar/Cargar un perfil de malla de nivelación:

Antiguamente Klipper cargaba por defecto la malla default al iniciarse, actualmente no es así. Si queréis que vuestra malla sea efectiva durante vuestras impresiones tenemos tres opciones.

Cargar la malla de forma manual, es algo engorroso ya que podemos olvidarnos.

Cargar la malla en nuestra rutina de inicio de impresión en la macro que usemos, START_PRINT o el nombre que usemos, o en el gcode de inicio de nuestro laminador aunque os aconsejamos siempre usar la macro ya que es la forma más efectiva... tan solo tendremos que añadir BED_MESH_PROFILE LOAD=default antes de comenzar la impresión.

También podemos añadir la siguiente macro para que haga el proceso de igual forma que se hacía antes del cambio en Klipper.

En este caso adaptaremos el nombre de malla si usamos un nombre diferente, en el caso que usemos diferentes mallas deberemos de tenerlo en cuenta para cargar por el método que sea la correcta antes de iniciar la impresión.

Mallado de cama adaptativo

Desde enero de 2024, Klipper incluye mallado adaptativo de forma nativa. Ya no necesitas macros externas como KAMP para esta funcionalidad.

El mallado adaptativo básicamente nos permite realizar el proceso de sondeo de forma dinámica en la zona donde nuestra pieza va a imprimirse, mejorando de esta forma la efectividad del mallado y sus correcciones.

El área de sondeo adaptativo se va a definir dependiendo del área de impresión de nuestras piezas, incluyendo un margen a estas que podremos definir en nuestra configuración. El siguiente paso, una vez definida de forma automática esta área de sondeo, el propio sistema va a escalar el número de puntos a sondear dependiendo de la proporción entre el área normal de sondeo y el área adaptativa calculada para los objetos a imprimir.

Para usar el mallado adaptativo nativo de Klipper va a ser muy sencillo porque básicamente hemos de activar el procesado de objetos de Klipper :

También es necesario el procesado de gcodes en Moonraker:

Deberemos asegurarnos que nuestro laminador tenga habilitada el etiquetado de objetos:

Por último añadiremos la llamada a la macro BED_MESH_CALIBRATE dentro de nuestra macro START_PRINT (o nombre que usemos en vuestro caso), o en nuestro gcode de inicio si lo tenemos fuera de esta:

Como parámetros en BED_MESH_CALIBRATE para utilizar el mallado adaptativo usaremos:

  • ADAPTIVE=1 para habilitarlo

  • ADAPTIVE_MARGIN=5 donde cambiaremos el 5 por el margen que queramos

Tenéis más información y detalle como siempre en la documentación oficial de Klipper.

Mallado de cama manual

También tienes la opción de realizar un mallado de tu cama sin sensor, para ello podremos lanzar BED_MESH_CALIBRATE METHOD=manual Klipper nos irá dando información durante el proceso:

  • Haremos un home de la máquina con G28

  • Iniciaremos la calibración lanzando el comando BED_MESH_CALIBRATE METHOD=manual

  • Mediante comandos iremos bajando lentamente el nozzle hacia la cama usando TESTZ Z=-1 hasta que estemos cerca para en ese momento realizar movimientos más pequeños usando TESTZ Z=-.01 o incluso menos hasta que nuestro nozzle roce con el papel. Podemos alternar el TESTZ con valores positivos/negativos y mayores/menores hasta que tengamos nivelado a nuestro gusto en ese momento lanzaremos un ACCEPT y el asistente irá al siguiente punto de sondeo

  • Al finalizar el sondeo haremos un SAVE_CONFIG que nos guardará la malla "default" o realizaremos un BED_MESH_PROFILE SAVE="manual" y un SAVE_CONFIG para guardar la malla con el nombre "manual"

Para cargar el perfil creado manual deberéis aseguraros que vuestra macro o gcode de inicio de vuestro laminador lance la macro BED_MESH_PROFILE LOAD=manual .

A continuación os facilitamos una macro para poder lanzar el proceso de forma cómoda:

zero_reference_position — referencia Z de la malla

zero_reference_position define el punto de la cama donde Z = 0. La malla se ajusta para que la compensación sea cero en ese punto, lo que garantiza que el Z-offset siga siendo válido en toda la cama.

Si haces home en el centro de la cama o usas un sensor tipo Beacon/Eddy que calibra el Z-offset en un punto fijo, configura zero_reference_position en ese mismo punto. Así evitas que la compensación de malla desplace la Z-offset en la zona de home.

La opción anterior relative_reference_index está deprecada — si la tienes en tu cfg, sustitúyela por zero_reference_position.


Resolución de problemas

Síntoma
Causa probable
Solución

El mallado sondea toda la cama aunque uses ADAPTIVE=1

[exclude_object] no está activo o el laminador no etiqueta objetos

Activa [exclude_object] en printer.cfg y enable_object_processing: True en moonraker.conf

Primera capa varía mucho de impresión a impresión

La malla no se carga en cada impresión

Añade BED_MESH_CALIBRATE ADAPTIVE=1 en PRINT_START en lugar de cargar un perfil guardado

El mallado adaptativo usa menos puntos de los esperados

Objeto muy pequeño → la escala reduce el probe_count

Normal — el sistema escala proporcionalmente. Aumenta probe_count base si necesitas más resolución

Error "move out of range" al iniciar el mallado

mesh_min/mesh_max fuera de los límites de la impresora con el offset del sensor

Usa la macro CALCULATE_BED_MESH para calcular los valores correctos

La malla empeora entre capas (delaminación)

fade_end demasiado bajo o fade_start y fade_end muy próximos

Usa fade_start: 1 y fade_end: 10 como mínimo

Puntos erróneos en zonas con imanes del PEI

Interferencia magnética con el sensor inductivo

Configura faulty_regions para esas zonas

Compensación física de cama

En ocasiones nos podemos encontrar con que nuestra plataforma de impresión tenga unas desviaciones bastante grandes, siempre entendiendo que nuestras mediciones fueron fiables, y el sistema de compensación de malla del sistema puede tener problemas para compensar estas.

Un método tradicional ha sido la de usar cinta de aluminio cortada en secciones para intentar compensar estas desviaciones... y vuelvo a recalcar... en aquellos casos en los que tengamos unas medidas fiables de nuestro sensor y no tengamos otra forma alternativa de compensar estas desviaciones

En las anteriores imágenes de ejemplo podemos ver la plataforma de impresión de una impresora y como utilizando estas cintas por secciones podemos compensar estas desviaciones tal como podeis ver en las siguientes imágenes de como afectó la corrección al mallado:

Siempre que el número de capas de cinta de aluminio no sean excesivas este método no suele afectar a la eficiencia en la temperatura de la cama caliente y en ocasiones incluso puede mejorarla a distribuir un poco mejor esta.

Para poder realizar estas compensaciones hemos creado una herramienta que simplemente exportando nuestro printer.cfg va a obtener la configuración de vuestra impresora y mallado actual y con el nombre default, que ha de ser fiable, y introduciendo el grosor de la cinta de aluminio que vayáis a utilizar (a menor grosor mejor ajuste fino) os va a proporcionar el número de cuadrantes a cubrir con x número de capas de cinta de aluminio.

Una vez cargado vuestro printer.cfg la herramienta os mostrará los datos obtenidos de esta como el tamaño de impresión XY, la matriz del mallado utilizado, y los rangos de desviaciones calculados:

Por otro lado os va a sugerir el tamaño de los cuadrantes de cinta de aluminio y mostrar un mapa de cuantos colocar en cada cuadrante:

También nos va a mostrar una estimación de como deberia quedar el mallado una vez aplicada la cinta de aluminio, es solo a modo de referencia:

Por último también disponemos de una gráfica para visualizar el estado de nuestra malla cargada así como los puntos que se tomarán de referencia (los de mayor altura) para realizar los cálculos y otra pestaña para mostrar los datos capturados de vuestra configuración:

Aunque lo ideal es que vuestra plataforma de impresión sea lo más plana posible o el sistema de nivelación compense estas desviaciones este método casero ayuda a minimizar estas desviaciones y a mejorar significativamente los resultados. Espero que os sea de ayuda como nos ha sido a nosotros en muchas ocasiones.

Última actualización