Links

Nivelación manual de cama

Como paso previo a otros tests debemos asegurarnos que nuestra cama o base de impresión esté completamente nivelada.
Para ello usaremos las funciones BED_SCREWS_ADJUST o SCREWS_TILT_CALCULATE de Klipper dependiendo de si contamos o no con sensor de nivelación.
Podéis encontrar la documentación oficial de Klipper:

Definición de puntos de ajuste

Para poder realizar una nivelación manual con los tornillos de ajuste de nuestra base de impresión, lo primero que deberemos hacer es definir los puntos donde emplazar nuestro hotend o sensor coincidiendo con nuestros puntos de anclaje para nuestra cama.
Mediremos, con una regla por ejemplo, las distancias entre nuestro punto X0Y0 a los puntos de anclaje de nuestra cama para añadirlos a nuestra configuración. En el caso de que usemos sensor es este el que idealmente y siempre que sea posible ha de quedar en las coordenadas de los puntos de anclaje.
Procederemos este ajuste creando una nueva sección en nuestro pinter.cfg (o en alguno de sus includes si nuestra configuración es modular) [bed_screws] o [screws_tilt_adjust] dependiendo del sistema elegido.
Ejemplo
Definición [bed_screws]
Definición [screws_tilt_adjust]
Nivelación manual BED_SCREWS_ADJUST, importante calcular las coordenada para que el nozzle esté en la posición más cercana al punto de anclaje:
[bed_screws]
screw1: 70,47
screw1_name: Front left screw
screw2: 70,213
screw2_name: Rear left screw
screw3: 235,47
screw3_name: Front right screw
screw4: 235,213
screw4_name: Rear right screw
Podeis encontrar un asistente para poder generar la configuración [bed_screws] de una forma sencilla con la siguiente calculadora:
Básicamente deberemos de añadir el tamaño de nuestra cama en X_BED_SIZE/Y_BED_SIZE (1) y después poner las coordenadas donde se encuentran los tornillos de ajuste (2) de nivelación de vuestra cama. Con esta información se generará la configuración (3) para vuestra sección [bed_screws] que solamente deberemos copiar a nuestro printer.cfg:
Nivelación asistida por sensor SCREWS_TILT_CALCULATE, importante calcular las coordenada para que el sensor esté en la posición más cercana al punto de anclaje:
# Ejemplo Ender 3
[screws_tilt_adjust]
screw1: 117,117
screw1_name: Central screw
screw2: 50,50
screw2_name: Front left screw
screw3: 50,215
screw3_name: Rear left screw
screw4: 215,50
screw4_name: Front right screw
screw5: 215,215
screw5_name: Rear right screw
horizontal_move_z: 10
speed: 150
screw_thread: CW-M3
En el caso de usar SCREWS_TILT_CALCULATE es importante:
  • Definir como screw1 un punto central de nuestra cama al tomar este asistente de nivelación este como el punto de referencia, de esta forma podremos obtener una nivelación óptima siempre y cuando nuestra cama no se encuentre combada.
  • horizontal_move_z será la altura a la que nuestro eje Z se coloque al realizar los traslados de un punto a otro de sondeo
  • speed la velocidad en los movimientos de traslado
  • screw_thread, quizás el más importante, donde indicaremos la dirección CW o CCW para indicar la reducción de distancia entre nuestra cama y nozzle por defecto CW pero si nuestro sistema funciona a la inversa deberemos ajustarlo... y la métrica de nuestro tornillo de ajuste siendo M3, M4 o M5 los valores aceptados. Opciones posibles: CW-M3, CCW-M3, CW-M4, CCW-M4, CW-M5, CCW-M5
También encontrar un asistente para poder generar la configuración [screws_tilt_adjust] de una forma sencilla con la siguiente calculadora:
Básicamente deberemos de añadir el tamaño de nuestra cama en X_BED_SIZE/Y_BED_SIZE (1), los offsets de nuestro sensor de nivelación (2), un margen de seguridad que aconsejamos de 5mm como minimo y más si teneis algún sistema de fijado de superficie de impresión como clips (3), y después poner las coordenadas donde se encuentran los tornillos de ajuste (4) de nivelación de vuestra cama. Con esta información se generará la configuración (5) para vuestra sección [screws_tilt_adjust] que solamente deberemos copiar a nuestro printer.cfg:
A continuación podéis ver todas las opciones de esta sección, podéis ver la versión actualizada desde la documentación de Klipper:
[bed_screws]
#screw1:
# The X, Y coordinate of the first bed leveling screw. This is a
# position to command the nozzle to that is directly above the bed
# screw (or as close as possible while still being above the bed).
# This parameter must be provided.
#screw1_name:
# An arbitrary name for the given screw. This name is displayed when
# the helper script runs. The default is to use a name based upon
# the screw XY location.
#screw1_fine_adjust:
# An X, Y coordinate to command the nozzle to so that one can fine
# tune the bed leveling screw. The default is to not perform fine
# adjustments on the bed screw.
#screw2:
#screw2_name:
#screw2_fine_adjust:
#...
# Additional bed leveling screws. At least three screws must be
# defined.
#horizontal_move_z: 5
# The height (in mm) that the head should be commanded to move to
# when moving from one screw location to the next. The default is 5.
#probe_height: 0
# The height of the probe (in mm) after adjusting for the thermal
# expansion of bed and nozzle. The default is zero.
#speed: 50
# The speed (in mm/s) of non-probing moves during the calibration.
# The default is 50.
#probe_speed: 5
# The speed (in mm/s) when moving from a horizontal_move_z position
# to a probe_height position. The default is 5.
A continuación podéis ver todas las opciones de esta sección, podéis ver la versión actualizada desde la documentación de Klipper:
[screws_tilt_adjust]
#screw1:
# The (X, Y) coordinate of the first bed leveling screw. This is a
# position to command the nozzle to so that the probe is directly
# above the bed screw (or as close as possible while still being
# above the bed). This is the base screw used in calculations. This
# parameter must be provided.
#screw1_name:
# An arbitrary name for the given screw. This name is displayed when
# the helper script runs. The default is to use a name based upon
# the screw XY location.
#screw2:
#screw2_name:
#...
# Additional bed leveling screws. At least two screws must be
# defined.
#speed: 50
# The speed (in mm/s) of non-probing moves during the calibration.
# The default is 50.
#horizontal_move_z: 5
# The height (in mm) that the head should be commanded to move to
# just prior to starting a probe operation. The default is 5.
#screw_thread: CW-M3
# The type of screw used for bed level, M3, M4 or M5 and the
# direction of the knob used to level the bed, clockwise decrease
# counter-clockwise decrease.
# Accepted values: CW-M3, CCW-M3, CW-M4, CCW-M4, CW-M5, CCW-M5.
# Default value is CW-M3, most printers use an M3 screw and
# turning the knob clockwise decrease distance.
Deberemos definir estos puntos dependiendo de nuestra máquina, la ubicación de los tornillos de ajuste de nuestra cama y el tamaño de nuestro hotend asegurando que mecánicamente es viable la ubicación del punto de sondeo.

Nivelación Manual

Una vez realizado el cambio en nuestra configuración y validada que no de problemas, comenzaremos con el proceso que podemos hacer desde la ventana terminal/consola:
# Hacemos un home de todos los ejes
G28
# Lanzamos el asistente de nivelación de cama
BED_SCREWS_ADJUST
  • La máquina moverá el cabezal de impresión al primer punto de sondeo y con el típico papel ajustaremos el tornillo/rueda a nuestro gusto.
  • Si hemos tenido que ajustar el tornillo más de 1/8 de giro de tornillo usaremos en el terminal/consola el comando ADJUSTED y si no hemos necesitado apenas ajuste ACCEPT.
  • Cuando terminemos el asistente o ciclo de nivelación finalizaremos con ABORT… ¡Y ya podremos continuar con los siguientes pasos en nuestra calibración!!!
Una vez hayamos efectuado ambos procesos ejecutaremos Z_ENDSTOP_CALIBRATE que llevara nuestro nozzle a la posición Z =0 correcta.

Nivelación manual cama con sensor

En el caso de que dispongamos un sensor de nivelación, podemos utilizarlo para simplificar y hacer más fiable la nivelación manual de nuestra cama.
Klipper nos facilita dos macros que nos van a ayudar en la nivelación asistida de nuestra cama, os aconsejamos emplear SCREWS_TILT_CALCULATE

SCREWS_TILT_CALCULATE

# Hacemos un home de todos los ejes
G28
# Lanzamos el asistente de nivelación de cama con sensor de nivelacion
SCREWS_TILT_CALCULATE
  • Lanzaremos un comando G28 para hacer un home!!!
  • Lanzaremos el comando SCREWS_TILT_CALCULATE desde nuestra consola que efectúa un sondeo con el sensor de los puntos de lecturas definidos en la sección [screws_tilt_adjust] de nuestro printer.cfg que ya definimos al inicio de la guía.
Es aconsejable realizar este proceso con la cama a temperatura de impresión. En el caso del nozzle entre 140-170 grados si contamos con un sensor inductivo o similar que normalmente se ven afectados por la temperatura.
El comando SCREWS_TILT_CALCULATE dispone de un parámetro llamado DIRECTION, con este parámetro podemos indicar si nuestro sistema de ajuste no puede o esta en su máximo en una de nuestras direcciones haciendo imposible el ajuste sugerido.
Por ejemplo si nuestro sistema de ajuste está al máximo en CW en algún punto lanzaremos el comando indicando que nuestra dirección de ajuste sea CCW:
SCREWS_TILT_CALCULATE DIRECTION=CCW
  • Una vez hechas las lecturas en esos puntos nos recomendará el ajuste manual en los tornillos de ajuste de nuestra cama. Las correcciones nos las propone usando el sistema de agujas del reloj, indicando las horas:minutos a efectuar en el giro... además del sentido de este, siendo CW en el sentido de las agujas del reloj y CCW en contra.
Captura de SCREWS_TILT_ADJUST una forma sencilla de ajuste manual asistida por el sensor si disponemos.
  • Es recomendable lanzar el comando SCREWS_TILT_CALCULATE varias veces hasta que el ajuste a realizar sea mínimo o inexistente