[DUDA] Contactos auxiliares RAMPS

618 views
Skip to first unread message

Lucas RepRapZ.com

unread,
Nov 13, 2013, 3:27:29 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
Buenas amigos.

Me preguntaba si alguna placa controladora (la RAMPS creo que no) tiene algún contacto auxiliar que pueda ser controlado vía gcode, algo asi como el que se Isa para encender la fuente de alimentación (M80 M81) pero sin necesitar alimentar 5V.

Un saludo.

Xoan Sampaiño

unread,
Nov 13, 2013, 3:45:02 PM11/13/13
to asrob-uc3m-impresoras-3d
En realidad eso no depende de la placa, sino del firmware, ¿no?

2013/11/13 Lucas RepRapZ.com <ldp95tec...@gmail.com>:
> Buenas amigos.
>
> Me preguntaba si alguna placa controladora (la RAMPS creo que no) tiene algún contacto auxiliar que pueda ser controlado vía gcode, algo asi como el que se Isa para encender la fuente de alimentación (M80 M81) pero sin necesitar alimentar 5V.
>
> Un saludo.
>
> --
>
> ---
> 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.



--
Xoan Sampaiño [xoan@twitter|vimeo|flickr|delicious]

/\ Document Freedom Day - Liberate your documents
_\/` http://documentfreedom.org/ - March 27th, 2013

Andres Maroto

unread,
Nov 13, 2013, 3:47:35 PM11/13/13
to asrob-uc3m-i...@googlegroups.com


RAMPS 1.4 según la foto el cable BLANCO es el PS_ON que es el pin 12 en el sketch de Srpinter/Marlin, se controla por Gcode con M80 y M81, y el cable VERDE es el de +5 Stand_by para tener la MEGA alimentada y poder hacer impresión autónoma, sin el ÚSB.

Si conectas el MEGA por USB, tanto el pronterface enviando un M80/M81, como el repetier con un botón en el "control manual" puedes controlar la fuente.
También puedes controlar una fuente de Xbox.... (según el firmware)....

saludos.

Lucas RepRapZ.com

unread,
Nov 13, 2013, 4:25:31 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
+Xoan Sampaiño  Si, el control de los posibles contactos que hubiese por gcode depende del firmware. 
Yo realmente no conozco todos los gcodes que hay (que por suerte son muchos). 
Lo que esta claro es que si la placa no tiene esos pines es imposible usar los contactos, otra opción seria utilizar los pines de alguno de los AUX libres pero claro para eso seria necesario modificar el firmware y mis conocimientos de programación son nulos.

+Andres Maroto  El inventillo para encender la fuente lo utilizo actualmente para que se apague al terminar las impresiones. 
Lo que me gustaría hacer es que pueda realizar funciones distintas a través de uno o varios relés, también para aprovechar estos pines se podria utilizar un relé con una bobina de 5V aunque solo dispondría de un contacto.

Gracias por vuestras respuestas.
Un saludo.

Andres Maroto

unread,
Nov 13, 2013, 5:53:58 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
en otro hilo, también lo he comentado.....
también quiero usar otros pines de la ramps 1.4 (la que tengo) y por desgracia no creo que sea tan simple com ocopy/paste de un sketch a otro.... por el tema de un archivo donde describe todos los pines del atmega...... 

se supone que en la ramps 1.4 en el AUX-1 (conector de 8 pines) el más cercano a los pololus son para +5, GND, Rx yTx (PIN 0 PIN 1) en cualquier sketch, y los que están más hacia afuera, son +5, GND, D57, D58 que para activarlos sería algo como 
#DEFINE_RELE_1 57 // relé que activa lo que sea..... pero ¿y todos los parámetros que faltan??
es también lo que estoy buscando... jejejeje

no es tan sencillo ampliar las funcionas, porque también necesitas incluir el supuesto Gcode que esté libre.... M853958732 // activa relé 1 ¿donde seescribe el comando para que lo reconozca???

yo seguiré buscando para poder ampliar.....

saludos.

Xoan Sampaiño

unread,
Nov 13, 2013, 5:56:57 PM11/13/13
to asrob-uc3m-impresoras-3d

Andres Maroto

unread,
Nov 13, 2013, 6:11:39 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
si sé donde buscar los códigos que están implementados, lo que yo me refiero es a poner otro.......

¿¿¿pongo //M345 enciende relé1 y //M346 apaga relé 1??? 
en el caso del M80 y M81 en marlin, hay un case

#if (PS_ON_PIN > -1)
      case 80: // M80 - ATX Power On
        SET_OUTPUT(PS_ON_PIN); //GND
        WRITE(PS_ON_PIN, PS_ON_AWAKE);
        break;
      #endif

#if (PS_ON_PIN > -1)
   SET_OUTPUT(PS_ON_PIN);
   WRITE(PS_ON_PIN, PS_ON_AWAKE);
 #endif

Line 1172:     #if (PS_ON_PIN > -1)
Line 1174:         SET_OUTPUT(PS_ON_PIN); //GND
Line 1175:         WRITE(PS_ON_PIN, PS_ON_AWAKE);
Line 1175:         WRITE(PS_ON_PIN, PS_ON_AWAKE);
Line 1184:       #elif (PS_ON_PIN > -1)
Line 1185:         SET_OUTPUT(PS_ON_PIN); 
Line 1186:         WRITE(PS_ON_PIN, PS_ON_ASLEEP);
Line 1186:         WRITE(PS_ON_PIN, PS_ON_ASLEEP);
Line 2076:   if(PS_ON_PIN > -1) pinMode(PS_ON_PIN,INPUT);
Line 2076:   if(PS_ON_PIN > -1) pinMode(PS_ON_PIN,INPUT);

vamos que poner mi CUSTOM M CODE, no es tan sencillo, hay muchos parámetros a escribir antes que añadir unas líneas en el archivo marlin.ino /marlin.pde

que lo estoy mirando con otros programas para ver como leches funciona parte del código......
similar al "jodeon" php..... con el <include> que luego te pierdes entre tantos archivos y código.....

Antonio Navarro

unread,
Nov 13, 2013, 6:20:59 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
Hola,

Yo no tengo ni prusa idea, pero está este g-code para activar pines:

M42 in Marlin/Sprinter

Example: M42 P7 S255

M42 switches a general purpose I/O pin.


No sé si sirve para todos los pines ni nada, pero a lo mejor te sirve para tirar del hilo por el código...

Andres Maroto

unread,
Nov 13, 2013, 6:30:37 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
una idea genial... habrá que tirar del "hilo" como bien has dicho.

case 42: //M42 -Change pin status via gcode
      if (code_seen('S'))
      {
        int pin_status = code_value();
        int pin_number = LED_PIN;
        if (code_seen('P') && pin_status >= 0 && pin_status <= 255)
          pin_number = code_value();
        for(int8_t i = 0; i < (int8_t)sizeof(sensitive_pins); i++)
        {
          if (sensitive_pins[i] == pin_number)
          {
            pin_number = -1;
            break;
          }
        }
        if (pin_number > -1)
        {
          pinMode(pin_number, OUTPUT);
          digitalWrite(pin_number, pin_status);
          analogWrite(pin_number, pin_status);
        }
      }
     break;

Andres Maroto

unread,
Nov 13, 2013, 6:39:13 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
con el M42 S255 enciendes el led al máximo, con M42 S150 se pone a mitad, con M42 S0 apagas el pin LED(pin 13) será cosa de añadir otro "case" para probar más cosas.....

lo estaba probando ahora mismo con mi Marlin.

Antonio Navarro

unread,
Nov 13, 2013, 6:44:43 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
Se supone que puedes indicar el PIN con el parámetro P. En el ejemplo especifica el PIN 7 (Example: M42 P7 S255). En el código que has puesto, pone el PIN del LED por defecto (al definir pin_number) y luego verifica si ese parámetro se ha especificado (code_seen('P')):

        int pin_number = LED_PIN;

        if (code_seen('P') && pin_status >= 0 && pin_status <= 255)
              pin_number = code_value();

Teóricamente debería valer para cualquier PIN que especifiques, no? :-D

Andres Maroto

unread,
Nov 13, 2013, 6:48:33 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
si que funciona......
M42 P58 S255 pone el pin D58 en +5

en ponterface no funciona el código, pero el Repertier si lo reconoce

FUNCIONA

Antonio Navarro

unread,
Nov 13, 2013, 6:50:36 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
:-D

Es raro que no funcione con pronterface.

Andres Maroto

unread,
Nov 13, 2013, 7:03:37 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
Aunque hay algún pin de los auxiliares que no funciona ese comando.....jejejejeje

Adoro el paint... jajajajajjaajja por si no queda claro, los rojos, no funcionan con el comando M42, los del círculo verde sí para M42 P(NúmeroPin) S255, lo deja a +5v


Iceflow

unread,
Nov 13, 2013, 7:17:37 PM11/13/13
to asrob-uc3m-i...@googlegroups.com
Mira tu que cantidad de pines "libres" chulos a nuestra disposicion ejjejeje buen hallazgo chavalada!! ;)

Andres, a documentar como hacer los cambios y todo eso!! tatocao!! XDDD


Andres Maroto

unread,
Nov 14, 2013, 3:07:46 AM11/14/13
to asrob-uc3m-i...@googlegroups.com
Hoy voy a cacharrear con mi ramps, y ya llevo media noche con alguna duda......

El sistema está muy bien para como dice Ais~lfou hay que documentarla....

#DEFINE_DUDA 2 //Número de duadas jajajajaja

CASE 1:
Ayer comprobé que los pines marcados en verde se pueden activar con el comando, y como no tengo LCD no sé si se pueden enviar códigos desde ella ==> problema para la impresión autónoma....
Se pueden activar desde el pc con el comando M42 y conseguimos usar algún accesorio más.... ventiladores, cerrojo de seguridad en la puerta para que no molesten, (jajajaj)
CASE 2:
También quiero leer el estado de esos pines para por ejemplo poner el detector de hilo, lo tendrá que leer de algún pin ¿no? lo probaré.... y expondré resultados.. jejeje
la idea es usar el (read_state) como el que se usa con los end_stop o los termistores, para que el micro_swich_del_hilo funcione bien.


como información decir que con un Arduino_UNO conseguí que un motor pap funcionase a distintas revoluciones y que también leyese un encoder escribiendo el resultado de la velocidad del motor y las vueltas del encoder en el monitor del puerto serial...... IDEA..... usar el encoder con un sistema "bowden" y que marlin sepa la velocidad del hilo para comparar la velocidad del extrusor con la del hilo, pudiendo hacer un digitalWrite(ALARM_PIN, HIGH); para que se pause la impresión por seguridad...

Así que hoy me queda tema para cacharrear un poco...

saludos.


Lucas RepRapZ.com

unread,
Nov 14, 2013, 4:14:28 AM11/14/13
to asrob-uc3m-i...@googlegroups.com
Esto pinta bien. 
Anoche leí un poco del comando M42 aunque no tenia del todo claro su funcionamiento, ahora veo que si funciona.
En cuanto llegue a casa me pongo a probarlo como loco.


Xoan Sampaiño

unread,
Nov 14, 2013, 4:21:25 AM11/14/13
to asrob-uc3m-impresoras-3d
[OT] https://www.google.com/search?q=the+answer+to+life+the+universe+and+everything

2013/11/14 Lucas RepRapZ.com <ldp95tec...@gmail.com>:
> --
>
> ---
> 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.



Andres Maroto

unread,
Nov 14, 2013, 6:19:20 AM11/14/13
to asrob-uc3m-i...@googlegroups.com
CONSEGUIDO.... Añadir "CustomCode" para manejar pines auxiliares.... :P ahora a documentarlo.

Andres Maroto

unread,
Nov 14, 2013, 7:26:04 AM11/14/13
to asrob-uc3m-i...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages