DREHMFLIGHT — DIY VTOL FLIGHT CONTROLLER (TEENSY)

An open-source flight controller that runs on a Teensy and powers RC Starship belly-flop landings, tiltrotors, and eVTOL models — written as a single readable file so you can actually understand and modify the control laws.

by Nicholas Rehm

FULL CAD BOM FIRMWARE DOCS

RoboticsOpen-hardware

difficulty
●●●●
time
several weekends
license
GPL-3.0
repo
repo ACTIVE1,422 stars

WHAT YOU’LL NEED

  • Electronic partsfull list with part numbers in the repo BOM
  • Dev board / microcontrollerruns the project firmware
  • Soldering kit + basic toolsone-time buy, serves every future build

Partner

Reach your Pi from anywhereRemote desktop to the machine running this build — no port forwarding, works right from the browser.Try Getscreen.me
1

COMPAREE VERDICT

This is a flight controller for people who want to understand what is happening, not hide it behind a graphical tuner. Nicholas Rehm wrote dRehmFlight as one long source file so you can see the entire control loop — IMU read, PID, mixer, motor output — in a few hundred lines. That design choice means every university and company using it as a teaching tool can walk through the logic without reverse-engineering a library maze. It runs on a Teensy 4.0 and a cheap IMU, programmed through the Arduino IDE, and has flown RC Starships doing the real belly-flop maneuver, V-22 tiltrotors, and eVTOL prototypes. The part most likely to take your weekend is tuning: there is no GUI, so you will edit PID gains and test-fly, edit and test-fly, until it holds stable. If you have never tuned a quadcopter, start there first. If you have, and you want a controller you can read in an afternoon and adapt to a weird airframe, this is the honest path.

NOT IN THE REPO

  • The firmware is one Arduino-style .ino file — deliberately kept readable, not split into libraries.
  • Hardware BOM and wiring diagram are in the README; no PCB or case files.
  • Licensed GPL-3.0 — you can use it commercially but must release modifications under the same licence.
  • No GUI tuner or configuration app; all PID and channel mapping is done by editing constants in the source.
  • Documented well enough to be used as a university teaching tool, but assumes you understand flight control concepts.
  • The RC Starship belly-flop build is shown in video but has no separate build log — it is an example application, not a step-by-step guide.

Can I build this?

Printnothing required
BuyTeensy 4.0, MPU6050 or MPU9250 IMU, RC receiver, ESCs, motors, power distribution, battery, airframe
ToolsArduino IDE, soldering iron, multimeter, RC transmitter, test stand or safe outdoor space
Skillsintermediate soldering, RC flight experience, PID tuning, comfort reading and editing embedded C code
Timeseveral weekends — an evening to wire and flash, then iterative tuning flights until stable
Cost$$ — Teensy and IMU are cheap, but motors, ESCs, receiver, battery, and airframe will dominate
SafetyLithium battery fire risk and propeller strikes. Test-fly in open space, away from people. No mains voltage.

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

A desktop 3D printer that prints in full colorPartner · Kickstarter
A desktop 3D printer that prints in full color

HeyGears G1: 10M+ colors and transparent parts in one print, plus UV printing on flat objects. Figures, parts and labels — no painting.

See how it prints

Videos

Community video showing dRehmFlight in use; not an official tutorial by the creator.

Gallery

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Read the README hardware section and order a Teensy 4.0 plus MPU6050 or MPU9250 IMU (The README lists exact pin connections and supported hardware.)
  2. 2.Install Teensyduino and open the dRehmFlight.ino file(This is a single source file, not a library. You will edit it directly.)
  3. 3.Wire the IMU, receiver, and ESCs following the pin diagram in the README(Double-check 3.3V vs 5V tolerance on your IMU before powering on.)
  4. 4.Edit the radio channel mapping and PID gains in the source, then flash to the Teensy(Start with conservative gains and test on a bench with props off.)

Resources

Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.

KNOWN ISSUES

  • The Teensy 4.0 is 3.3V logic — if you connect a 5V receiver signal directly without a level shifter, you risk damaging the board.
  • There is no configuration GUI. Every setting is a #define or const in the source file, so if you are not comfortable editing code, you will struggle.
  • PID tuning is manual and iterative. If you have never tuned a flight controller before, expect multiple test flights and crashes before it holds stable.
  • The RC Starship example is shown in video but has no separate build guide — you are adapting the controller to your own airframe, not following a kit.
  • The controller assumes you understand basic flight control concepts (PIDs, mixing, stabilization modes). If you do not, the README will not teach you from zero.
  • GPL-3.0 licence means if you use this in a product, you must release your modifications under the same licence — it is not a permissive MIT-style licence.

Can I use this with a commercial off-the-shelf airframe?

Yes, as long as you can wire the receiver, ESCs, and IMU to the Teensy following the pin diagram. The hard part is tuning the PIDs for your specific airframe geometry and motor response.

Do I need to understand the code to use it?

Not to flash and fly, but you do need to edit the source to map your radio channels and set PID gains. If you want to modify flight modes or add features, you will need to read and understand the control loop.

What is the difference between this and Betaflight or ArduPilot?

Betaflight and ArduPilot are mature, feature-rich, and have GUIs. dRehmFlight is deliberately minimal and readable — the entire logic fits in one file. Use this if you want to learn or modify the control laws, not if you want the most stable out-of-box experience.

Can I build the exact RC Starship shown in the video?

The video demonstrates dRehmFlight running on an RC Starship doing the belly-flop maneuver, but there is no separate build log for that airframe. You would need to design or source a similar model and adapt the controller.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

The entire flight controller is one readable .ino file — no library maze, no hidden magic. If you have flown quads before, how long do you think it would take you to tune this for a tiltrotor?

CompareeTEAM1mo agoedited

Practical notes from our verification: the repository is active and the README is detailed enough that universities use this as a teaching tool. The RC Starship belly-flop demo is real — we watched the video — but there is no separate build log for that airframe, so you are adapting the controller to your own model. The single biggest decision is whether you want to edit code and tune PIDs manually, because there is no GUI and no auto-tune. If you do, this is the clearest path to understanding VTOL control we have catalogued.

Nicholas Rehm

Nicholas Rehm built dRehmFlight as a teaching tool and a readable alternative to black-box flight controllers. He designed it to be understood in an afternoon, not reverse-engineered over weeks, and it is now used in university courses and eVTOL prototyping worldwide.

GitHub

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.