BreadboardOS firmware for the Raspberry Pi RP2040 features a Linux-like terminal

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 Raspberry Pi Pico
BreadboardOS running on Raspberry Pi Pico board

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:
  • 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
Raspberry Pi RP2040 terminal GPIO control
Examples of commands to list devices and control GPIO pins (from the video below)

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.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
5 Comments
oldest
newest
zoobab
4 months ago

Is there an editor?

A package manager?

GunterO
GunterO
4 months ago

I wish they made this for the ESP32 as well…

Willy
Willy
4 months ago

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!

UncleRedz
UncleRedz
4 months ago

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.

zoobab
4 months ago

Micropython has also a micro package manager called MIP:

Package management — MicroPython latest documentation

Khadas VIM4 SBC