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.

Un bootloader es un pequeño código que permite a los microcontroladores de las placas Arduino comunicarse con Arduino IDE cuando se sube un nuevo programa.

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).

FuracosNano junto a un Nano

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:

FuracosNano con el Arduino enchufado

FuracosNano conectado en un Arduino Uno

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:

Herramientas ==> Placa ==> Arduino Nano

Herramientas ==> Placa ==> Arduino Nano

Por defecto ya vendrá elegido, pero por si acaso no está de más comprobar que el procesador es el correcto:

Herramientas ==> Procesador ==> ATmega328

Herramientas ==> Procesador ==> ATmega328

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:

Herramientas ==> Puerto ==> (el que corresponda)

Herramientas ==> Puerto ==> (el que corresponda)

Y para finalizar la preparación de la placa programadora hay que cargar el ejemplo:

Archivo => Ejemplos => 11.ArduinoISP => ArduinoISP

Archivo => Ejemplos => 11.ArduinoISP => ArduinoISP

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 18b5327da0ed21a1a7cc0992994ff4ed20befbb9 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:

Herramientas ==> Programador: "xxx" ==> Arduino as ISP

Herramientas ==> Programador: “xxx” ==> Arduino as ISP

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:

Herramientas ==> Placa ==> (elegir la placa correspondiente)

Herramientas ==> Placa ==> (elegir la placa correspondiente)

Y para finalizar ya se puede subir el nuevo bootloader:

Herramientas ==> Quemar bootloader

Herramientas ==> Quemar 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ú:

Programa ==> Subir Usando Programador

Programa ==> Subir Usando Programador

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).

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *