Skip to content

ADNTIO/crispy-bootloader-rp2040-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crispy RP2040 - Bootloader + Firmware

AI-Assisted Development: This project is developed with AI assistance under human supervision. The working model is human-in-the-loop AI-assisted development (AI as pair programmer, human as decision-maker). See Development methodology and AI-assisted development concept.

A/B bootloader for RP2040 (Raspberry Pi Pico) written in Rust. The bootloader copies firmware from flash to RAM before executing it and supports two banks for safer updates over USB CDC.

For full documentation, start here: docs/index.md

Documentation

Quick Start

# Install rust-objcopy (cargo-binutils) + llvm tools
make install-tools

# Show all available targets
make help

# Build everything (bootloader UF2 + Rust BIN + C++ firmware)
make all

# Build with a specific version
make all VERSION=0.3.2

# Show crispy-upload usage
cargo run --release -p crispy-upload-rs -- --help

Project Structure

crispy-bootloader/       # RP2040 bootloader
crispy-fw-sample-rs/     # Sample Rust firmware (RAM execution)
crispy-fw-sample-cpp/    # Sample C++ firmware (Pico SDK)
crispy-sdk-cpp/          # C++ SDK for Crispy bootloader
crispy-common-rs/        # Shared Rust crate (protocol + flash utilities)
crispy-common-python/    # Python protocol library (with unit tests)
crispy-upload-rs/        # Host CLI (Rust) for upload / status / bank selection
crispy-upload-python/    # Host CLI (Python) for firmware upload
linker_scripts/          # Memory layouts for bootloader and firmware
tests/integration/       # Hardware integration + deployment tests
docs/                    # Project documentation (Diataxis structure)
VERSION                  # Single source of truth for project version

Testing

License

MIT - Copyright (c) 2026 ADNT Sarl

About

RP2040 A/B bootloader in Rust — copies firmware from flash to RAM with dual-bank support.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors