BreadboardOS (BBOS) is a powerful firmware platform designed for rapid prototyping, built on FreeRTOS and enhanced by a feature-rich CLI. Emphasizing efficiency, it allows developers to quickly integrate modular components while simplifying debugging and testing tasks. With BBOS, jumpstart your projects and innovate without the hassle of repetitive infrastructure coding.
Breadboard OS (BBOS) is an innovative firmware platform designed for rapid prototyping, offering a feature-rich Command Line Interface (CLI) built on FreeRTOS. It empowers developers by providing essential tools for quick project initiation and iteration, making the process of debugging and testing substantially easier over multiple projects.
Key Principles
Breadboard OS is founded on three core principles:
- Every Project Should Start with a CLI: Leveraging a command line interface enhances the prototyping experience, making debugging across various projects significantly more efficient.
- Write It Once: Modularization allows you to save time by reusing basic infrastructure rather than rewriting code for each new project.
- Get Running Quickly: The sooner you can set up a project, the faster you can identify areas for improvement, without the need to reimplement the CLI every time.
Functional Overview
Built on the solid architecture of FreeRTOS, Breadboard OS facilitates the swift integration of functional blocks while managing task concurrency effectively. Users do not need extensive knowledge of Real-Time Operating Systems (RTOS) to get started. The platform incorporates a customized version of the microshell project for its CLI functionality, structuring it into POSIX-style directories to provide a user-friendly interface for interacting with MCU hardware.
Notable Features
- A comprehensive suite of system resource tools, including commands akin to
ps
,top
,free
, anddf
. - An RTOS task manager allows for real-time control of system services.
- Onboard flash filesystem equipped with wear-leveling thanks to littlefs.
- Custom initialization routines for selective peripheral hardware.
- Direct chip I/O and serial bus interactions directly from the command line.
- Watchdog service to ensure system recovery from failures.
- Command history accessible via arrow keys or
ctrl-a/ctrl-z
for ease of navigation.
Demo
Experience BBOS in action! Watch the demo video here.
Development Workflow
To start developing with Breadboard OS, you will set up your application by creating new "services"—these are standalone FreeRTOS tasks. An example service is contained in services/heartbeat_service.c
; this structure serves as a template for your own applications. Detailed documentation is available in services/services.h
to guide you through the creation process.
The project directory structure is organized into various components:
cli/
- CLI interface and microshell integration.driver_lib/
- A growing library of drivers for external peripherals.hardware/
- All MCU-specific implementations are housed here, segregated by hardware.littlefs/
- Contains the submodule for littlefs and its CMake wrapper.rtos/
- Configuration files for interfacing with FreeRTOS.services/
- Main application logic powered by FreeRTOS tasks.git_version/
- Metadata to incorporate GIT repository details into binaries.microshell/
- Submodule for CLI functionalities via microshell.
Contributing to BBOS
Breadboard OS thrives on community contributions! Anyone interested can enhance the project by:
- Experimenting with its features and reporting any bugs.
- Adding new drivers to
driver_lib
or useful utility services. - Porting the platform to new MCU environments.
To contribute, simply fork the repository, implement your changes, and submit a pull request.
Acknowledgments
Breadboard OS benefits immensely from the foundational work of other projects, including microshell, littlefs, cmake-git-version-tracking, freertos, and the Raspberry Pi Pico SDK.
Engage with Breadboard OS to transform your prototyping experience, and witness the power of rapid development combined with a robust CLI!