Aunque no he tenido mucho tiempo para jugar con Bug que tiene el SDK (o por lo menos la versión arduino-0022-4.fc15.noarch). El problema ocurre al tratar de hacer algunos sketch para novatos como lo es el de ‘blink’ que consiste en hacer titilar un LED. Veamos el siguiente código que esta basado en los ejemplos de blink:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
Como ven el sketch le indica a Arduino que el pin 13 va a ser usado como salida y que va a prender y apagar esa señal indefinidamente por intervalos de medio segundo. Aunque el sketch es simple, al compilarlo y cargarlo con Fedora 15 usando el SDK versión arduino-0022-4 el sketch no se ejecuta apropiadamente, el procedimiento de compilación y de carga a la Arduino sucede sin ningún error pero el LED no hace nada.
La solución
Aparentemente este bug es provocado por rutinas de optimización de código al momento de compilar el sketch. Durante este proceso nuestra rutina que hace que el LED titile es descartada y eliminada del binario final. Para solventar este problema, solo debes de hacer una llamada de una variable que este afuera del la rutina ‘setup’, el código quedaría así:
boolean done = true;
void setup() {
pinMode(13, OUTPUT);
done = false;
}
void loop() {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
Fíjense como al inicio se declara la variable ‘done’ con un valor de ‘true’ el cual es alterado dentro de la rutina ‘setup’ obligando al compilador a analizar mas detenidamente el código afuera de la rutina ‘setup’.
Me he tomado la libertad de mi Arduino, me he percatado de un reportar este Bug al responsable de este paquete, pueden seguir el avance de su solución en el Bugzilla de Red Hat Bug #734855

Yo tuve ese mismo problema y otros relacionados con el ethernet shield, el cual no funciona bien en Fedora 15 por un tema de versiones con gcc-avr, muy nuevas en F15. Así que no me queda otra que cargar el código desde Windows o un ubuntu.
Hola, el mismo problema en ArchLinux.
gracias por el dato!