BreezyBox: A BusyBox-Like Shell And Virtual Terminal For ESP32

Much like how BusyBox crams many standard Unix commands and a shell into a single executable, so too does BreezyBox provide a similar experience for the ESP32 platform. A demo implementation is also provided, which uses the ESP32-S3 platform as part of the Waveshare 7″ display development board.

Although it invokes the BusyBox name, it’s not meant to be as stand-alone as it uses the standard features provided by the FreeRTOS-based ESP-IDF SDK. In addition to the features provided by ESP-IDF it adds things like a basic virtual terminal, current working directory (CWD) tracking and a gaggle of Unix-style commands, as well as an app installer.

The existing ELF binary loader for the ESP32 is used to run executables either from a local path or a remote one, a local HTTP server is provided and you even get ANSI color support. Some BreezyBox apps can be found here, with them often running on a POSIX-compatible system as well. This includes the xcc700 self-hosted C compiler.

You can get the MIT-licensed code either from the above GitHub project link or install it from the Espressif Component Registry if that’s more your thing.

One thought on “BreezyBox: A BusyBox-Like Shell And Virtual Terminal For ESP32

  1. The direction all my microcontroller projects go is to eventually provide some sort of interactive shell (mine tend to happen in a way that is abstracted so that it can happen via either serial or a web interface or sometimes even I2C). That seems to be the most compact way to add functionality to a device, and it also wraps nicely in a graphical shell should you need to do things that way. I’ve built an enormous amount of functionality into ESP8266s, to the point where I have all these ESP32s on hand for “something that requires them” but haven’t yet used them.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.