Arduino: cómo hacer que los HEX queden en una carpeta conocida

Varias veces me han preguntado cómo se obtiene el archivo final de la compilación en «idioma de máquina» o hexadecimal (NombrePrograma.HEX) de un programa creado con el IDE de Arduino (también llamado Sketch por algunos).

Este archivo es útil para varias operaciones, como por ejemplo «descompilarlo» para ver el assembler, y también porque sería posible grabar el programa usando un programador de chips en un lote de microcontroladores que se necesite para un proyecto, sin usar bootloader ni una placa Arduino cuando vamos a producir una equis cantidad de plaquetas para uso personal, o para un cliente.


La secuencia para tenerlos en una carpeta accesible es:

1) Abrir el IDE de Arduino

2) Abrir el menú «Archivos» y allí elegir «Preferencias»

3) En el panel de Preferencias, abajo de todo, ingresar a la capeta de «preferences.txt» por medio del enlace que está debajo de un texto que dice «Más preferencias pueden se editadas [etc]…»

4) Una vez abierta la carpeta donde esta el archivo de preferencias, cerrar el IDE de Arduino (esto es muy importante)

5) Hacer una copia del archivo de preferencias para tenerlo de reserva por cualquier problema que se presente.

6) Abrir el TXT preferences.txt con un editor de texto simple, como el Bloc de Notas o Notepad

7) Hay una extensa lista allí. Buscar en el archivo de preferencias la zona donde está esta opción:

sketchbook.path=C:\Users\toshiba pc\Documents\Arduino

Obvio que la dirección dentro del disco C: que va luego del signo «=» será propia de cada máquina

8) Puede estar o no definida la opción build.path (es la que le indica al compilador dónde debe guardar el archivo compilado). Allí se puede crear o editarla. En mi caso, yo debí insertarla porque no existía y escribí:

build.path=C:\Users\toshiba pc\Documents\Arduino\HEX

Nota: En la publicación fuente de esta aplicación dice que es importante que este código agregado quede ubicado después de la opción export.application, pero sin embargo esto sería en una versión anterior, ya que ahora cada vez que se abre el IDE de Arduino estas opciones quedan ordenadas alfabéticamente.

9) Ahora sólo queda guardar este archivo editado y correr el IDE

10) Para comprobar que funciona, compilar cualquier programa y revisar si ha aparecido la carpeta HEX, y dentro de ella el compilado .HEX. Por ejemplo, si se compila el famoso ejemplo Blink.ino encontraremos el archivo Blink.ino.hex. Pero también encontrarán un Blink.ino.with_bootloader.hex. Es importante, ya que en este caso obtendrán un HEX con el que se podrán programar chips que además posean el habitual bootloader de la placa Arduino.

11) Luego uno puede ir distribuyendo estos .HEX en las carpetas de cada proyecto, ya que sólo estarán allí hasta que se haga la compilación de un nuevo programa. El IDE de la versión actual los borra antes de escribir un nuevo HEX.