Actualizar bootloader de un Arduino con otro Arduino
En esta guía se programará el bootloader de una placa Arduino utilizando otra placa Arduino.
En ocasiones el bootloader de los Arduinos puede corromperse y dejar de funcionar y en otras es necesario utilizar una versión modificada para ciertas tareas. Por ejemplo la placa base de la plataforma Furacos puede utilizar un Arduino Uno pero para utilizar la programación por Bluetooth hay que utilizar el bootloader del Arduino BT.
Materiales
- 2 placas Arduino.
- Una versión actualizada del software Arduino IDE.
- Sólo un cable USB (la 2ª placa no necesita el USB).
- (si no se utiliza el producto FuracosNano harán falta 6 cables)
Conexionado de las placas
Sólo una de las placas irá conectada por USB y será la que servirá de puente entre el ordenador y la placa que recibirá el nuevo bootloader.
Las placas Arduino llevan un conector ICSP que es por donde se realiza la programación del bootloader (y opcionalmente se pueden subir los nuevos sketch usando ese mismo conector en lugar del USB).
Conectar el Arduino Nano en FuracosNano
En la placa FuracosNano hay una flecha apuntando hacia fuera con la inscripción “USB” indicando en qué dirección va el conector USB del Arduino Nano. Quedando el montaje de la siguiente forma:
Furacos Nano sobre una placa Arduino
Cuando se utiliza el FuracosNano en una placa Arduino Uno el montaje quedaría como se muestra en la imagen.
Si la placa utilizada es diferente al Arduino Uno (como Leonardo, ) será necesario buscar en la documentación de esa placa dónde se encuentra el pin número 1.
En la parte inferior de FuracosNano se indica cuál es el pin nº1 mediante un cuadrado blanco.
Para una conexión exitosa bastará con hacer coincidir los pines nº1 de ambas placas.
Preparar el Arduino IDE
La placa que se utilizará como programador se conectará al ordenador mediante el puerto USB y con Arduino IDE abierto se irá al menú de Herramientas para elegir la placa y el puerto:
Por defecto ya vendrá elegido, pero por si acaso no está de más comprobar que el procesador es el correcto:
El puerto USB variará según el ordenador, para averiguar cuál es de una forma rápida sería entrar al menú con el Arduino desconectado y luego entrar con él conectado, entre ambas veces habrá un puerto extra, correspondiéndose con el del Arduino. El menú en cuestión es:
Y para finalizar la preparación de la placa programadora hay que cargar el ejemplo:
Se sube el código de ejemplo tal cual está.
El código completo se puede consultar en el GitHub oficial de Arduino.
Por si acaso el código hubiese cambiado generando incompatibilidades, recomendamos utilizar la versión 90b33be3113a8841d38640625957e20fd47c68b5 ya que la hemos probado y funciona correctamente.
Programando el bootloader de otros Arduinos
Con el ArduinoISP.ino funcionando el LED conectado al pin D9 estará parpadeando constantemente variando la intensidad del brillo.
Ahora en Arduino IDE se ha de cambiar el tipo de programador, para ello:
Es importante asegurarse que la opción elegida es “Arduino as ISP” ya que hay otra similar (ArduinoISP) que no es compatible.
Y se conecta la placa Arduino que se quiera actualizar el bootloader.
Antes de finalizar habrá que elegir en el menú de herramientas la placa que se quiere programar:
Y para finalizar ya se puede subir el nuevo bootloader:
Programar un Arduino usando otro Arduino como programador
Con este sistema de conexionado también es posible cargar un programa en el 2º Arduino sin utilizar el USB. Habiendo seguido todos los pasos, en lugar de realizar el último paso (Quemar bootloader) se haría un programa nuevo y cuando se quisiese subir al arduino no se puede utilizar la flecha de subir que está en la interfaz de Arduino IDE, en su lugar hay que utilizar el menú:
Este manual se puede realizar con cualquier placa Arduino, pero es mucho más sencillo si se utiliza la placa FuracosNano (pulsa para más información).