Custom GCODES con los pines AUX de la tarjeta RAMPS.

From RepRap
Jump to: navigation, search

Introducción

Tras mucho leer y encontrar más bien poco en Google, entre las personas del grupo Clone_Wars he conseguido encontrar la forma de poder activar los pines auxiliares que tiene nuestra RAMPS V1.4 para usarlos con un comando Gcode que queramos nosotros “CustomCode”

NO ME HAGO RESPONSABLE DE POSIBLES DAÑOS EN LA RAMPS Y/O ACCESORIOS. EL PROBAR SIEMPRE REQUIERE ARRIESGAR.

yo he probado sin ningún cable más conectado, pololus, termistores, lcd, etc. incluso se recomienda probar sin fuente de alimentación.

Autor

Andrés Maroto

Modificación

En primer lugar es necesario mucha paciencia…. pero mucha. Porque parece sencillo pero se puede volver tedioso por un detalle que luego comentaré….

Necesitamos, como supongo que sabréis, el Arduino (el que os funcione para compilar y cargar), el sketch a modificar (Marlin/Sprinter) y un programa como Repetier o similar para comprobar el código añadido. Foto de los pines

PINS M42.jpg

Existe el comando M42 Pxx Syyy donde se pueden probar los pines auxiliares marcados en verde.

La explicación es M42 (comando “custom”) Pxx (número de pin a usar, D58 => 58, D64=> 64) Syyy (intensidad de la salida, 0/255, 0=gnd / 255=+5V).

No todos admiten el rango PWM por lo que cuanquier número superior a 0 será considerado HGIH +5V. por defecto el comando M42 actua sobre el LED_PIN 13, es decir, que si la instrucción está mal introducida actua sobre el led de la RAMPS V1.4.

Ejemplos: M42 P58 S255 => nos pone el pin 58 en +5V M42 P58 S0 => nos pone el pin 58 en GND

M42 P63 S125 => si el pin no es PWM se pone a HIGH +5V. si en pin es PWM se pone a +2.5V (el valor proporcional al 255)

M42 P53 S255 => pone el LED en HIGH, el PIN 53 está definido para otro uso.

Decir también que los pines auxiliares al conectar la RAMPS a la fuente, están todos sin definir, ni GND ni +V hasta que no se escribe el CustomCode correspondiente.

Como el poner de cada vez todos los números completos puede llegar a ser aburrido y además tienes que recordar el número de cada pin, la explicación siguiente sirve para añadir un CustomCode para que nos sea más fácil recordarlo e incluso incorporarlo a los archivos Gcode de nuestras impresoras.

Doy por supuesto que sabéis abrir, compilar y cagar un sketch, porque ya tenéis impresora. jeje  ;)

  1. ABRIR EL SKETCH A MODIFICAR, (Marlin/Sprinter)
  2. En la pestaña Marlin:main.cpp buscar el final de las rutinas CASE : (no están por orden numérico.
 Case1.jpg
  1. Crear nuestro propio CASE con el número que queramos… CONFIRMAR ANTES que no está usado por otra función.
   // lineas añadidas como pruebas
   case 241: // pin de prueba pone a +5V
    {
     SET_OUTPUT(PRUEBA_PIN); 
       WRITE(PRUEBA_PIN, HIGH);
    }
   break;
   case 242: // pin de prueba pone a GND
    {
     SET_OUTPUT(PRUEBA_PIN); 
       WRITE(PRUEBA_PIN, LOW);
    }
   
  1. Definir nuestro pin de prueba en el archivo pins.h. Sobra decir que será en la zona de nuestra RAMPS
   #if MOTHERBOARD == 33 || MOTHERBOARD == 34
   #define LARGE_FLASH        true
   #define PRUEBA_PIN 58 //añadir otro pin para prueba
   #define X_STEP_PIN         54
   #define X_DIR_PIN          55
   #define X_ENABLE_PIN       38
   #define X_MIN_PIN           3
   #define X_MAX_PIN           2
  1. Compilar para que muestre los posibles errores.

Pause……………jejejeje

Si muestra error….. GOTO número 2 y revisa los posibles errores/cambios

Si está OK…… continue

  1. Una vez cargado nuestro firm en la RAMPS, abrir el Repertier y comprobar que funciona el pin auxiliar que hemos creado nosotros introduciendo en el código número_case_inventado.

El primer CASE => para activar la salida y el segundo para apagarla…


Enlaces

[1] [Enlace al hilo original]

Clone-Wars-logo.png

Proyecto Clone Wars