Ajuste de límites de impresión

Configurar correctamente nuestro Marlin para que el nozzle se mueva correctamente por la zona de impresión es muy importante.

En ocasiones, ya sea por montar algún mod en nuestra máquina o simplemente porque queremos poner un Marlin cocinado por nosotros para sustituir al de fábrica de nuestra máquina que tiene limitado la superficie de impresión, nos interesa ajustar nuestra configuración para aprovechar al máxima el área de impresión útil de nuestra máquina.

En un mundo ideal, como la siguiente imagen, nuestra configuración de Marlin, o el ajuste físico de los finales de carrera, nos van a permitir que nuestro nozzle se mueva libremente y sin problemas por toda la superficie de impresión:

Esta sería su configuración en Marlin:

// @section geometry

// The size of the printable area
#define X_BED_SIZE 235
#define Y_BED_SIZE 235

// Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 250

Por otro lado, y comentábamos al inicio, nos podemos encontrar con que nuestra máquina no pueda llegar correctamente a todo el área de impresión y que ajustando físicamente nuestros finales de carrera no podamos ajustarlos:

Ajustes en el área de impresión

Con respecto a este segundo caso os vamos a intentar ayudar a ajustar correctamente el área útil de impresión en vuestro firmware.

Para realizar los ajustes explicados a continuación es necesario disponer:

  • Una pantalla LCD en modo emulación Marlin, los menús nativos de Marlin vamos

  • Una conexión mediante un terminal serial como Pronterface, Octoprint o algunas pantallas TFT táctiles que disponen de esta opción

  • Nuestras fuentes de Marlin para compilar nuestra configuración

Hacer homing en MIN, normalmente la esquina inferior izquierda de nuestra cama, suele ser lo más común.

Homing XY el nozzle queda fuera de la cama

Imaginando el caso anterior en el que nuestro nozzle al hacer homing el nozzle queda fuera del área de impresión y que no podemos ajustar mecánicamente los finales de carrera para compensarlo.

  • Es importante asegurarnos que en nuestro firmware actual nuestro X_MIN_POS e Y_MIN_POS están a 0... podremos mirar esto lanzando un comando M503 que nos devuelve la configuración de nuestra máquina o ajustando mediante M206 los offsets de X e Y a 0 M206 X0 Y0

  • También hemos de asegurarnos que tenemos nuestro X_BED_SIZE e Y_BED_SIZE con el tamaño correcto de nuestra cama, en este caso no es posible ajustarlo mediante pantalla o gcode con lo que solamente podemos hacerlo en las fuentes de nuestro Marlin, compilar y subirlo a nuestra electrónica

Ejemplo:

// @section geometry

// The size of the printable area
#define X_BED_SIZE 235
#define Y_BED_SIZE 235

// Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 250
  • Desde nuestro cliente terminal, Pronterface por ejemplo, lanzaremos el comando G28 X Y para que haga el homing de nuestros ejes X e Y solamente... una vez finalizado en nuestra pantalla de la impresora o Pronterface debería marcar las coordenadas X0Y0

  • Dado que, para este caso, nuestro nozzle ha quedado fuera de nuestra área de impresión utilizaremos los controles de movimiento por pantalla de la impresora o de nuestro Pronterface para ir moviendo los ejes X e Y hasta que veamos que la punta de este queda perfectamente alineada con el inicio de nuestra cama. Nos anotaremos los valores de coordenadas para ese punto, en nuestro ejemplo X5 Y5

  • Ahora que ya sabemos cuales son los offsets de nuestro homing procederemos a configurarlos, disponemos de dos formas:

    • Ajustando X_MIN_POS e Y_MIN_POS en nuestras fuentes de Marlin, compilar y subir a nuestra electrónica

      // @section geometry
      
      // The size of the printable area
      #define X_BED_SIZE 235
      #define Y_BED_SIZE 235
      
      // Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions.
      #define X_MIN_POS -5
      #define Y_MIN_POS -5
      #define Z_MIN_POS 0
      #define X_MAX_POS X_BED_SIZE
      #define Y_MAX_POS Y_BED_SIZE
      #define Z_MAX_POS 250
    • Mediante el comando M206 enviando los valores y guardando en EEPROM (M500) para no perderlos al reiniciar. Os aconsejamos esta forma solamente de forma temporal ya que lo ideal es hacer el paso anterior.

  • Una vez aplicados los cambios volveremos a hacer un G28 X Y y en nuestras coordenadas al finalizar el proceso veremos X-5 Y-5. Si movemos manualmente por pantalla/Pronterface nuestros ejes a X0 Y0 debería de quedar nuestro nozzle alineado con el inicio de nuestra cama.

Homing XY el nozzle queda dentro de la cama

Imaginando el caso anterior en el que nuestro nozzle al hacer homing el nozzle queda dentro del área de impresión y que no podemos ajustar mecánicamente los finales de carrera para compensarlo.

Desafortunadamente en este caso solamente podemos seguir al siguiente punto para encontrar nuestro nuevo tamaño de cama ajustando X_BED_SIZE e Y_BED_SIZE

Encontrando nuestros valores MAX

Por último nos tocará encontrar el valor MAX, X_BED_SIZE e Y_BED_SIZE, en cada uno de los casos anteriores. Para ello:

  • Desde nuestro cliente terminal, Pronterface por ejemplo, lanzaremos el comando G28 X Y para que haga el homing de nuestros ejes X e Y solamente... una vez finalizado en nuestra pantalla de la impresora o Pronterface debería marcar las coordenadas X0Y0

  • Para poder movernos libremente sin restricciones desde nuestro cliente terminal lanzaremos el comando M211 S0 que desactiva los SOFTWARE ENDSTOPS Proceder con precaución!!! al no tener límites podemos hacer que nuestra máquina pueda chocar contra los límites físicos de su cinemática y tener daños.

  • Utilizaremos los controles de movimiento por pantalla de la impresora o de nuestro Pronterface para ir moviendo los ejes X e Y hasta que veamos que la punta de este queda perfectamente alineada con el final de nuestra cama. Nos anotaremos los valores de coordenadas para ese punto:

    • En el ejemplo primero, donde nuestro homing quedaba fuera de la cama, y dado que no hemos tenido limitacion a llegar al final de nuestra área de impresión X235 Y235

    • Para el segundo ejemplo, donde nuestro homing quedaba dentro de la cama de 260x260 (XY), y dado que tampoco hemos tenido limitacion a llegar al final del área de impresión X255 Y255

    • Se puede dar un tercer caso y es que, por limitaciones en nuestra cinemática, no podemos llegar al área máxima de nuestra cama por lo que anotaremos el valor más alto que podamos llegar de forma segura sin chocar nuestros ejes.

  • Con esos valores ajustaremos nuestro X_BED_SIZE e Y_BED_SIZE en nuestras fuentes de Marlin, compilaremos y subiremos el firmware a nuestra electrónica. El siguiente código sería para el ejemplo en el que nuestro nozzle queda dentro de nuestra cama:

// @section geometry

// The size of the printable area
#define X_BED_SIZE 255
#define Y_BED_SIZE 255

// Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 250

Centrado del área de impresión

En ocasiones, cuando tenemos que hacer los ajustes antes comentados, lo más normal es que nuestras impresiones no queden totalmente en la superficie de la cama porque hemos podido perder área de impresión.

En ese caso has de decidir si priorizar entre área de impresión útil o perder parte de esta para que tus impresiones queden centradas.

Normalmente en este último caso deberemos de jugar con X_BED_SIZE e Y_BED_SIZE o X_MIN_POS e Y_MIN_POS para compensar las desviaciones de nuestra máquina.

Ajustes laminador

Dado que probablemente, en el caso de que nuestra área de impresión cambie, deberemos ajustar correctamente nuestro perfil del laminador al nuevo tamaño para evitar sustos.

Uso de clips o fijadores de superficies de cama

Aunque ya no suele ser tan normal, es posible que contemos con clips para sujetar un cristal utilizado como superficie de impresión.

En esta guía se ha pensado para calcular el área de impresión máxima, dado que es la forma más versátil para poder si es necesario usar cristal (con clips), flejes o cualquier otra superficie.

En el caso de que usemos clips hemos de tener en cuenta en nuestro laminador el configurar un área o margen de seguridad en sus correspondientes opciones, todos los laminadores actualmente cuentan con ello.

Crearemos varios perfiles de máquina con más o menos márgenes de seguridad dependiendo de la superficie de impresión que empleemos. De esta forma no tendremos que tocar configuración de firmware.

Última actualización