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 »

Un bot pour Mastodon écrit en Micropython

Il existe déjà sur Mastodon, le réseau social libre et décentralisé dont j’ai déjà parlé à plusieurs reprises, toute une série de bots plus ou moins intéressants. Certains donnent l’évolution du nombre d’utilisateurs et d’instances sur le réseau, d’autres tootent automatiquement un résumé d’articles de blogs quand ils sont publiés, ou publient régulièrement des photos coquines. Bref, il y en a pour tous les goûts.

Moi, j’ai décidé d’écrire un bot… qui ne sert à rien! Non, l’intérêt de mon bot ne se situe pas dans sa fonctionnalité, mais plutôt dans sa conception : il va s’exécuter sur un processeur embarqué.

Dans le but de rendre le travail simple et rapide, j’ai choisis de le développer en Micropython. Et pour l’exécuter, mon choix s’est porté sur la carte Lopy de Pycom, basée sur un processeur ESP32, avec WiFi intégré. Continuer la lecture de « Un bot pour Mastodon écrit en Micropython »