La comunicacion de los Arduino UNO y el Arduino MEGA 2560 utiliza un chip AVR con un firmware que establece la comunicación del host por USB Serial interface y el MCU (chip principal) TTL serial port. Tanto el Arduino UNO R1 como el R2 utilizan el Atmega8u2, y el R3 utiliza el Atmega16u2.
Estos chip pueden ser reprogramados mediante DFU, lo que nos permite convertir el arduino en cualquier tipo de dispositivo USB (teclado, ratón, joystick, MIDI, etc.).
Vamos a instalar las librerias necesarias en Ubuntu (o derivados, como Debian, Elementrary OS...).
sudo apt-get install build-essential libusb-1.0-0-dev automake autoconfNos descargamos la última versión desde aquí (click).
tar xzf ~/Downloads/dfu-programmer-0.6.2.tar.gz cd dfu-programmer-0.6.2 #Configure ./bootstrap.sh ./configure make # INSTALL sudo make installAhora conectamos nuestro arduino al USB y conectamos estos dos pines durante unos segundos y los desconectamos. Escribimos en una terminal:
lsusbY nos debe de aparecer en uno de los buses como "Atmel Corp". Bien, ya tenemos el arduino en DFU. Ahora nos descargamos el firmware correspondiente desde aquí (click).
Si tenéis un Arduino UNO R3 (como es mi caso) os tenéis que descargar este (click).
Para descargároslo copiáis el link haciendo click derecho sobre "Raw" y "Copiar dirección de enlace." ahora en una terminal escribís:
wget (y la dirección web que tenéis en el portapapeles)Ahora escribimos esta secuencia para subir el firmware:
sudo dfu-programmer atmega16u2 erase sudo dfu-programmer atmega16u2 flash Arduino-usbserial-atmega16u2-Uno-Rev3.hex sudo dfu-programmer atmega16u2 resetDesconectamos el arduino del USB,lo volvemos a instalar y listo!
Ya sabemos como cambiar el firmware, en este caso hemos actualziado la versión. Es importante que tengáis el archivo que os habéis descargado porque es el original de arduino y lo necesitaréis para cargar los sketchs, ya que los otros firmwares no lo permiten.
Nota: si tenéis otro modelo de chip tenéis que cambiar el "atmega16u2" por el que tengáis vosotros.
Happy hacking. Twitter: @Pirobtumen
Hola, tengo un problema... Como abro una terminal en windows???
ResponderEliminarPulsa: "Tecla de windows" + R, se te abrirá una ventana. Ahora escribe: cmd.exe y pulsa "enter".
EliminarSaludos! :)
discula no me funciona el comando wget en la terminal como le hago
ResponderEliminar¿Estas usando linux? Si es así prueba a escribir "wget https://github.com/arduino/Arduino/raw/master/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-atmega16u2-Uno-Rev3.hex".
Eliminarporque a la hora de correr el "dfu-prog-usb-1.2.2" me aparece una ventana diciendo que "El pograma no puede iniciarse porque falta libusb0.dll en el equipo, Intente reinstalar el progra para corregir este problema."
ResponderEliminarPues probablemente será problema de windows, trata de reinstalar o bajartela.
EliminarCreo que esto funciona solo para los arduinos italianos (versiones originales), la version china tiene un chip llamado CH340 el cual no se puede re-programar como los originales. ¿Estoy en lo cierto?
ResponderEliminarEstás en lo cierto, las versiones chinas llevan el CH340 (el otro día justo estuve trasteando con uno), pero no sé si puede reprogramar o no.
EliminarEl tutorial está hecho con un arduino uno original, sería cuestión de probar.
¡Saludos!
ATMEGA16U2 es un Microcontrolador en el que se puede escribir firmware y CH340G es un convertidor chino de USB a TTL que solo sirve para comunicar la placa con la computadora. En el caso del Atmega16U2 este ha sido programado o preconfigurado con un firmware, para actuar como convertidor USB a TTL en nuestra placa Arduino UNO Rev3.
ResponderEliminarCH340 no puede reprogramarse, 16U2 puede reprogramarse y usarse como microcontrolador independiente. Los driver para CH340 deben instalarse por separado, los drivers atmega16U2 ya están embebidos en el IDE de arduino.
ResponderEliminarCH340 es el clon chino, aunque en algunos casos se encuentran placas clones con ATmega16U2.