Instalación de ESP-IDF en Ubuntu 22.04 con Python 3.10
Clase 9 de 30 • Curso de IoT: Programación de Microcontroladores ESP32
Espressif, la empresa detrás de la familia de chips ESP32, publíca su SDK oficial en GitHub bajo el nombre de ESP-IDF, o Espressif IoT Development Framework.
El IDF contiene todas las herramientas necesarias para el trabajo diario, como compiladores, ejemplos, scripts de python para el proceso de desarrollo y gestión de proyectos, así como las librerías o componentes que necesitemos para aprovechar nuestro hardware.
Como todo proyecto, es necesario cumplir ciertos requerimientos antes de instalarlo, para que el proceso pueda realizarse correctamente, en nuestro caso, hemos probado este flujo de instalación en un sistema Ubuntu 22.04 y Python 3.10, en el que pudimos comprobar que todo funciona correctamente.
Pasos de instalación
Para realizar este proceso de instalación, es necesario realizar cinco pasos:
- Preparar nuestro sistema con las dependencias necesarias.
- Clonar el repositorio de github con la versión del esp-idf que deseamos instalar.
- Ejecutar el script de instalación.
- Configurar el entorno para cada vez que vayamos a utilizar el esp-idf.
- Verificar la instalación.
Instalar las dependencias
El esp-idf utiliza algunas dependencias como cmake y ninja para la compilación de proyectos, las dependencias varían dependiendo del sistema operativo, pero en linux se recomiendan las siguientes: git wget flex bison gperf python3 python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
Por lo tanto, podemos instalarlas con el siguiente comando:
sudo apt-get install git wget flex bison gperf python3 python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
💡 En caso de que surja algún mensaje de error como que no se encontró alguna de las dependencias, puedes asegurarte primero actualizar tu sistema con: sudo apt-get update, y luego volver a intentar con la instalación.
Una vez instaladas las dependencias, vamos a validar que nuestra versión de python es la correcta con el comando:
python3 --version
Clonar el repositorio
Para este curso, vamos a utilizar la última versión estable del IDF, que es la v4.4.2. Por lo tanto, vamos a incluir ese dato al momento de clonar el repositorio. También vamos a pedirle a git que descargue todos los repositorios que son dependencias del IDF, y así contar con ellos durante la instalación, es decir, vamos a indicarle un clon recursivo.
Antes de clonar el repositorio, es recomendable crear una carpeta en la cual instalaremos esta y cualquier otra versión del IDF en el futuro, se recomienda crearla en el home:
# Creamos la carpeta mkdir ~/esp # Nos movemos a ella cd ~/esp
Ya dentro de la carpeta, ejecutamos el comando para clonar el repositorio:
git clone -b v4.4.2 --recursive https://github.com/espressif/esp-idf.git
Una vez que termina de clonar el repositorio, tendremos una carpeta llamada esp-idf en nuestro directorio actual, y nos moveremos a ella con cd ~/esp/esp-idf
.
Script de instalación
Una vez dentro de la carpeta, podríamos ver que existen varios archivos, como la carpeta de ejemplos y diferentes scripts, primero, vamos a ejecutar el script de instalación.
El comando para ejecutar el script de instalación es:
. ./install.sh
Con esto comenzará la instalación del IDF, descargando y compilando todo lo necesario.
💡 En caso de que el proceso de instalación falle, es necesario verificar que las dependencias se encuentran instaladas y que contamos con una versión de Python mayor a la 3.6, idealmente Python 3.10, pues es el que utilizamos durante las pruebas.
Una vez que termina la instalación, podemos ir al paso final, la configuración del entorno.
Configuración del entorno
Los proyectos generados con el IDF requieren dependencias y versiones muy específicas para funcionar. Es por eso, que entre los scripts, nos incluyen uno llamado export.sh que configura el entorno de la terminal para poder utilizarlos. Sin embargo, esta configuración dura únicamente hasta que se termina la sesión en la terminal, y es por eso que cada vez que vayamos a trabajar debemos volver a ejecutarlo.
El comando para configurar el entorno cada vez que queremos usarlo en la terminal, sería:
. ~/esp/esp-idf/export.sh
Sin embargo, podemos aprovechar los alias de Linux y crear un comando más corto, que podremos utilizar cada vez que sea necesario, para crearlo sería así:
alias get_idf='. ~/esp/esp-idf/export.sh'
Con esta configuración, tendremos el comando get_idf disponible siempre que abramos la terminal, sin importar la ubicación, y así hacernos la vida más fácil.
Para configurar el entorno en ocasiones posteriores, solamente debemos ejecutar el comando así:
get_idf
Podemos verificarlo abriendo otra terminal y ejecutando el comando.
Cabe mencionar que en teoría es posible agregar esta configuración a la de nuestra terminal para que se ejecute tan solo abrir la terminal. Sin embargo, esto no es recomendable, dado que esto podría causar conflictos con otros programas para otras tareas. Lo mejor de momento, es usar este alias siempre que vayamos a trabajar nuestros proyectos con el IDF.
Verificación de la instalación
Finalmente, ya con nuestro entorno instalado y configurado, podemos verificar nuestra instalación ejecutando el comando:
idf.py --version
Esto debería devolvernos la versión del IDF instalado, en nuestro caso muestra: ESP-IDF v4.4.2
Con todo esto, ya estamos listos para continuar el curso y compilar nuestro primer proyecto, podemos movernos a la carpeta del ejemplo blink, con el comando:
cd ~/esp/esp-idf/examples/get-started/blink
Y realizar la compilación del proyecto con el comando:
idf.py build
Si nuestra instalación es correcta, tomará un tiempo para compilar el proyecto y no mostrará ningún error.