domingo, marzo 20, 2011

Arreglar Arduino UNO para Ubuntu (10.10)

Hace unos días me compré una nueva Arduino para jugar con ella. Es el modelo Arduino UNO y, paradojas de la vida, a pesar de ser un proyecto MUY libre, no tiene buen soporte para gnu/linux (Ubuntu que es mi caso a día de hoy). Hay un bug en el firmware para la comunicación serie-USB.
La solución está en cargar un nuevo firmware, siguiendo los siguientes pasos (bajo la responsabilidad de cada uno, que todo esto es gratis ):

Paso 1:
Ir a https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/arduino-usbserial/   y descargar la última versión de Arduino-usbserial-uno.hex 
Ojo, hay que descargarse el código hexadecimal tal cual (no el html). Para ello hacemos click sobre el archivo y después click derecho en la opción "raw" (guardar enlace como).

Paso 2: Instalar Device Firmware Update para chips Atmel:

 $sudo dpkg -i linux-headers-2.6.38-020638_2.6.38-020638.201103151303_all.deb  

Paso 3: Poner el chip en modo programación conectando los siguientes cables:

Con el cable USB conectado:

  • Mantén el primer cable en la posición indicada.
  • Mantén el segundo cable en la posición indicada.
  • Desconecta el segundo cable.
  • Desconecta el primer cable.

Paso 4: Reprogramar el firmware:

 $sudo dfu-programmer at90usb82 erase  
 $sudo dfu-programmer at90usb82 flash --debug 1 Arduino-usbserial-uno.hex  
 $sudo dfu-programmer at90usb82 reset  
Paso 5:

Desconectar y volver a conectar el cable USB...y a rular.

Fuentes:

http://arduino.cc/forum/index.php?topic=55736.0
http://es.scribd.com/doc/45913857/Arduino-UNO
http://www.strangeparty.com/2010/12/13/fix-your-arduino-uno-for-linux/

10 comentarios:

aztlek dijo...

Yo también estoy en el proceso de aprender Arduino. Es muy extraño, en Debian funciona bastante bien, solo es bajar el IDE de http://arduino.cc

Sario dijo...

a mi también me funcionaba con Arduino Duemila y Ubuntu <10.04. Pero parece el modelo UNO tiene un problema de comunicación USB (firmware).

Saludos.

Juan Antonio Ruz dijo...

gracias sario!
me sirvió mucho el tutorial para resetear mi arduino uno.. .en mi caso la deje bloqueada con comunicación serial, es decir haciendo println() en el metodo draw() con lo cual no podía volver a subir ningún programa via usb-serial port

Sario dijo...

me alegro de que te haya sido útil Juan Antonio.

Saludos

iTana dijo...

Muchas gracias, estoy empezando con Arduino y ya me estaba tirando de los pelos. Jajaja.

Rogelio lopez dijo...

no esta disponible el link del usb serial uno hex puedes volverlo a subir xfavor!!!

Rogelio lopez dijo...

no esta disponible el link del usb serial uno hex puedes volverlo a subir xfavor!!!

Sario dijo...

Rogelio, ya he actualizado el link. No lo he probado, si te funciona me lo cuentas.
Saludos.

Jorge Ramiro dijo...

Siempre me ha gustado mucho usar la computadora y por eso quisiera conseguir distintos software para tener la forma de programar distintas cosas. Muchas veces en mi tv led veo programas de informática que trato de aprender de ellos para usar luego de forma mas eficiente mi computadora

Giuseppe Rosano dijo...

And other Button?(act, release...)