1. Configuración del Entorno de Compilación
Esta guía detalla los pasos necesarios para configurar un entorno de desarrollo estable con el que compilar el binario de firmware MicroPython personalizado (firmware.bin) para el datalogger ISURLOG.
El firmware se basa en MicroPython v1.25.0 e incluye modificaciones propias orientadas a aplicaciones de registro de datos optimizadas.
ADVERTENCIA
Este proyecto deriva de MicroPython v1.25.0 e incluye modificaciones propias. Aunque se procura mantener la estabilidad, está sujeto a cambios y puede diferir del MicroPython original (upstream).
1.1 Plataformas de Desarrollo Soportadas
El ISURLOG se diseñó para ser compatible con distintas plataformas de desarrollo, incluyendo ESP-IDF, MicroPython y Arduino IDE. Sin embargo, es importante señalar que ISURKI garantiza compatibilidad total y soporte completo únicamente con MicroPython.
| Plataforma | Estado de Compatibilidad | Recomendación |
|---|---|---|
| MicroPython | Totalmente Garantizada y Soportada | Muy recomendable para aprovechar toda la funcionalidad. |
| ESP-IDF / Arduino IDE | La compatibilidad depende de la implementación concreta y de futuras actualizaciones; no se garantiza la funcionalidad completa. | No se desaconseja su uso, pero ISURKI centra el mantenimiento de compatibilidad y el soporte continuo únicamente en MicroPython. |
1.2 Entorno Recomendado
El entorno de compilación recomendado es Ubuntu Linux.
Para usuarios de Windows, la compilación nativa es compleja y no se recomienda. Utilizar el Subsistema de Windows para Linux (WSL) y seguir las instrucciones de Ubuntu de más abajo, para una configuración más estable y sencilla.
1.3 Instrucciones de Compilación (Ubuntu / WSL)
Paso 1: Instalar las Dependencias del Sistema
Abrir la terminal de Ubuntu e instalar todos los paquetes necesarios:
sudo apt update && sudo apt upgrade -y
sudo apt-get install build-essential libffi-dev git pkg-config
sudo apt install -y git wget curl flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
Paso 2: Clonar e Instalar ESP-IDF
Este firmware requiere ESP-IDF v5.2.x. Se recomienda la versión v5.2.6 para una compatibilidad óptima con la base de MicroPython.
# Crear un directorio para ESP-IDF
mkdir -p ~/esp
cd ~/esp
# Clonar la versión correcta
git clone -b v5.4.1 --recursive [https://github.com/espressif/esp-idf.git](https://github.com/espressif/esp-idf.git)
# Instalar la toolchain
cd esp-idf
./install.sh esp32
Paso 3: Activar el Entorno de ESP-IDF
Es necesario ejecutar ("source") el script de exportación en la terminal para configurar las variables de entorno.
# Añadir el comando de exportación al perfil
echo -e '\n. $HOME/esp/esp-idf/export.sh' >> ~/.profile
# Ejecutarlo para la sesión actual
source $HOME/esp/esp-idf/export.sh
Paso 4: Clonar Este Repositorio
Clonar el repositorio del firmware en el sistema:
cd ~
git clone [https://github.com/isurki-tecnica/isurlog-firmware.git](https://github.com/isurki-tecnica/isurlog-firmware.git)
# Entrar en el repositorio
cd isurlog-firmware
# Cambiar a la rama de trabajo (si no se está ya en 'main')
git checkout main
Paso 5: Compilar el Firmware
Por último, navegar hasta el directorio del puerto esp32 dentro del repositorio clonado y ejecutar los comandos de compilación:
# Navegar al puerto ESP32
cd ports/esp32
# Limpiar compilaciones anteriores (opcional, pero recomendable para una compilación limpia)
make BOARD=ESP32_GENERIC BOARD_VARIANT=SPIRAM clean
# Descargar los submódulos específicos de MicroPython
make submodules
# Iniciar el proceso de compilación
make BOARD=ESP32_GENERIC BOARD_VARIANT=SPIRAM
1.4 Archivos Generados
Ubicación del Binario de Firmware
El archivo .bin de firmware compilado se generará en el siguiente directorio:
ports/esp32/build-ESP32_GENERIC-SPIRAM/firmware.bin
Código de la Aplicación (app/)
Este repositorio también contiene la carpeta app/.
app/ no forma parte del firmware
El contenido de esta carpeta (main.py, config/, etc.) NO se compila dentro del firmware. Estos archivos representan la lógica de la aplicación en Python y deben subirse manualmente al sistema de archivos del ESP32 (usando herramientas como Thonny o rshell) después de grabar el firmware.bin. Esto permite actualizar la lógica de la aplicación con flexibilidad, sin necesidad de recompilar todo el firmware.