Mallado de cama inteligente

IMPORTANTE!!!

En versiones de Klipper desde 26 de Enero de 2024 contamos con una nueva funcionalidad en el mallado de cama... el mallado adaptativo. Ya no necesitaremos macros o extensiones externas a Klipper para disponer de esta funcionalidad!!!

Podéis ver más información aquí.

El mallado de nivelación de cama es un gran avance para corregir desviaciones en nuestra superficie de impresión pero en ocasiones se podría mejorar para que fuera más efectivo.

Gracias a la versatilidad de Klipper podremos usar la siguiente macro que permitirá hacer un mallado de nuestra cama basada en el tamaño de la pieza que queramos imprimir, mejorando de esta forma el mallado y correcciones.

Además, este sistema nos permite:

  • Reusar el mallado si el área de impresión es menor o igual que el anterior

  • Tener en cuenta nuestros offsets del sensor

  • Número de puntos por eje dinamico

  • Compatible con sistemas de nivelación que usen sus propias macros como el Klicky

Configuración

  • Descargaremos e instalaremos la macro lanzando los siguientes comandos desde nuestro terminal SSH:

cd ~
git clone https://github.com/Turge08/print_area_bed_mesh.git
~/print_area_bed_mesh/install.sh

En el caso que usemos unos path/directorios diferentes a los normales es aconsejable revisar el script de instalación para adaptarlo a nuestras necesidades.

  • Añadiremos esta macro en nuestro printer.cfg o cfg añadido como include que usemos para nuestras macros. Esta macro básicamente reemplazará a la macro BED_MESH_CALIBRATE usada por defecto

[include print_area_bed_mesh.cfg]
  • Añadiremos a nuestra configuración de Moonraker el update automático del repositorio para tener siempre actualizado de forma sencilla

moonraker.conf
[update_manager print_area_bed_mesh]
type: git_repo
path: ~/print_area_bed_mesh
origin: https://github.com/Turge08/print_area_bed_mesh.git
is_system_service: False

Debemos asegurarnos que hemos realizado el primer paso antes o veremos un error en el apartado actualizaciones de nuestra UI.

Por último deberemos ajustar nuestro laminador y/o nuestra macro de inicio

  • Si usamos BED_MESH_CALIBRATE en nuestra macro de inicio de impresión tendremos que reemplazar la llamada así:

    • BED_MESH_CALIBRATE PRINT_MIN={params.PRINT_MIN} PRINT_MAX={params.PRINT_MAX}
    • Si queremos forzar el mallado en cada impresión:

    • BED_MESH_CALIBRATE PRINT_MIN={params.PRINT_MIN} PRINT_MAX={params.PRINT_MAX} FORCE_NEW_MESH=True
    • Ajustaremos nuestro script de inicio de nuestro laminador

En el caso que actualmente usemos la macro START_PRINT pasando temperaturas del estilo START_PRINT BED_TEMP={material_bed_temperature_layer_0} EXTRUDER_TEMP={material_print_temperature_layer_0}.

Tendremos que hacer algunos ajustes en la nueva macro y en START_PRINT tal como vemos a continuación para adaptar el gcode de inicio con respecto a lo comentado inicialmente:

START_PRINT EXTRUDER_TEMP={first_layer_temperature[initial_extruder] + extruder_temperature_offset[initial_extruder]} BED_TEMP=[first_layer_bed_temperature] CHAMBER=[chamber_temperature] PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}

Con esta modificación desde START_PRINT capturamos parámetros y llamamos a nuestra nueva macro de mallado.

  • En el caso de que lancemos la macro BED_MESH_CALIBRATE directamente desde el gcode de inicio de nuestro laminador

BED_MESH_CALIBRATE PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}

Última actualización