Project 13: Capstone — RP2040/RP2350 Development Board from Scratch
Design, build, and bring up a custom RP2040/RP2350 board that runs your firmware reliably.
Quick Reference
| Attribute | Value |
|---|---|
| Difficulty | Level 5: Master |
| Time Estimate | 3-4 weeks |
| Main Programming Language | C + KiCad |
| Alternative Programming Languages | Rust |
| Coolness Level | Level 5: “I ship hardware” |
| Business Potential | 5. Real product foundation |
| Prerequisites | Schematic capture, PCB layout, boot flow |
| Key Topics | Power design, USB routing, QSPI flash, bring-up |
1. Learning Objectives
- Design a correct RP2040/RP2350 power tree and decoupling scheme.
- Route QSPI flash and USB with signal integrity in mind.
- Add debug headers and test points for bring‑up.
- Validate clocks, flash, and USB on first power‑up.
- Document a bring‑up checklist and troubleshooting flow.
2. All Theory Needed (Per-Concept Breakdown)
2.1 Power Tree and Decoupling
Fundamentals
MCUs require clean, stable power rails. Decoupling capacitors near power pins reduce noise and ensure stability.
Deep Dive into the concept
The RP2040/RP2350 requires multiple supply pins and recommended decoupling values. Place caps as close as possible to pins to minimize inductance. Separate analog and digital supplies if required. For USB and flash, ensure the 3.3V rail is stable under load. A power‑on reset circuit or supervisor can help prevent brownout boot failures.
2.2 QSPI Flash and Clock Routing
Fundamentals
External QSPI flash is mandatory; its wiring and timing determine boot reliability.
Deep Dive into the concept
Route QSPI lines short and matched, with proper series resistors if needed. Keep the crystal oscillator (XOSC) close to the MCU with the recommended load capacitors. Poor routing causes boot failures and random crashes.
2.3 USB Signal Integrity and ESD
Fundamentals
USB requires controlled impedance differential pairs and ESD protection.
Deep Dive into the concept
D+ and D‑ should be routed as a differential pair with controlled impedance and minimal length mismatch. Add ESD diodes near the connector. Provide VBUS power and protect it with a fuse or power switch.
3. Project Specification
3.1 What You Will Build
A custom RP2040/RP2350 dev board with USB, QSPI flash, SWD debug header, and at least one peripheral (sensor, LED strip, or display).
3.2 Functional Requirements
- Power rails meet datasheet specs.
- USB enumerates reliably.
- QSPI flash boots firmware.
- SWD debug header works.
- At least one peripheral operates correctly.
3.7 Real World Outcome
You power the board and it enumerates over USB, blinks an LED, and runs your firmware. SWD debugging works reliably.
4. Solution Architecture
Power -> MCU -> QSPI Flash
-> USB -> Host
-> SWD -> Debugger
5. Implementation Guide
5.10 Implementation Phases
- Phase 1: Schematic and power tree
- Phase 2: PCB layout and routing
- Phase 3: Bring‑up and validation
6. Testing Strategy
- Measure all rails on first power‑up
- Check XOSC with scope
- Flash and run a blinky
7. Common Pitfalls & Debugging
- Missing decoupling caps
- Incorrect USB routing
- Flash wiring errors
8. Extensions & Challenges
- Add battery charging circuit
- Add external connectors for expansion
9. Submission / Completion Criteria
Minimum Viable Completion:
- Board powers and flashes firmware.
Full Completion:
- USB enumeration and peripheral working.
Excellence:
- Production‑ready documentation and bring‑up checklist.