DREHMFLIGHT — DIY VTOL FLIGHT CONTROLLER (TEENSY)
An open-source flight controller that runs on a Teensy and has flown a model SpaceX Starship belly flop, a V-22 tiltrotor and eVTOL models - with all the flight logic in one readable sketch so you can actually understand and modify the control laws.
RoboticsOpen-hardware
Built withArduinoTeensy
- difficulty
- ●●●●○
- time
- several weekends
- license
- GPL-3.0
- repo
- repo ACTIVE1,463 stars
●●●●○ · several weekends · GPL-3.0 · 1,463 stars · repo ACTIVE
WHAT YOU’LL NEED
Jump to section
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 keeps the whole flight logic in one main Arduino sketch, so you can follow the entire control loop - IMU read, PID, mixer, motor output - in one place instead of digging through folders and classes. According to the README, universities and tech companies use it as a teaching tool for flight control. It runs on a Teensy 4.0 (or 4.1) and a cheap MPU6050 IMU, programmed through the Arduino IDE, and the creator has flown it on a model SpaceX Starship belly flop, a V-22 Osprey, a Joby-style eVTOL and many other odd airframes. 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 whose code you can actually read and adapt to a weird airframe, this is the honest path.
IN THE REPO
GOOD TO KNOW
- —The flight logic is in one Arduino sketch, deliberately kept readable; sensor and receiver drivers are bundled alongside it.
- —The README lists the required hardware with links; wiring and pin mappings are in the bundled PDF documentation. 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.
Parts to buy
8 itemsFrom our check of the build. Exact quantities and part numbers are in the creator’s BOM.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
Videos
Nicholas Rehm's own RC Starship belly-flop flight on dRehmFlight. For the build itself, the README links his tutorial series: hardware, radio setup, IMU mounting and how the code works.
More builds like this
All projectsGallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 1.Read the README hardware section and order a Teensy 4.0 plus MPU6050 or MPU9250 IMU (The README lists the hardware (Teensy 4.0, or 4.1 when 4.0 is out of stock, and a GY-521 MPU6050); pin connections are in the bundled PDF documentation.)
- 2.Install Teensyduino and open the dRehmFlight.ino file(This is a single source file, not a library. You will edit it directly.)
- 3.Wire the IMU, receiver, and ESCs following the pin diagram in the dRehmFlight VTOL Documentation PDF(Double-check 3.3V vs 5V tolerance on your IMU before powering on.)
- 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 flight logic lives in one readable main .ino file instead of a maze of folders and classes. If you have flown quads before, how long do you think it would take you to tune this for a tiltrotor?
Nicholas Rehm
Nicholas Rehm built dRehmFlight as a readable flight controller for hobbyists and non-coders stabilizing unusual VTOL creations. According to the README it has been used as a teaching tool for flight control in universities and tech companies around the world, and he documents it with tutorial videos and a PDF guide.
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.
CompareeTEAM2mo agoedited
Practical notes from our verification: the repository was last updated in January 2025, and the README plus the bundled PDF documentation are detailed enough that, according to the author, universities and companies use it as a teaching tool for flight control. The README also links official tutorial videos on building the flight controller hardware, setting up the radio link, mounting the IMU and how the code works. 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 yourself, because configuration happens in the Arduino sketch rather than in a GUI. If you do, this is the clearest path to understanding VTOL control we have catalogued. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.