esptool-gui: Herramienta gráfica para subir binarios precompilados al ESP8266

esptool-gui screenshot

Cuando empiezas a trabajar con placas ESP8266, como ESPino, sueles programarlas directamente desde el mismo lugar donde escribes tu programa, como el IDE de Arduino, esto es muy conveniente ya que con un click el IDE se encarga de compilar los últimos cambios a tu código y subirlos a la placa para prototipar rápidamente.

Sin embargo, una vez que este proyecto se vuelve un producto y pasa a la etapa de producción lo anterior deja de ser práctico - no vas a estar instalando el IDE, compartiendo todo tu código y recompilándolo en cada PC en la fábrica - es más, es probable que tú, el desarrollador, no estés presente en la fábrica, sino que otros operadores se encarguen de cargar tu programa en las placas de producción.

Es necesario que el operador tenga una herramienta fácil de usar, a prueba de tontos.

En Makerlab llegamos a este punto con uno de nuestros proyectos, por lo que desarrollé una pequeña aplicación gráfica multiplataforma que facilita la subida de binarios precompilados (con terminación .bin) a los PCBs en producción, simplemente cargando el archivo en la interfaz una vez y presionando el botón “Upload”.


Nota: Existen otros programas gráficos para programar ESP8266, principalmente en Windows (como esp8266-reflash y nodemcu-flasher), en nuestro caso necesitábamos un programa que corriera en OSX y Linux.

Detalles técnicos

Esta aplicación no programa directamente el ESP8266, sino que aprovecha una herramienta ya existente de línea de comandos llamada esptool-ck, que es de hecho la misma que utilizan las bibliotecas de ESP8266 para el IDE de Arduino.

La aplicación fue escrita en C++ con las bibliotecas Qt 5. ¿por qué usé esto? por que YOLO. No, en realidad por que fue la primera biblioteca gráfica que utilicé cuando empecé a programar a los inicios de mi carrera, no la utilizaba desde hacía muchos años y me dio curiosidad por retomarla.

Me impresionó lo fácil que es utilizarla, a pesar de ser C++, un lenguaje que muchos desarrolladores de software actualmente ven como “demasiado bajo nivel". Una gran ventaja de esto es que es muy rápido, además de que con el mismo código* puedes tener una apariencia nativa** para OSX, Windows o Linux.


* Hay algunas diferencias que hay que tomar en cuenta, en especial entre Windows y sistemas UNIX, como el formato de rutas en el sistema de archivos y, en mi caso, la forma y ruta al llamar al subproceso de esptool.

** Aunque la mayoría de los Widgets (botones, checkbox, etc.) se renderizan de forma nativa, hay algunos que no son estándar en una plataforma pero en otra sí, o se aplican de forma diferente, por lo que se pueden ver fuera de lugar en algunos sistemas operativos, queda a consideración del programador ajustar esto.

¡Genial! ¿Dónde lo descargo?

Puedes ver el código fuente e instrucciones de instalación en Github: https://github.com/Rodmg/esptool-gui

Binarios: