RP Flight Controller
A custom FPV flight controller built around the Raspberry Pi RP2354B.
This project is a personal hardware design experiment: the idea is to build a modern, digital-only FPV flight controller using a microcontroller family I enjoy working with instead of following the usual STM32-based approach used by most commercial FCs.
It is made with the only intent of havinf fun designing my own FPV hardware to see how hard it is and to get experience with avionics.
Why this project exists
Most FPV flight controllers are built around STM32 microcontrollers. They work well, but they are also very standardized.
I wanted to explore a different approach using the Raspberry Pi RP2354B, a modern microcontroller with a lot of IO, onboard flash, PIO peripherals, good documentation, and a development ecosystem I already enjoy.
Betaflight has started adding support for RP2350-class microcontrollers, which makes this project especially interesting: it becomes possible to imagine a serious RP-based flight controller rather than just a simple development board or proof of concept.
Design goals
The goal is not just to make a minimal board that boots.
The goal is to design something that looks and feels like a real FPV flight controller:
- Digital FPV focused
- Compatible with standard 4-in-1 ESCs
- Designed around Betaflight
- Onboard IMU and barometer
- SD-card Blackbox logging
- USB-C for configuration and programming
- Multiple UARTs for receiver, GPS, digital VTX, and expansion
- External I2C for GPS/compass modules or sensors
- Buzzer, LED, PWM, ADC, and spare IO pads
- Clean power architecture with 5 V, 10 V, and 3.3 V rails
- Debug access for development and board bring-up
The board is intended to be practical, but the main purpose of the project is learning, design exploration, and demonstrating embedded hardware design skills.
Main features
Planned hardware features include:
- Raspberry Pi RP2354B microcontroller
- Onboard flash through the RP2354 package
- BMI270 IMU
- BMP581 barometer
- microSD card slot for Blackbox logging
- USB-C connector
- Battery-side 5 V and 10 V regulators
- 3.3 V logic rail
- USB or battery-powered 5 V logic rail
- Digital VTX connector
- GPS connector
- ESC connector for a standard 4-in-1 ESC
- SWD debug connector
- Buzzer output
- LED output
- Spare UART, PWM, ADC, I2C, and GPIO pads
Digital-only FPV design
This flight controller is designed for modern digital FPV systems.
Because of that, it does not include analog video circuitry, an analog OSD chip, or analog camera routing. OSD support is expected to be handled through the digital VTX using a UART connection.
This keeps the board more focused and avoids adding legacy video circuitry that I do not personally plan to use.
Repository structure
The repository is organized around the KiCad hardware project and the written documentation.
.
├── README.md
├── .gitignore
├── Poundering.typ
└── RP_FC
├── RP_FC.kicad_pro
├── RP_FC.kicad_sch
├── RP_FC.kicad_pcb
└── RP_FC.kicad_prl
Current status
This project is still in development.
The schematic and PCB are not final, and the board has not yet been fully validated. The design may change as parts are selected, routed, reviewed, and eventually tested.
At this stage, this repository should be viewed as a design-in-progress rather than a finished flight controller ready for production or flight.
Disclaimer
This is an experimental hardware project.
It is not a certified or production-ready flight controller. Anyone using this design is responsible for reviewing, testing, and validating the hardware before connecting batteries, ESCs, motors, or propellers.
Never test motors with propellers installed during early bring-up.