[CALIBRACIÓN] Offset por software

1,652 views
Skip to first unread message

Juampe López

unread,
Jan 21, 2013, 2:42:28 PM1/21/13
to Clone Wars
Hola,

Mi printrbot tiene el Y=0 unos 20mm fuera del espejo (mientras no ponga un tornillo 20mm más largo para el endstop es lo que hay xD)

Mi pregunta es: ¿este offset se lo puedo programar en Marlin? ¿A la hora de hacer el loncheado? ¿En pronterface?

Ya que estamos, si mi calibrado del eje Z no fuese muy fino, ¿hay alguna manera de acabar de calibrar por software?

Gracias.

--
jotape

Fernando Molina

unread,
Jan 21, 2013, 2:55:57 PM1/21/13
to asrob-uc3m-i...@googlegroups.com
En Marlin hay un parametro para hacer que despues de hacer homing modifique los limites de impresion:

// Travel limits after homing
#define X_MAX_POS 195
#define X_MIN_POS 5
#define Y_MAX_POS 195
#define Y_MIN_POS 5
#define Z_MAX_POS 200
#define Z_MIN_POS 0

Juampe López

unread,
Jan 21, 2013, 3:05:52 PM1/21/13
to asrob-uc3m-i...@googlegroups.com
Hola Fernando, es lo primero que había tocado pero no aprecio ningún cambio. Tampoco hacen nada los números negativos.

Tampoco he tenido suerte con:
//Manual homing switch locations:
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 20
#define MANUAL_Z_HOME_POS 0

¿Se supone que después del home y tocar los endstops la impresora debería posicionarse en el offset? Es que a lo mejor solo se aprecia en la impresión y estoy haciendo el pavo :D

2013/1/21 Fernando Molina <mrden...@gmail.com>
--
 
 
 



--
jotape

Fernando Cerezal

unread,
Jan 21, 2013, 3:07:30 PM1/21/13
to asrob-uc3m-i...@googlegroups.com
El día 21 de enero de 2013 20:42, Juampe López
<juampe...@gmail.com> escribió:
> Hola,
>
> Mi printrbot tiene el Y=0 unos 20mm fuera del espejo (mientras no ponga un
> tornillo 20mm más largo para el endstop es lo que hay xD)
>
> Mi pregunta es: ¿este offset se lo puedo programar en Marlin? ¿A la hora de
> hacer el loncheado? ¿En pronterface?

En skeinforge, en el módulo "Multiply" le puedes poner donde está el
centro de la base X y en Y.

Si en vez de a 100mm del home está a 90, te queda un eje Y de 180mm.

Así no tienes que tocar el firmware.


Un saludo.

>
> Ya que estamos, si mi calibrado del eje Z no fuese muy fino, ¿hay alguna
> manera de acabar de calibrar por software?
>
> Gracias.
>
> --
> jotape
>
> --
>
>
>

Fernando Cerezal

unread,
Jan 21, 2013, 3:08:48 PM1/21/13
to asrob-uc3m-i...@googlegroups.com
El día 21 de enero de 2013 21:05, Juampe López
<juampe...@gmail.com> escribió:
> Hola Fernando, es lo primero que había tocado pero no aprecio ningún cambio.
> Tampoco hacen nada los números negativos.

Los número negativos no tienen sentido en este caso, y la mayoría de
las veces se ignora. El home es el cero, y por definición y mecánica
no puedes ir más allá del cero.
> --
>
>
>

Juampe López

unread,
Jan 21, 2013, 3:27:48 PM1/21/13
to asrob-uc3m-i...@googlegroups.com


2013/1/21 Fernando Cerezal <kryp...@gmail.com>

El día 21 de enero de 2013 21:05, Juampe López
<juampe...@gmail.com> escribió:
> Hola Fernando, es lo primero que había tocado pero no aprecio ningún cambio.
> Tampoco hacen nada los números negativos.

Los número negativos no tienen sentido en este caso, y la mayoría de
las veces se ignora. El home es el cero, y por definición y mecánica
no puedes ir más allá del cero.

Ok, pero imaginaba que a lo mejor el firmware entendiese "una vez llego al cero, muévete 20 más o 20 menos porque el tío que me ha construído es un paquete" :)

Gracias por vuestras respuestas, seguiré probando. Ahora al slicear con Cura ya le he desplazado el centro y a ver qué pasa.

--
jotape

Angel

unread,
Jan 22, 2013, 6:09:08 AM1/22/13
to asrob-uc3m-i...@googlegroups.com
Hola, al menos en Marlin sí que se puede, os cuento:

Yo tengo instalado el LCD en mi Printrbot, ya sabéis lo complicado que es ajustar mecánicamente la altura del eje Z correctamente para que la primera capa sea como debe ser, siempre hay que hacer ajustarlo finamente luego en el software de fileteado, mi ordenador es un poco viejete y que tener que andar procesando los STL varias veces es un coñazo.

¿solución? miré bien todos los parámetros y gcodes de Marlin y encontré la forma de darle un offset por software al valor del 0 "mécanico" obtenido por el home y modifiqué el código del LCD de Marlin para poder modificar esos offset desde el LCD. De esta forma fileteo siempre a altura de primera capa 0.0 y ajusto el offset desde el LCD con valor negativo en función de la altura a la que haya calibrado mecánicamente el eje Z. OJO: esto no significa que los ejes se muevan mas allá del home mecánico, sino que el home mecánico en realidad no será 0 para él, sino que será el offset que le metas. Ejemplo: le meto de offset -0.20 en el eje Z, cuando haga el home ya sabrá cual es el 0.00 real, pues Marlin toma ese 0.00 como -0.20, de forma que si con un gcode le mandas moverse 0.40 se irá al 0.20.

Lo mismo para el eje X e Y evidentemente, los offsets de estos ejes yo lo uso para mover un poco la impresión de la pieza a otro lado de la cama sin tener que volver a filetear, desde el LCD directamente.

Para mi es muy muy práctico y útil modificar esos parámetros de forma tan sencilla.

Estos offset se modifican mediante un gcode, el M206, pero pueden almacenarse en la EEPROM con el gcode M500 de Marlin (ojo, este gcode almacena muchos más parámetros de golpe).

Si lo quieres modificar directamente en el código fuente de Marlin, hasta donde yo se no puede hacerse con ningún define del preprocesador ni con ninguna constante, ya que el gcode M206 lo que hace es modificar una variable, esta es: float add_homeing[3], y está definida e inicializada en el fichero Marlin_main.cpp:

float add_homeing[3]={0,0,0};

Los tres valores corresponden a los ejes X, Y, Z respectivamente. Modificando esa variable ahí (que es donde se inicializa) deberías poder meter los offset que necesitas.

Para probarlo podrías lanzar el gcode a mano desde el Pronterface antes de imprimir, en la documentación de Marlin indica como hacerlo: "Example: M206 X10.0 Y10.0 Z-0.4", es igual que lo hagas antes de que la impresora haga el home, ya que Marlin lo que hace en realidad es almacenar el valor en la variable add_homeing, y cada vez que recibe un gcode de movimiento tiene en cuenta esa variable.

Si te animas a probar y te funciona ya nos cuentas!

Angel

unread,
Jan 22, 2013, 6:13:37 AM1/22/13
to asrob-uc3m-i...@googlegroups.com
Ah!! Un detalle que se me olvidó comentar: en los ejes X e Y es peligroso meter valores positivos como offset, ya que ahí si que puede intentar irse mas allá del limite, si tu cama mide 200mm de ancho, le metes offset al eje X de 100mm, y la pieza mide más de 100mm el motor seguirá girando aunque llegue al final, así que ojo con eso, yo solo lo uso con valores negativos en esos ejes, en el caso del eje Z no pasa porque el offset que puedes necesitar meter es siempre muy pequeño y nunca vas a hacer una pieza tan alta.

Saludos

paulo marcelo nadal

unread,
Aug 20, 2018, 8:06:26 AM8/20/18
to Clone Wars: Imprimiendo impresoras 3D
muy buenos dias, por lo menos aca en buenos aires, una consuta que me tiene loquisimo, cuando le doy a mi p905x homing, el eje x intenta salir de mi maquina haciendo un ruido horrible taladrando los limites fisicos, tengo endstop mecanico pero parece que no funciona, que puedo hacer para que corte el movimiento antes del limite? muchisimas gracias amigo espero pronta respuesta, Paulo.
Reply all
Reply to author
Forward
0 new messages