Implement bare-metal (no std library) C++ and Rust system controllers on a resberry pi pico
Embedded systems form the backbone of modern electronics — from IoT to robotics. They operate under tight memory and timing constraints, prioritizing reliability and control over raw convenience. This project develops a stepper motor controller on the Raspberry Pi Pico 2, implemented twice: • Once in C++ using the Raspberry Pi SDK. • Once in Rust using the rp-hal embedded hardware abstraction library.
- 🔹 [Goal 1] — Understand bare-metal programming (no standard library).
- 🔹 [Goal 2] — Learn GPIO, PWM, and interrupt control at the register level
- 🔹 [Goal 3] — Compare safety, readability, and performance between Rust and C++
| Category | Tools / Languages |
|---|---|
| Language | C/C++, Rust |
| Frameworks | rp-hal, embedded-hal |
| Tools | Raspberry Pi Pico SDK |
| Hardware | Raspberry Pi Pico, Stepper Motor, etc. |
- Step 1 – Setup: brief description (e.g., initialize repo, install deps)
- Step 2 – Core Functionality: what’s being built and how
- Step 3 – Comparison / Benchmarking: if relevant
- Step 4 – Visualization / Output: how results are displayed or tested
- Step 5 – Deployment / Packaging: optional (web, CLI, hardware, etc.)
📈 You can add diagrams or screenshots here

This is a rust project so installing Rust is essential. This can be found at https://www.rust-lang.org/tools/install
# Clone the repository
git clone https://github.com/<yourusername>/<project-name>.git
cd <project-name>
# Install dependencies
cargo build# Example run command
npm run dev # or python main.py / go run main.go / cargo run- Key metrics or outcomes
- Screenshots or performance graphs
- Lessons learned, trade-offs, or insights
- Feature idea 1
- Feature idea 2
- Optional enhancements, refactors, or optimizations
Olly Bayley
GitHub: @ombayley
This project is licensed under the GNU General Public License (GPL) — See the LICENSE file for details. The GPL License is a copyleft license, that requires any derivative work to also be released under the GPL License. This means any derivative software that uses this code remains open-source and freely available to the public.