Programación de Bootloader para Arduino Uno, Mega, Nano, Micro y cualquier modelo. En nuestro caso hemos usado para realizar el tutorial Arduino Nano.

¿Por qué programar el bootloader de Arduino?

El motivo de la programación del Bootloader es que realizaremos un pedido de Arduino Nano nos llegó sin el bootloader programado. Tras buscar por multitud de sitios web hemos comprobado que existe información al respecto pero muy poca en castellano y prácticamente ninguna en modo tutorial y ninguna para nuestro programador.

Así pues a continuación explicamos paso a paso y con capturas de pantalla cómo programar el bootloader de Arduino.

Requisitos para programar el bootloader de Arduino

Arduino

Necesitaremos obviamente disponer de un Arduino, en nuestro caso usaremos Arduino Nano:

Arduino nano

Programador ISP con cable de 10 pines

El programador ISP para el Atmel Atmega328 que lleva nuestro Arduino Nano es un “USBASP ISP Programmer”:

Programador ISP con cable de 10 pines

Que incorpora un cable de 10 pines y que pedimos por eBay por menos de 5€:

Programador ISP con cable de 10 pines

El programador se conecta al Arduino a través de el conector ICSP, que en nuestro caso no lleva los pines del ICSP soldados como mostramos en las imágenes anteriores. A continuación mostramos los esquemas de conexiones del conector ICSP tanto del Arduino:

Programador ISP con cable de 10 pines

Como la del conector de 10 pines de nuestro programador:

Programador ISP con cable de 10 pines

Puesto que el conector del programador no coincide con el conector ICSP del Arduino deberemos hacer las siguientes conexiones:

Programador ISP con cable de 10 pines

Para ello lo más cómodo es hacer uso de cables de placa de prototipos también conocidos con el termino en inglés cables Breadboard:

Programador ISP con cable de 10 pines

A continuación mostramos algunas imágenes de como se queda la conexión, en ellas se pueden ver como el no tener los pines soldados en el conector ICSP nos ha simplificado la tarea, en caso contrario hubiésemos necesitado otro conector o siendo más drásticos habríamos tenido que cortar el cable del programador y unir de nuevo los cables de modo que ya coincidan con el conector de nuestro Arduino:

Programador ISP con cable de 10 pines
Programador ISP con cable de 10 pines
Programador ISP con cable de 10 pines

IDE de desarrollo para Arduino

Además del Arduino y del programador con los conectores necesitaremos también disponer de un PC con el IDE de Arduino. En el siguiente tutorial explicamos cómo instalarlo paso a paso:

En este tutorial explicamos cómo programar el bootloader de Arduino desde un PC con sistema operativo Linux, aunque el proceso es muy similar para el caso de un equipo con Windows.

Programar el bootloader de Arduino

Una vez realizadas las conexiones como hemos indicado anteriormente conectaremos el programador ISP al PC y arrancaremos el IDE del Arduino, con el superusuario “root” en caso de utilizar el sistema operativo Linux, para la programación del bootloader (que es nuestro caso), para ello utilizaremos el comando Linux “gksu” que arranca aplicaciones como superusuario. A continuación mostramos como quedaría el acceso directo (o lanzador) del IDE del Arduino:

Programar el bootloader de Arduino

Si no abrimos el IDE de Arduino como superusuario root puede que muestre este error al intentar transferir el bootloader:

Programar el bootloader de Arduino

Con el texto:

Error al grabar la secuencia de inicio.
avrdude: error: could not find USB device «USBasp» with vid=0x16c0 pid=0x5dc.

Para Linux (que es nuestro caso) y Mac OS no es necesaria la instalación de drivers, para Windows es posible que requiera la instalación de drivers.

Puesto que el IDE de Arduino incorpora la herramienta para la programación del bootloader, simplemente le indicaremos qué placa es la que queremos programar, desde el menú «Herramientas»- «Tarjeta» – «Arduino Nano w/ATmega328» (en nuestro caso) :

Programar el bootloader de Arduino

Indicaremos también cual es el programador que estamos usando desde el menú «Herramientas» – «Programador» – «USBasp» (en nuestro caso):

Programar el bootloader de Arduino

Una vez seleccionada la tarjeta y el programador pulsaremos en el menú «Herramientas» – «Grabar Secuencia de Inicio»:

Programar el bootloader de Arduino

Si los conectores y el programador son correctos el IDE de Arduino nos indicará que se está grabando la secuencia de inicio en la Tarjeta I/O:

Programar el bootloader de Arduino

Tras finalizar el proceso de transferencia del bootloader a Arduino, el IDE nos lo indicará:

Programar el bootloader de Arduino

Nota: puede que muestre algún warning, suelen ser normales, el IDE mostrará este texto tras finalizar el proceso de carga del bootloader:

Finalizada la grabación de la secuencia de inicio
avrdude: warning: cannot set sck period. please check for usbasp
firmware update.

Tras haber programado el Arduino Nano con su Bootloader, ya podemos desconectar el programador del PC y los cables del Arduino.

Por último, para comprobar que el bootloader se ha programado correctamente podemos simplemente conectar el Arduino a nuestro PC y descargarle cualquier programa, como por ejemplo el que hace parpadear el LED y ver que efectivamente parpadea correctamente. En el siguiente tutorial explicamos paso a paso cómo conectar un LED a Arduino y cómo hacerlo parpadear: