firmata para arduino mega

Hola a todos!

Necesito escribir un firmware para comunicar arduino mega con puredata ya que el standarfirmata que existe no funciona bien(al parecer tiene algunos bugs pues se generan comportamientos muy extraños) con arduino mega. Lo que necesito exactamente es habilitar las entradas analogas, lo cual ya he logrado utilizando el sencillo sketch que pego abajo, pero además necesito poder controlar desde puredata 38 pines digitales como salidas para encender 38 leds. Alguien podria guiarme o dar alguna recomendación en como escribir esa parte del codigo? mis conocimientos son limitados y la verdad no se como hacer para que arduino habilite los 38 pines y este constantemente leyendo desde el puerto serial para encender y apagar leds cuando puredata le indique.

copio el codigo para leer desde las entradas anlogas que encontre en http://www.audiotron.dk/

Cualquier ayuda es bienvenida, saludos!

/*
Arduino to PureData (Arduino2Pd.pde)
v. 0.1, April 30. 2011
Written by Mikkel Bech-Hansen

Based on Arduino2Max sketch Daniel Jolliffe


This program sends values from the analog sensors of an Arduino board,
via serial to PureData.

*/

int x = 0; // temp. variable to store current value.
int numberOfPins = 16; //Set number of pins. Default = 6. For Arduino Mega = 16

void setup() {
Serial.begin(9600); //Set baud rate. Can be increased, but must be set accordingly in PureData patch
}

void loop() {

for (int pin= 0; pin<=numberOfPins-1; pin++){ // Read and send analog pins 0-15
x = analogRead(pin);
sendValue (x);
}
}
void sendValue (int x){ // function to send the pin value followed by a "space".
Serial.write(x);
}

ese programa que propones envia por puerto serie ininterrumpidamente los valores de las 16 entradas analógicas del mega.

te recomiendo que pongas un delay de 10 microsegundos entre cada unas de las tomas para hacer una correcta medida.

no vas a encontrar fácilemnte que alguien haya trbajado con lo que quieres, plantea la pregunta de otra forma,

yo te preguntaría que comandos envia el software que comentas al mega ( en que formato) para encender y apagar los leds.

si sabes esto, en los ejemplos que vienen con arduino de comunicaciones puedes hacerte una idea de como atacar el problema.

un saludo

Muchas gracias por la respuesta SrDonGato, la verdad no tengo claro que formato maneja puredata para cominicarse con arduino, voy a investigar esop para empezar

gracias!