Día 1 del cuaderno de Bitácora

La parte que se encargará de controlar el funcionamiento del GE será un Arduino. Para el caso he elegido el Arduino Mega 2560, ya que he encontrado muchas herramientas compatibles y la lista de posibilidades es bastante grande.

El problema es que tanto el sistema que voy a utilizar para programarlo, como el servidor que se va a encargar de la comunicación con la placa, son Ubuntu 10.10.
Por lo visto, el nuevo Arduino Mega 2560, ya no trae el FTDI que traía el viejo Arduino Mega. Ahora viene con un Atmega8u2 que al parecer se lleva muy mal con Ubuntu. Así que para poder utilizar el Arduino 0022 con la placa Arduino Mega 2560, hay que flashear el Firmware del Atmega8u2 para que Ubuntu lo reconozca sin problemas.

El problema no es ese. El mayor problema ha sido, que apenas hay documentación para flashear el nuevo Arduino Mega 2560, pero nadie dice nada sobre el Arduino Mega 2560 R2 (que casualmente es el que yo tengo). Ni si quiera en los esquemas de arduino.cc está contemplado este modelo, así que no he podido comparar con ningún esquema que haya encontrado en internet, ni con ninguna foto de las que hay en los escasos tutoriales para flashear (a lo mejor es que googleo muy mal).

Al final no he tenido más que puentear los pines para resetear el Atmega8u2 y hacerlo entrar en "modo dfu" y así poder programarlo.
Como tampoco he encontrado el .hex para flashear el 8u2 de mi placa, me la he tenido que jugar utilizando el que he encontrado para el Mega 2560 normal.

Pero ha funcionado! Tal y como todo el mundo decía, tras flashear el 8u2, todo funciona perfectamente. Ya no he vuelto a tener ningún problema de comunicación, y el Arduino 0022 vuelve a funcionar rapidísimo (como debe ser).

Justo cuando estaba a punto de dejarlo todo y pasarme a Windows, solo para poder programar cómodamente...

A continuación explico con un poco más de detalle los pasos que he seguido para programar mi placa Arduino Mega 2560 R2 con Ubuntu 10.10:

- Para empezar conectamos nuestro Arduino al PC.
- El primer paso sería escribir en la consola "lsusb" y comprobar que ha aparecido un nuevo dispositivo USB. En mi caso lo veríamos así:

Antes de conectar la placa.









Una vez conectado mi Arduino aparece una línea sin descripción.










- Lo siguiente será hacer contacto entre los dos pines rojos que aparecen en la siguiente foto (puedes usar un destornillador de punta plana).
ATENCION: advierto que las instrucciones que estoy dando me han funcionado con la versión Mega 2560 R2. En mi caso, donde en la foto aparecen dos pines bordeados en verde, realmente hay cuatro pines, y no los he necesitado para nada.



- Una vez hecho esto, repetimos el "lsusb" y ahora nos debería aparecer un dispositivo de Atmel.










- Si hasta aquí todo ha ido bien, significa que ya podemos flashear nuestro Atmega8u2 con el nuevo firmware. Podeis descargar el archivo .HEX de >aquí<. En mi caso me ha servido el que ya existía para la Arduino Mega 2560 normal (es el archivo con extensión .hex que empieza con "MEGA").

- Una vez descargado el archivo vamos a flashear nuestro chip utilizando el dfu-programmer. Si no lo habeis utilizado hasta ahora, podeis instalarlo con Synaptic. Pero recomiendo asegurarse de que como mínimo es la versión 0.5.1, ya que he leído que con versiones anteriores han tenido problemas al programar este chip.

- Una vez instalado, podemos utilizar el dfu-programmer directamente en la consola.
Los pasos serían los siguientes:
Entrar en la carpeta en la que se ha descargado el archivo (por defecto Downloads).

cd Downloads/


Ahora borramos el contenido del Atmega8u2.

sudo dfu-programmer at90usb82 erase


Flasheamos nuestro archivo.

sudo dfu-programmer at90usb82 flash (nombre del archivo).hex


Y lo reseteamos.

sudo dfu-programmer at90usb82 reset


- Desenchufamos el cable USB, y en cuanto volvamos a conectarlo tendremos nuestra Arduino lista para jugar.

Llevad mucho cuidado y aseguraos de que os encontrais en la misma situación que yo. No he encontrado nada de documentación sobre este caso, así que no puedo confirmar que sea siempre así. Lo que hagais será bajo vuestra propia responsabilidad. Tened en cuenta que podeis inutilizar vuestro Arduino.

Mucha suerte a todos, y aquí estoy por si puedo ayudar a despejar alguna duda.
Previous Post
Next Post

2 comentarios:

  1. Hola!!!
    Tengo el mismo problema que te ocurre a tí. He comprado un arduino Mega 2560 R2, pero tenía problemas del tipo timeout. Buscando ví que habría que actualizar el firmware, y buscando un poco más aún, llegué hasta tu blog, lo cual fue una enorme alegría al ver que habías solucionado el mismo problema que tengo yo. La cuestión es que, seguidos los pases tal cual los tuyos (pues me encuentro en tu misma situación), no me dan los mismos resultados... :(
    He de decir que el .hex que cargo no es exactamente el mismo que el tuyo (el que empieza por MEGA), sino el otro que hay en el repertorio git, dentro de una de las carpetas. Hecho esto, sigo con el proceso, pero nada, cuando desconecto y conecto de nuevo el arduino, me sale la línea en blanco al hacer un "lsusb". ¿Podrías ayudarme? Te agradezco enormemente la ayuda. Un saludo!!

    ResponderEliminar
  2. Hola Sema,
    perdona la tardanza, pero llevo una semana sin internet en casa, y en el trabajo no tengo tiempo.
    Has probado ha flashear el mismo .hex que he utilizado yo?
    En cualquier caso, la linea en blanco te va a aparecer siempre, incluso cuando el Arduino funcione correctamente. Lo que tienes que hacer para probarlo es abrir el Arduino 0022 e intentar grabar alguno de los programas de ejemplo. Sin todo funciona correctamente, es que lo has actualizado con exito.

    ResponderEliminar