ULP (ESP32) : un exemple simple

L’ULP est un coprocesseur à très faible consommation (Ultra Low Power) intrégré au MCU ESP32. Il s’agit donc d’un tout petit processeur qui fonctionne quasiment indépendemment des coeurs principaux et qui peuvent accéder aux GPIO, à certains périphériques et qui dispose aussi d’un contrôlleur I²C.

L’ULP est aussi capable de fonctionner alors que l’ESP32 est en mode deep-sleep. Dans ce mode, quasiment tous le MCU n’est plus alimenté, excepté le domaine RTC, dans lequel se trouve l’ULP. L’ULP est aussi capable de réveiller l’ESP32 (wake-up).

On pourrait envisager d’utiliser l’ULP pour effectuer une mesure de température et réveiller l’application si on dépasse un certain seuil, par exemple.

Programmer cet ULP semble donc très intéressant, mais malgré la documentation toujours très complète de Espressif, j’ai eu du mal à trouver un exemple simple et complet expliquant la programmation de ce coprocesseur.

Voici donc en détail un exemple ultra-simple : le traditionel « blink« , qui consiste à faire clignoter deux LEDs du kit WROVER-KIT V3!

Continuer la lecture de « ULP (ESP32) : un exemple simple »

ESP32, ESP-IDF, CMake & CLion

Cela fait un moment que je travaille avec les processeurs ESP8266 et ESP32. Jusque maintenant, j’utilisais par le framework Arduino, surtout par facilité : il fournit pas mal de services et de librairies me permettant d’aller droit au but et d’écrire rapidement mon propre code.

Mais j’aime bien aller au fond des choses, me rapprocher du métal, des transistors, des périphériques et des registres. Pour cela, Espressif fournit un SDK qui semble bien documenté, et pour lequel on trouve énormément de ressources en lignes.

Ce framework, nommé ESP-IDF (« Espressif IoT Development Framework ») fournit des toolchains, API et outils permettant le développement d’applications pour les processeurs ESP32. Le framework Arduino intègre, emballe, ce SDK pour fournir un API d’un peu plus haut niveau, et surtout compatible pour d’autres plateformes.

Losque j’ai installé l’IDF, quelle ne fut pas ma (bonne) surprise de trouver des fichiers CMake ?! CMake est un outil opensource permettant de gérer le processus de build d’un projet, notamment des projets C++. Et CMake est supporté nativement par mon IDE préféré : CLion.

Du coup, il devrait être possible de créer, éditer, compiler et exécuter un projet utilisant l’ESP-IDF dans CLion, non? C’est ce que nous allons voir (TL;DR : la réponse est ‘oui’!).

Continuer la lecture de « ESP32, ESP-IDF, CMake & CLion »