Single-Motor Drone: He Used 20 Lines of Code to Let the Rotor Steer Itself

A developer built a drone that controls pitch and roll with a single motor, a 3D-printed hinged hub, and custom firmware—plus a flash-synced observation method.
Reddit developer u/jyjblrd spent months building a drone that flies with just one motor. The key is a 3D-printed PPA-CF hinged hub: blade inertia lag during acceleration creates cyclic pitch, and 300 torque pulses per second precisely timed to the rotation angle let one motor provide both thrust and pitch/roll control. Since a 0.2 ms control loop is already 20 degrees late at 20,000 RPM, he wrote custom motor controller firmware to compute onboard. Body spin is resolved by an infrared beacon in a room corner giving heading once per revolution. He also invented a "poor man's high-speed camera"—syncing a flash with the motor controller to freeze rotor attitude under long exposure in the dark. Code and CAD are open-sourced on GitHub—a fascinating blend of under-actuated control and open-source hardware.
Most drones need at least four motors to stay stable, but a developer on Reddit (u/jyjblrd) spent several months building a drone that can fly with just one motor. Even better, to solve the observation problem during debugging, he also invented a "poor man's high-speed camera"—syncing a flash with the motor controller to capture the rotor's attitude at precise angles.

How does one motor control two axes?
The core secret of this drone is hidden in the 3D-printed hub. Printed in PPA-CF material, the hub contains a hinge structure. When the motor accelerates, the blades lag due to inertia—one blade's pitch increases while the other decreases. This produces a cyclic pitch effect, similar to how a helicopter changes blade angle of attack via a swashplate.
Rather than using a swashplate, the developer applies 300 torque pulses per second, precisely timed to the rotor's rotational angle. This way, the same motor that generates thrust also handles pitch and roll control. The mechanical structure is minimal, but software complexity skyrockets.
Cyclic pitch is the classic control method for helicopter rotors: the blade's angle of attack (pitch) varies periodically with the azimuth angle, producing an asymmetric lift distribution in the rotor plane that combines into a tilted thrust vector. Traditional helicopters achieve this mechanically via a swashplate, whereas this 3D-printed hub uses hinges and inertial lag to let pitch variation be indirectly modulated by the timing of torque pulses, eliminating the swashplate and its servo mechanism. This "swashplate-free cyclic pitch" is known in micro-air-vehicle research as "cyclic pitch tip actuation" or "passive pitch"—the key is that the hub's flexibility or hinge dynamics must precisely match the pulse frequency, otherwise the thrust vector spirals out of control.
A 0.2 ms control loop is already 20 degrees late
At nearly 20,000 RPM, the rotor turns about 120 degrees per millisecond. A 0.2 ms control loop means that by the time you calculate how much torque to apply, the rotor has already moved 20 degrees. This is fatal for control precision.
So the developer made a bold decision: write custom firmware for the motor controller, putting the torque pulse calculation directly on the onboard chip rather than relying on an external flight controller. The original post notes: "The mechanical simplicity hides a lot of software work." This sentence is the key to understanding the whole project—everything saved in mechanical parts was made up for with real-time computation and firmware logic.
The code and CAD models are open-sourced on GitHub (github.com/jyjblrd/single-propeller-drone), so readers interested in embedded control and flight dynamics can reproduce it directly.
An under-actuated system is one where the number of actuators is less than the degrees of freedom that need independent control. Multi-rotor drones typically have four motors controlling six degrees of freedom—already under-actuated—but achieve full-state controllability through coupling between attitude angles and thrust. A single-motor drone goes further: only one thrust source, yet it must control pitch, roll, and yaw (yaw is observed indirectly via spin and an infrared beacon). Control difficulty rises exponentially. Control law design for such systems typically relies on dynamic coupling—using the rotor's gyroscopic effect, the hinged hub's lead-lag motion, and the moments generated by cyclic pitch to "distribute" a single actuator's output across multiple axes through high-frequency timing modulation. Academic monocopters and cyclic-pitch micro air vehicles (such as Penn State's Piccolissimo) fall into this category.
Body spin and infrared "lighthouse" positioning
The single-motor approach has a side effect: the body slowly spins. Conventional drones derive yaw from gyroscope integration, but this drone needs an absolute heading reference.
The solution is clever—place an infrared "lighthouseAd" beacon in a corner of the room, and the body sees it once per revolution. From this periodic signal, the flight controller can calculate the spin period and heading angle. This is similar in concept to the early HTC Vive Lighthouse positioning, except here only one fixed beacon and one receiver are used, at a much smaller scale.
Lighthouse positioning is the indoor optical tracking solution used by HTC Vive: two base stations emit sweeping laser fans, and photoelectric sensors on the receiver calculate their azimuth and distance relative to the base station based on the time difference of the sweep's arrival. The infrared "lighthouse" scheme in this article is a minimalist cut—just one fixed beacon emitting a periodic infrared signal, received once per body revolution, essentially a "heading pulse." The flight controller measures the interval between consecutive pulses to get the spin period, and combines it with the gyroscope-integrated angle at pulse arrival to back-calculate absolute heading. This single-beacon scheme cannot provide position information, but it's sufficient to solve yaw drift for a single-motor drone, at far lower cost than visual odometry or motion capture systems.
The "poor man's high-speed camera": flash-synchronized observation
One of the biggest challenges during development was seeing what the rotor is actually doing at high speed. A regular camera just captures a blur.
The developer's trick: sync the camera flash with the motor controller. The controller triggers the flash when the rotor reaches a specific angle, and the camera uses a long exposure in a dark environment to capture the rotor attitude "frozen" by the flash instant. This effectively replaces an expensive high-speed camera with a single flash and precise timing control.
The value of this method isn't saving money per se, but the mindset it reveals: when you can't directly observe a high-speed process, use the controller's event signal to drive your observation equipment, turning an invisible process into a series of analyzable static images. For developers working on motor control, fluid experiments, or vibration analysis, this technique transfers directly.
Stroboscopic imaging is a classic observation method: when the observed object moves periodically, illuminate it with short light pulses synchronized to the motion period—each flash "freezes" the object's instantaneous attitude at a specific phase, and with long exposure the camera records the superposition of these instants. If the flash frequency slightly mismatches the rotation frequency, you can even capture a "slowly rotating" stroboscopic animation of the rotor for angle-by-angle blade deformation analysis. The key is timing synchronization precision—the flash delay must be far shorter than the motion period, or the image blurs. The developer takes the flash trigger signal directly from the motor controller, naturally aligned with the rotor angle, avoiding the extra latency and installation error of external photoelectric sensors.
What's the significance of a single-motor drone?
From an engineering perspective, the most notable aspect of this project isn't "showing off," but its exploration of under-actuated systems. When the number of actuators is less than the degrees of freedom to control, the system must exploit dynamic coupling to achieve control—exactly what this drone does: one thrust source, influencing multiple axes simultaneously through timing modulation.
Such research has academic precedents (e.g., monocopters, cyclic-pitch schemes), but open-source hardware implementations are rare. Combining a 3D-printed hub, custom ESC firmware, and infrared positioning, this project compresses knowledge from multiple disciplines into a palm-sized aircraft.
The full principle explanation is in the developer's YouTube video (youtube.com/watch?v=Ndftcft6XhU), and both code and CAD are open-sourced. If you're interested in embedded real-time control, additive manufacturing, or flight dynamics, this is a project worth reading line by line.
FAQ
Can this drone hover stably? According to the original post, it can control pitch and roll, and the body slowly spins. Hover stability depends on the timing precision of the control loop, which is exactly what the developer's custom firmware is designed for.
Can an ordinary person reproduce it? It requires 3D printing (PPA-CF material), motor controller firmware development skills, and basic flight control knowledge. The GitHub repository provides code and CAD, but the debugging process requires some embedded experience.
How exactly do you build the "poor man's high-speed camera"? Sync a camera flash with the motor controller, shoot with long exposure in a dark environment, and the flash instant freezes the rotor attitude. The core is timing synchronization, not hardware cost.
One-line Summary
A developer built a drone that controls pitch and roll using a single motor, a 3D-printed hinged hub, and custom firmware—and invented a flash-synchronized observation method.
Paragraph Summary
Reddit developer u/jyjblrd spent several months building a drone that flies with just one motor. The key is a 3D-printed PPA-CF hinged hub: when the motor accelerates, blade inertia lag creates cyclic pitch, and combined with 300 torque pulses per second precisely timed to the rotation angle, the same motor provides both thrust and pitch/roll control. Because a 0.2 ms control loop is already 20 degrees late at 20,000 RPM, the developer wrote custom motor controller firmware to run calculations onboard. Body spin is resolved by an infrared beacon in a room corner, providing heading once per revolution. During debugging he also invented a "poor man's high-speed camera"—syncing a flash with the motor controller to freeze rotor attitude under long exposure in the dark. Code and CAD are open-sourced on GitHub, making it an intriguing blend of under-actuated system control and open-source hardware.
Related articles

Gemini 4 Argon Hands-On: AI Builds Board Games, Constructs Temples, and Trains Robots Autonomously
Gemini 4 Argon hands-on roundup: AI autonomously builds a desk racetrack and temple in Blender, writes a ray tracing engine, trains a humanoid robot to sink 7 shots, plus API pricing and developer access.

The Magic Octagonal Coin: Why Only 9% of People Can Predict Its Flip?
Only 9% of people can correctly predict the Magic Octagon coin flip. This article explains its spatial rotation mechanism, common cognitive pitfalls, and a new hypothesis based on Relevance Theory, exploring the limits of human spatial reasoning.

Sam Altman: AI Is Entering the Era of Scientific Discovery — Math Breakthroughs Will Replicate in Biology and Energy
Sam Altman says AI is entering the era of scientific discovery — math breakthroughs will replicate in biology, materials science, and energy to help develop new drugs and energy sources.