Ir al contenido principal

Auto-calibración con end stops en la Kossel de Anycubic

Autor: Chito Correción: Daemonium, Roberto, Alex
Vamos a explicar como realizar un autonivelado en la impresora Anycubic linear plus, aunque el método es válido también para la pulley.
Antes de empezar, un poco de teoría.

I. Teoría

Introducción
Marlin incluye una función de "Nivelación de la cama" que compensa las imperfecciones al tomar medidas de la distancia de la boquilla "Nozzle" de la  cama "bed" en 3 o más puntos y luego ajustar la posición del nozzle a lo largo de la impresión para que permanezca a una distancia constante de la cama.
Marlin te permite tomar estas medidas de cama usando nada más que un pedazo de papel, pero para una mejor experiencia de impresión hay una opción interesante, es la de instalar una sonda de cama (también llamada un “Z probe”o sonda de Z). Recordemos que Z es la altura desde la cama hasta el Nozzle.
  • Este método no puede nivelar una cama de una impresora mal ensamblada.  Es necesario que exista una buena perpendicularidad de las torres con la cama.
  • Es necesario siempre nivelar bien el hardware de forma manual para luego nivelar con este método.
  • Algunas personas eliminan los tornillos de los carros móviles para ganar algunos milímetros en la altura de impresión (En Z). Además estos tornillos pueden moverse y hacer que la calibración se pierda. 
  • Algunos recomiendan eliminar la palanca de micro-interruptor, dará menos problemas en las lecturas, nuestra experiencia fue lo contrario; nos imaginamos que dependerá de cada micro-interruptor. (Comparación de la dispersión de los datos con y sin palanca en un micro-interruptor)

Métodos de nivelación de la cama que usa Marlin
Marlin incluye varios métodos de sondeo y nivelación, son:
1)"3 points", 3 puntos de prueba de un triángulo para determinar la altura y la inclinación del plano de la cama. Durante la impresión la boquilla se ajusta en X, Y y Z, así que usted puede incluso imprimir en una cama mal inclinada. Sin embargo, este método requiere una superficie muy plana y uniforme.
2)“Linear Grid” . Rejilla lineal,  sondas de una cuadrícula (tanto como sea posible en el DELTA) para determinar la altura y la inclinación de la cama. Después de funciona de igual manera como 3 puntos de nivelación.
3)“Bilinear Grid”, Rejilla bilineal, prueba con una rejilla de la misma manera como la rejilla lineal, pero durante la impresión en el eje Z se ajusta según interpolación bilineal entre los puntos medidos. Esto permite que la impresora compensar una superficie desigual.
4)“Mesh Bed Leveling, Nivelación de la cama por  malla, funciona de la misma manera como la "Grilla bilineal" pero tiene diferentes parámetros G29. (Esta función es sustituida por combinando el manual sonda opción con nivelación bilineal y no se incluirá en versiones futuras de Marlin).
5) “Unified Bed Leveling” , Nivelación de la cama unificada, combina elementos de nivelación bilineal y planar e incluye utilidades extras para ayudar a mejorar la exactitud de la medida, especialmente para los deltas.
Nota: UBL, Unified Bed Leveling | Marlin 3D Printer Firmware
Es un método unificado del Marlin para nivelar la cama de impresión. Este método es equivalente al método eurístico de calibrado de las placas de 32 bits con Smothieware. Y así mismo es equivalente al método de calibración de 3 a 7 puntos de escher3D.






II Preparación (Software y hardware)

Materiales necesarios para hacerte una sonda Z "Z probe".
Sonda Z, debajo del ventilador de capa y el extrusor
 
  • Imprimir la sonda removible  de nivel Z para la cama de la Anycubic Kossel https://www.thingiverse.com/thing:1976680 (hay dos versiones).
  • 1x 20mm micro-interruptor  ( final de carrera)
  • 1x M3x8 tornillo (socket headed cap screw ideally, for use with an Allen key)
  • 1x M3 tuerca
  • 2x M2.5x15 tornillos
  • 2x M2.5 tuercas 
  • Cable
  • Estaño
  • Soldador
  • Termoretráctiles o cinta aislante 
  • 2 jumpers o cables con conectores hembra 
  • Marlin Fan (modificado por Héctor) 1.1.4

    Nota 1: M3x8: tornillo de métrica 3 mm y 8 mm de largo.

    Sonda V2, aún sin soldar los cables
    Nota 2: los tornillos de 2.5 mm son difíciles de conseguir en España en cualquier ferreretería, las tiendas Leroy Merlin en su sección de microtornillería los tienen . Sin embargo aún así no tienen muchas medidas. Enlace Leroy Merlin (microtornillería, menos de 5 mm)
    Nota 3: Sonda removible V2 es más grande se monta en la misma posición anterior V1, pero tiene la V2 del desplazamiento de aproximadamente (X = 0, Y = 0, Z =-24.1) la ventaja de V2 es que permite explorar un área más grande de la cama, ya que el microinterruptor estará justamente debajo del nozzle.

    Hay que hacer algunos cambios en el Marlin (el firmware de nuestra impresora). No todos son necesarios, dependerá de tus necesidades.


    IIA. Cambios en el software "Marlin"
    Marlin Fan 1.1.4(modificado por Héctor)
    1)EEPROM deberá estar activa. Para poder grabar los ajustes después de lanzar la calibración, es importante tener activa la grabación en EEPROM descomentada(eliminar la //):
    Código:
    #define EEPROM_SETTINGS // Enable for M500 and M501 commands


    2)Número de puntos en la calibración
    A mayor puntos de calibración el ajuste será superior.
    Marlin acepta como máximo 49 puntos. Colocar "7" que significa que son 7x7, 49 puntos de prueba, por defecto trae  4. Recuerda que esta línea debe estar descomentada. (Eliminar "//")
    El mínimo es 4x4=16 puntos y el máximo es 7x7=49 puntos
    Ruta: Configuration.h/ Delta Settings, el siguiente parámetro.
    Código
    #define DELTA_CALIBRATION_DEFAULT_POINTS 4


    3) Cambiando el rango del Z probe (Si tienes una sonda grande en altura, más de 20 mm (en mi caso la sonda estaba entre 20 y 30 mm de altura), deberás modificar este parámetro en el Marlin)
    Utilice estos ajustes para especificar la distancia (mm) para levantar la punta de prueba (o para bajar  la cama).  
    Código
    // For M851 give a range for adjusting the Z probe offset
    #define Z_PROBE_OFFSET_RANGE_MIN -30 //chito valor anterior -20
    #define Z_PROBE_OFFSET_RANGE_MAX 30 //chito valor anterior 20

    4)Para poder bajar con el pronterface  a valores negativos el nozzle en Z (-Z) para ajustar la altura del offset Z-MIN.
    Hay que modificar en el Marlin para que te deje bajar a valores negativos, el de serie no deja.
    Código
    #define Z_MIN_POS -10 // chito, lo normal es 0

    Precaución: si introduces un valor negativo puedes golpear el cristal con el nozzle, si no lo haces de la forma correcta, es decir si no metes el offset de la sonda.

    II b. Preparación en el hardware
    Conexiones del micro-interruptor a la placa Trigorilla
    Se conecta los cables al end stop (microinterruptor) y se fijan con los tornillos del end stop a la pieza impresa.
    Deberás colocar dos conectores hembra para conectar a los dos pines de la placa.

    Microinterruptor                      Trigorilla
    COM (común)                            ---> GND (Trigorilla)
    NO (normalmente open)           ---> Z- (Trigorilla)
    Nota: no importa el color del cable o el orden de conexión
    Sonda con cables al microinterruptor "endstop"
    Conexión a la Trigorilla. Conectar a los END-STOP un cable al PIN D18 "señal" y el otro a GND (Columna Z-). Los dos pines superiores. Cuidado el pin de abajo tiene 5V, puedes provocar un corto si lo conectas en ese sitio
    Colocamos el probe con ayuda del tornillo para fijar a la base que soporta el hotend, técnicamente no debería importar el lado.Se aconseja colocarlo del lado de Z para poder cuadrar mejor el nozzle con el micro-interruptor que estén alineado verticalmente.

    Revisar la lógica de los "end stops"
    Utiliza el comando M119 desde el pronterface , este te dará el estado de los end stops. Deberá mostrar estas dos lecturas, si está bien conectado a las patillas del micro-interruptor.
    Simbología: La palabra "TRIGGERED" significa activo. "Open" es abierto.

    M119 "sin pulsar el micro-interruptor del Z Probe"
    SENDING:M119
    Reporting endstop status
    x_max: open
    y_max: open
    z_min: open --> nuestra sonda
    z_max: open
    »> M500

    M119 "después de pulsar el micro-interruptor del Z Probe".
    Mantén apretado el micro-interruptor y haces de nuevo M119 con el pronterface
    SENDING:M119
    Reporting endstop status
    x_max: open
    y_max: open
    z_min: TRIGGERED --> nuestra sonda
    z_max: open
    »> M500

    Si no muestra estás lecturas tendrás que modificar la posición de los cables en el micro-interruptor o invertir en el Marlin.
    Revisar este código, yo no lo he tocado:
    #define Z_MIN_ENDSTOP_INVERTING true
    #define Z_MIN_PROBE_ENDSTOP_INVERTING true

    III Procedimiento para la auto-calibración





    Método actualizado el 12/09/2017 (hay cambios con respecto al vídeo)
    1) M851 Z0 Asignar un valor 0  al offset  desde el programa pronterface o el de tu elección.
    2) M500 Grabas valores en la EEPROM 
    3) M501 Cargas los nuevos valores
    4) M503 Confirmas que están cargados 
    5) G28 (Para hacer auto homing, y que la impresora tenga valores de referencia, desde los finales de carrera)
    6) M665 BXX (donde sustituiremos XX por el valor que corresponda a nuestra impresora según detallamos a continuación)
    B90 (modelo linear plus)
    B60 (linear/pulley)
    Esto define el radio de calibración en la cama. 
    7) M500 Grabas valores en la EEPROM
    8) M501 Para leer los valores
    9) G33 P7 (para iniciar el autocalibrado con la opción P7 que es la más completa, revisa 49 puntos sobre la superficie de la cama, en varias iteraciones)
    Llegados a este punto la impresora realizará el autocalibrado, cuando termine veremos en la pantalla LCD el mensaje de Calibration OK. Este proceso demora entre 3 y 5 min. aproximadamente.
    Nota: si está definido en el Marlin, con solo poner G33 lo hará correctamente.
    10) Quitas la sonda
    11) Bajas con el Pronterface o por gcode (G1 Z-xx.xx) hasta que roce el papel encima de la cama con la punta del hotend.
    12) La lectura que te da en pantalla es el offset.
    13) M851 Z-xx.xx Asignas el nuevo offset (M851 Z-19.29 en mi caso)
    14) M500 Grabas valores 
    15) M501 Cargas los nuevos valores 
    16) M503 Confirmas que están cargados

      ¡Felicidades!, es hora de imprimir.


    --------------------------------------------------------------------------------------------------
      Información extra. 


     Cambio de velocidad del proceso de auto-calibrado
    También os aconsejo bajar la velocidad de desplazamiento para la prueba, porque si no literalmente va dando golpes sobre la cama. Se ha reducido a la mitad:
    Código en el Marlin
    // X and Y axis travel speed (mm/m) between probes
    #define XY_PROBE_SPEED 2000 //4000


    Otras formas para grabar el offset 
    (recomiendo la primera es más fácil)
    a) Introducirlo a través del LCD, para ello seguimos la siguiente ruta: menu/control/movimiento/desfase Z: -23.1 (moviendo la perilla)
    b) Cambiando en el Marlin. Indicamos también offset de la posición del micro- interruptor con respecto al nozzle, en este caso centrado a unos -23.1 mm bajo en nozzle. Busca este código.
    Código Marlin
    #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left +right [of the nozzle]
    #define Y_PROBE_OFFSET_FROM_EXTRUDER 0 // Y offset: -front +behind [the nozzle]
    #define Z_PROBE_OFFSET_FROM_EXTRUDER 23.1 //Z offset: -below +above [the nozzle]

     Usando el comando G33
    Después de tener el firmware preparado, el comando G33 nos permite ajustar varias cosas, como la altura, el delta radius, los ángulos de las torres y los offsets de los endstops de las torres.

    Se puede elegir entre varios ajustes, con G33 P1 únicamente baja recto y comprueba la altura, con P2 calcula altura, end stops y delta radius, etc.
    A partir de P4, realiza una media tomando distintos puntos de referencia sobre la cama, y el número de puntos de medida depende de el valor que indiquemos. Por ejempo, si ponemos G33 P4 realizará la calibración con (4x4) 16 puntos sobre la cama, con P5 son 25 puntos, etc. Así hasta un máximo de 49 puntos (P7)

    Enviado por Marcos "Comprobado con un amigo ... G33 P7 y no es necesario hacer la corrección de concavidad convexidad, la hace automáticamente"

    Ajustando la altura Z en el centro
    G33 P1 --> Usa un solo punto (P1) para revisar la altura "Z".
    M500 (Guarda en el EEPROM)
    M501 (Restaura los parámetros de EEPROM)
    G33 P2 --> Indica la altura central , las alturas de las torres y  el delta radius.
    G33 P4... P7 --> A partir de aquí hace una media de puntos. Solo puedes meter un P?.

    Se puede elegir entre varios ajustes, a saber:
    G33 P1 únicamente baja recto y comprueba la altura en Z,
    G33 P2 calcula altura central , la de cada torre (end stops) y delta radius, etc.
    G33 P4 en adelante, realiza una media tomando distintos puntos de referencia sobre la cama, y el número de puntos de medida depende de el valor que indiquemos. Por ejemplo, si ponemos G33 P4 realizará la calibración con (4x4) 16 puntos sobre la cama, con P5 (5x5) son 25 puntos, etc. Así hasta un máximo de 49 puntos (P7, 7x7).

    Siempre terminaremos con un
    M500 (Guarda en el EEPROM)
    M501 (Restaura los parámetros de EEPROM)

    Extraído G33 - Delta Auto Calibration . Configurar el Marlin. Unified Bed Leveling.

    Para obtener aún más afinación en la calibración
    Para mejorar el cálculo de desviación estándar que se usa para verificar la nivelación. Con esto duplicamos los datos del muestreo. En el 99,99% de los casos no es necesario.
    Código original en el Marlin
    // Use double touch for probing
    //#define PROBE_DOUBLE_TOUCH

    Descomentar  y comentar
    // Use double touch for probing // baja dos veces por punto de calibración
    #define PROBE_DOUBLE_TOUCH// chito te permite mejorar la calibración

    Webgrafía:
    1. Telegram Anycubic. Algunas fotos y vídeos son extraídos de esta red social
    2. La guía paso a paso para tunear tu impresora 3D y conseguir piezas de la máxima calidad. Javier Loureiro. (Artículo sobre el Marlin). Staticboards. Coruña, España. https://www.staticboards.es/blog/marlin-instalacion-configuracion/
    3. Removable Bed Levelling Probes for Anycubic Kossel Linear. URL: https://www.thingiverse.com/thing:1976680
    4. G33 - Delta Auto Calibration . URL: http://marlinfw.org/docs/gcode/G033.html
    5. Calibración automática. Jasobrino. Foro de Spainlabs. URL: https://www.spainlabs.com/foros/tema-Anycubic-Delta-Kossel-Pulley-Linear-Plus?page=5 
    6. Unified Bed Leveling. URL: http://marlinfw.org/docs/features/unified_bed_leveling.html

    Comentarios

    1. muy bueno , buen trabajo , aunque casi nadie te lo diga , casi todos han pasado por aqui

      ResponderEliminar
    2. Muy buena información. Gracias por tu tiempo ;-)

      ResponderEliminar
    3. Gracias, si os ayudo me siento complacido

      ResponderEliminar
      Respuestas
      1. MUCHAS GRACIAS, claro que nos ayudas, no sabes lo facil que lo pones

        Eliminar
    4. Muchisimas gracias, vamos a imprimir... Yeaaaahhhh¡¡¡¡¡

      ResponderEliminar

    Publicar un comentario