Cavin McKinley’s BreadboardOS is an open-source firmware platform for the Raspberry Pi RP2040 MCU (for now) built around FreeRTOS and with a feature-packed CLI that reminds me of the Linux terminal.
The terminal implementation is based on a fork of the microshell project with some additional customization. It is organized into POSIX-style folders/files providing a familiar user interface for interacting with the hardware on the MCU.
BreadboardOS highlights:
- FreeRTOS-based
- Tools for checking system resources such as ps, top, free, and df commands
- Interaction with chip I/O and serial buses from the terminal using commands such as cat and echo, for example, you can print the list of GPIOs with:
1cat gpio - Onboard flash filesystem with wear-leveling (relying on the LittleFS project)
- Peripheral hardware initialization routines
- Watchdog service for system failsafe recovery
- RTOS task manager for dynamically controlling system services at runtime
The “rootfs” features similar directories (mnt, etc, bin, proc, dev, and lib) as in a minimal Linux distribution. You’ll find the source code released under an MIT license and instructions to build BreadboardOS on GitHub. There’s no documentation about the available commands that I could find, and the best way to check those out is to watch the video below or install Breadboard OS on a Raspberry Pi Pico or Pico W.
Right now BreaboardOS, or BBOS for shorts, is implemented on the Raspberry Pi RP2040 only, however, Cavin explains the platform was built with porting in mind and the project has been structured such that all hardware-specific code resides in a single directory (hardware_pico) with a header file (hardware_config.h) providing HAL functionality.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Is there an editor?
A package manager?
I wish they made this for the ESP32 as well…
Oh this is awesome, I’ve been dreaming about this for various uC and even ESP. That’s what I used to really love with BASIC when I was a kid: it was so easy to just explore by issuing commands, instead of having to compile, erase, upload, etc. That’s what I found convenient in Lua with node-mcu BTW, though Lua is not the most user-friendly interactive language. This thing looks perfect for developing, I’ll have to give it a try!
You have both Circuit Python and Micro Python which runs on the RP2040, various uC and ESP, that together with Mu editor gives you a modern “BASIC” experience which is super easy to work with. Having done projects in the past using NodeMCU and Lua, Circuit Python really take it to the next level of ease of use. Well worth checking out if you haven’t already.
Micropython has also a micro package manager called MIP:
Package management — MicroPython latest documentation