[Firmware]Marlin y homing.¿Como narices lo hace?

1,349 views
Skip to first unread message

Stanis

unread,
Aug 6, 2013, 5:03:04 PM8/6/13
to asrob-uc3m-i...@googlegroups.com
Titulo un poco raro,pero a lo que voy.
Mirando configuration_adv.h aparece algo tal que asi:

//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_RETRACT_MM 5
#define Y_HOME_RETRACT_MM 5
#define Z_HOME_RETRACT_MM 1

¿Alguien sabe como hacer para activar el doble homing como en sprinter?Porque parece claro que esta ahi para eso.

Por otro lado.¿Os gestiona bien el tema de los homing marlin?Porque a mi la verdad,no.El X e Y me la traen un poco al pairo,0.1 mm arriba o abajo no me preocupa.
Pero con el eje Z la cosa cambia.No me hace dos veces un home igual.Es mas,hago home, envio m119 desde pronterface,y dice que no ha tocado Z(con sus palabras,pero es lo que dice).Incluso si despues de un home vuelvo a mandar otro home,la varillas del eje Z giran.Como unos 90º o algo menos.
Ya se que puede parecer una pijada,una decima arriba o abajo no va a ningun sitio.Y es verdad,para capas de 0.4.Pero para capas de 0.2 pues una decima es la puñeta. De hecho puedo imprimir a 0.2 bastante bien,pero tengo que andar trucando el homing del Z para que salga bien.Y hacerlo con cada pieza,da por saco un rato largo.

Por otro lado,y esto no tiene nada que ver con los homing.He estado marujeando el codigo de marlin.Cosa que no habia hecho hasta ahora,por lo menos no en adv.h
Y tiene cositas interesantes con respecto a la gestion de temperaturas:
*Siempre he leido que habia que subir la temperatura para extruir mas rapido.Y resulta que eso lo puede gestionar marlin.
// this adds an experimental additional term to the heatingpower, proportional to the extrusion speed.
  // if Kc is choosen well, the additional required power due to increased melting should be compensated.
*En configuration.h aparece esto:
// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
// average current. The value should be an integer and the heat bed will be turned on for 1 interval of
// HEATER_BED_DUTY_CYCLE_DIVIDER intervals.
//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4
Que si mi ingles macarronico no lo descifra mal,que igual no hace falta andar con reles en la cama.

Ya vale,que ha quedado demasiado tocho,para solo preguntar como narices gestiona marlin los homing.

Ark

unread,
Aug 6, 2013, 5:38:17 PM8/6/13
to asrob-uc3m-i...@googlegroups.com
a mi me los hace bien :S

Los paremtros que has puesto es la distancia en mm que retrocede cada eje despues de tocar el final de carrera para hacer la comprobación. En mi impresora tuve que subir el Z porque sino no desconectaba.

Sobre el 2º tema,  lo que tienes ahi es para camas calientes de baja resistencia y diria que lo que hace es reducir aun más el ciclo de trabajo del PWM para que los momentos en plena carga sean más cortos (corriente media disminuye).
De todas formas, muchos os enmelonais con los relés cuando no son necesarios, un ventilador a la electronica y listo

Stanis

unread,
Aug 6, 2013, 6:09:28 PM8/6/13
to asrob-uc3m-i...@googlegroups.com
Ark pues a mi me tiene loco.Me hace homing simple,y estoy seguro que ese es el fallo.Supongo que no tiene nada que ver,pero tengo puesto los finales de carrera usando el contacto NC.En sprinter eso no es ningun problema,asi que supongo que en marlin tampoco.El z lo he subido a 5 mm,que debiera valer,y no se entera.
¿Hay que activar alguna opcion para doble homing?Porque yo juraria que no he tocado nada del homing,para vaya usted a saber.


El martes, 6 de agosto de 2013 23:03:04 UTC+2, Stanis escribió:

Antonio Navarro

unread,
Aug 7, 2013, 7:56:38 AM8/7/13
to asrob-uc3m-i...@googlegroups.com
Hola,

Yo estoy usando Marlin también y no me hace el 'doble homming' ese. He visto también esas variables que mencionas, pero buscando por todos los ficheros, no encuentro que se usen en ningún sitio ¿?

El resto, ¿usáis Marlin y os funciona el 'doble homming'?

Un saludo,


El martes, 6 de agosto de 2013 23:03:04 UTC+2, Stanis escribió:

Iceflow

unread,
Aug 7, 2013, 8:17:54 AM8/7/13
to asrob-uc3m-i...@googlegroups.com
Yo sin doble homming... nunca me lo ha echo :P


--
 
---
Has recibido este mensaje porque estás suscrito al grupo "Clone Wars: Imprimiendo impresoras 3D" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a asrob-uc3m-impreso...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a asrob-uc3m-i...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Ark

unread,
Aug 7, 2013, 8:39:56 AM8/7/13
to asrob-uc3m-i...@googlegroups.com
ahora resultará que soy el unico raro que le hace doble homing sin tocar nada.

Probad de poner 10 o 20mm al home_retract que has puesto al principio y sabrás con certeza si tira para atrás o no.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a asrob-uc3m-impresoras-3d+unsub...@googlegroups.com.

Iceflow

unread,
Aug 7, 2013, 9:09:51 AM8/7/13
to asrob-uc3m-i...@googlegroups.com
El tema es que creo, al menos en mi caso pasa, que solo hace doble homming X e Y, Z no lo hace jejejeje por eso puede ser el lio :P


Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a asrob-uc3m-impreso...@googlegroups.com.

Ark

unread,
Aug 7, 2013, 9:19:30 AM8/7/13
to asrob-uc3m-i...@googlegroups.com
yo creo que es por la distancia esa, a mi con la "de serie" no llegaba a desconectarse el final de carrera, la aumenté un par de mm y ahora hace la comprobarción bien
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a asrob-uc3m-impresoras-3d+unsubscr...@googlegroups.com.

Para publicar una entrada en este grupo, envía un correo electrónico a asrob-uc3m-i...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

AdansCW

unread,
Aug 7, 2013, 9:39:26 AM8/7/13
to asrob-uc3m-i...@googlegroups.com
Stanis,
El problema del homming del EjeZ puede ser por el final de carrera... son muy puñeteros los finales de carrera chinos ¿Como lo tienes montado? ¿tiene pestaña metálica o se apoya directamente en pulsador? Una décima es un reto para in FC chinaco... una foto a lo mejor arroja algo de luz...


El martes, 6 de agosto de 2013 23:03:04 UTC+2, Stanis escribió:

Lario (litris)

unread,
Aug 7, 2013, 9:57:41 AM8/7/13
to asrob-uc3m-i...@googlegroups.com
Poner Omron ;-) de estos uso yo

Enviado desde mi iPhone 4s 32Gb.
--
 
---
Has recibido este mensaje porque estás suscrito al grupo "Clone Wars: Imprimiendo impresoras 3D" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a asrob-uc3m-impreso...@googlegroups.com.

Stanis

unread,
Aug 7, 2013, 4:34:40 PM8/7/13
to asrob-uc3m-i...@googlegroups.com
Arreglado,al menos en mi caso.
Como sabia que los finales de carrera no eran,porque en Sprinter funcionan perfectamente,tenia que ser por puñetas de firmware.
Toquiteando con miedo,y un dedo en la fuente de alimentacion,he decidido descomentar esta linea :

//#define DISABLE_MAX_ENDSTOPS
 
que esta en config.h donde se define la logica de los endstops.Con eso me quedo sin finales de carrera de maximo(¿y para que los quiero yo?).
La cosa es que asi,al menos a mi,me hace doble homing.Eso si,al mandar el comando m119,ahora solamente salen los 3 de minimos,pero esos son los que necesito.
Si a los demas os funciona,ponerlo por aqui,para poder subirlo a la wiki,que seguro que en alguna esquinita cabe ;)
Por otro lado,¿alguien sabe para que es esto?:
// corse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

#ifndef ENDSTOPPULLUPS
  // fine Enstop settings: Individual Pullups. will be ignord if ENDSTOPPULLUPS is defined
  #define ENDSTOPPULLUP_XMAX
  #define ENDSTOPPULLUP_YMAX
  #define ENDSTOPPULLUP_ZMAX
  #define ENDSTOPPULLUP_XMIN
  #define ENDSTOPPULLUP_YMIN
  //#define ENDSTOPPULLUP_ZMIN
#endif

#ifdef ENDSTOPPULLUPS
  #define ENDSTOPPULLUP_XMAX
  #define ENDSTOPPULLUP_YMAX
  #define ENDSTOPPULLUP_ZMAX
  #define ENDSTOPPULLUP_XMIN
  #define ENDSTOPPULLUP_YMIN
  #define ENDSTOPPULLUP_ZMIN
#endif
No tengo ni puñetera idea de electronica,pero entiendo que quita algo de una resistencia de los endstops.¿Es para las de efecto hall?Ademas,no entiendo muy bien para que narices define 2 veces lo mismo.Si lo unico que le interesa es el ZMIN pues define ese,y listo.Digo yo.
Le estoy cogiendo gustillo a esto de marujear el firm XD

El martes, 6 de agosto de 2013 23:03:04 UTC+2, Stanis escribió:

Tatuin

unread,
Aug 7, 2013, 4:43:57 PM8/7/13
to asrob-uc3m-i...@googlegroups.com

no se si lo define dos veces pero hay una differencia en los dos 
#ifndef ENDSTOPPULLUPS
  // fine Enstop settings: Individual Pullups. will be ignord if ENDSTOPPULLUPS is defined
  #define ENDSTOPPULLUP_XMAX
  #define ENDSTOPPULLUP_YMAX
  #define ENDSTOPPULLUP_ZMAX
  #define ENDSTOPPULLUP_XMIN
  #define ENDSTOPPULLUP_YMIN
  //#define ENDSTOPPULLUP_ZMIN
#endif

#ifdef ENDSTOPPULLUPS
  #define ENDSTOPPULLUP_XMAX
  #define ENDSTOPPULLUP_YMAX
  #define ENDSTOPPULLUP_ZMAX
  #define ENDSTOPPULLUP_XMIN
  #define ENDSTOPPULLUP_YMIN
  #define ENDSTOPPULLUP_ZMIN
#endif

algo significara esa n entre mediom, ifdef me suena a si esta definido o ifndef si no esta definido, hablo por hablar . en fin ;)

Stanis

unread,
Aug 7, 2013, 4:56:36 PM8/7/13
to asrob-uc3m-i...@googlegroups.com
Si,si esta definido o no lo esta.Pero con poner solo la parte que cambia,pues no necesitas copiar/pegar una parrafada.Pero vamos,que lo que realmente me interesa es la parte del pullup.Lo demas,mientras funcione,sera que esta bien asi.


El martes, 6 de agosto de 2013 23:03:04 UTC+2, Stanis escribió:

Antonio Navarro

unread,
Aug 7, 2013, 5:07:24 PM8/7/13
to asrob-uc3m-i...@googlegroups.com
Hola,

He hecho lo mismo que tú (definir el DISABLE_MAX_ENDSTOPS) y ya me hace el 'doble homing'. Muchas gracias!!

Un saludo,

Stanis

unread,
Aug 7, 2013, 5:27:11 PM8/7/13
to asrob-uc3m-i...@googlegroups.com
Espero un poquito mas,para ver si a los demas les funciona,y si es asi,y no es cosa de dos chalados,pues a documentar.


El martes, 6 de agosto de 2013 23:03:04 UTC+2, Stanis escribió:

Andrés Dans

unread,
Aug 7, 2013, 5:42:20 PM8/7/13
to asrob-uc3m-i...@googlegroups.com
 
que esta en config.h donde se define la logica de los endstops.Con eso me quedo sin finales de carrera de maximo(¿y para que los quiero yo?).
Si tienes bien configuradas las dimensiones de la mesa y la altura de tu prusa... no te sirven para mucho... pero como se te ocurra imprimir una pieza más alta que la altura máxima... pues malo... Ahora, si no tienes montados finales de carrera al final del recorrido de los ejes (y solo los tres del homing)... pues evidentemente no te sirve para nada, pero si tienes 6 finales de carrera, necesitarás tener en cuenta este define.

Con respecto a las resistencias Pullup (ladrillaco). Las entradas de los microcontroladores son de alta impedancia y con una corriente muy baja se puede cambiar su estado. Cuando tienes una entrada de un microcontrolador "al aire" o simplemente conectada a un cable (como es el caso de un final de carerra) el estado de esta entrada puede cambiar por ruido electromagnético e incluso por el estado de los pines adyacentes. Para eviatar esto, se suele forzar el estado poniendo (buena práctica de diseño) unas resistencias a 5V (PullUp) o a masa (PullDown) y con esto fuerzas la entrada a un estado conocido, de forma que no dejas que la entrada baile sola... y con el final de carrera, lo llevas al estado contrario (a GND si tienes unas pullup, o a VCC si tienes una pulldown)
Los fabricantes de microcontroladores incluyen dentro del micro unas resistencias pullup (en algunas entradas o en todas) configurables por software para que te la ahorres en el circuito que estes diseñando ¿Y porque configurables? porque a lo mejor las necesitas (si tienes un final de carrera) o a lo mejor no, si tienes un sensor 
óptico/inductivo (o cualquier otro circuito) que ya de por sí te de ambos estados "forzados" sin dejar nada al aire.

Ahora, no tiene mucho sentido el bloque #ifndef ENDSTOPPULLUPS, porque si quiero meter sensores optiocos y comento el anterior(#define ENDSTOPPULLUPS) automáticamente me va a poner los pullups...

Salduos

Lario (litris)

unread,
Aug 7, 2013, 6:25:59 PM8/7/13
to asrob-uc3m-i...@googlegroups.com
No tiene lógica esto que decís.

Yo creo que es por que hay algo en esa definición que se os pasa pero por desconectar los EndStop no debería hacer doble homing pero si lo hace bienvenido sea lo haré yo también.

Gracias. 


Enviado desde mi iPhone 4s 32Gb.
Message has been deleted

Stanis

unread,
Aug 8, 2013, 5:19:38 PM8/8/13
to asrob-uc3m-i...@googlegroups.com
Medio entendido Adans.Gracias  por la explicacion.Y si,no tengo los finales de maximo,y en cambio lo tengo para que corte con medidas maximas,que no sera tan preciso como con finales,pero es casi igual de funcional.
Litris,pues no se,la verdad es que no tiene ni pies ni cabeza,pero a mi me funciona.Supongo que habra que leer como hace el homing,igual si que influye.Cuando saque un rato,intento verlo.
Message has been deleted
Message has been deleted

Lario (litris)

unread,
Aug 10, 2013, 10:06:11 AM8/10/13
to asrob-uc3m-i...@googlegroups.com
Yo uso algunos de esos pines por que valen para TX y RX en mi pantalla LCD táctil ;) pero hoy me he fijado y si lo hace pero uso el Marlin para ReprapPro. 


Enviado desde mi iPhone 4s 32Gb.

El 10/08/2013, a las 15:15, Julio Galarón <juliog...@gmail.com> escribió:

Para que funcione el "doble homing" con una configuración del endstop NC y usando sólo 2 cables, hay que cambiar en el archivo pins.h (en caso de usar una placa ramps) lo siguiente:

Buscad la siguiente linea: #if MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 77 y luego cambiad los siguientes valores en la parte del else:

    #define X_MAX_PIN          -1 //default 2
    #define Y_MAX_PIN          -1 //default 15
    #define Z_MAX_PIN          -1 //default 19

Saludos.
Reply all
Reply to author
Forward
0 new messages