- Projet de démonstration qui transforme un microcontrôleur ESP32-S3 en mini-PC à démarrage immédiat, avec shell, éditeur, compilateur et installateur d’apps
- BreezyBox est un composant de mini-shell pour ESP-IDF, incluant des commandes de type UNIX ainsi que des fonctions vterm et VFS
- Fonctionne sur la carte Waveshare ESP32-S3-Touch-LCD-7B et peut être facilement adapté à d’autres cartes
- Après un fork, il est possible de l’exécuter sur sa propre carte ou d’utiliser la sortie standard en codes ANSI via une console USB
- Publié sous licence MIT avec l’objectif d’élargir l’écosystème
Aperçu de BreezyBox
- Projet de démonstration permettant d’utiliser un ESP32-S3 comme un PC sans Linux, avec des fonctions de shell, d’éditeur, de compilateur et d’installation d’apps
- Il vise une expérience proche de celle d’un Raspberry Pi, mais sans la surcharge d’un OS de niveau serveur/desktop
- BreezyBox est un composant de mini-shell basé sur ESP-IDF, qui met en place un environnement simple d’exécution de commandes
- L’ESP32-S3 dispose d’une structure de ressources comparable à celle des PC de l’ère DOS, avec en plus des fonctions de communication sans fil
- Le projet décrit le potentiel de cette puce comme une « technologie petite et élégante », tout en minimisant la taille du code
Composition de BreezyBox
- BreezyBox comprend vterm, VFS, le suivi du CWD, des commandes de type UNIX et un installateur d’apps
- Le chargeur ELF et les fonctions d’édition de liens dynamiques sont déjà inclus dans les composants ESP-IDF
- Le nom s’inspire de BusyBox, et l’ensemble prend la forme d’une couche en espace utilisateur fonctionnant sur FreeRTOS
- Il peut être ajouté à un projet ESP-IDF en une ligne et fonctionne avec les seules entrées/sorties de base
Caractéristiques du dépôt de démonstration
- Ce dépôt est une implémentation d’exemple de BreezyBox, configurée pour une carte spécifique (Waveshare ESP32-S3-Touch-LCD-7B)
- BreezyBox délègue l’affichage et la configuration de la carte au firmware de l’utilisateur
- Les utilisateurs peuvent s’appuyer sur le code pour l’adapter à leur propre carte ou écran
- L’utilisation du contrôle de label texte LVGL simplifie l’implémentation de la sortie LCD, et l’exécution via une console USB est également possible
Utilisation
- Il est possible de forker puis cloner le dépôt pour l’exécuter sur sa propre carte
- Testé sur une carte d’environ 40 euros, et également utilisable sur des cartes LCD S3 à bas coût
- En utilisant une console USB, on peut vérifier la sortie en codes ANSI dans l’IDF Monitor de VSCode ou dans Tabby
- Le moteur de rendu de police a été écrit à la main, mais il s’agit d’une implémentation optionnelle choisie pour garantir des performances supérieures à 30 FPS
Contributions et extension
- Le projet est publié sous licence MIT, ce qui permet de le modifier et de le redistribuer librement
- Éléments pour lesquels des contributions sont demandées
- Ajout d’apps ELF : il est possible de créer de nouvelles apps en s’appuyant sur les exemples du dépôt breezyapps
- Exemples de firmware pour diverses cartes : propositions variées bienvenues, en C/C++, avec GUI, portages de jeux rétro, etc.
- L’objectif est d’encourager davantage d’utilisateurs à exploiter BreezyBox et d’élargir un écosystème d’exemples immédiatement réutilisables
Aucun commentaire pour le moment.