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.

9 thoughts 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.

    1. You don’t but these “simple devices” are roughly equivalent of Pentium PCs that were cutting edge a long time ago, but not really that long time ago. I had my first Linux experience on a 386DX40 with 4M of RAM. So it’s all good fun.

      1. Good fun and lots of work. I have a device with a camera an lcd 5 buttons and an sd card. it has wifi and bluetooth built in. I can carry it in my pocket. I think i used every possible input and output. it’s like a development board. it has many possible uses but only if i can change the firmware. it’s stuck doing one thing at a time.

Leave a Reply to Gus MuellerCancel 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.