A drone flies by using a microcontroller to rapidly adjust the rotational speed of its brushless motors via electronic speed controllers (ESCs), manipulating thrust and torque to achieve pitch, roll, yaw, and altitude changes. Understanding this reality shifts your focus on the workbench from simply connecting wires to managing high-frequency digital signals, minimizing electromagnetic interference (EMI) on SPI buses, and sizing power distribution boards for 100A+ transient spikes. In the embedded space, builders often confuse thrust (the vertical lifting force generated by propeller pitch and RPM) with torque (the rotational reaction force that the flight controller must actively counteract to prevent the drone from spinning out of control in yaw).
The Physics of Quadcopter Flight Dynamics
Unlike a helicopter that uses a complex swashplate to change the physical pitch of its rotor blades, a quadcopter relies on fixed-pitch propellers. To maneuver, the flight controller must vary the RPM of individual motors. A standard quadcopter uses two clockwise (CW) and two counter-clockwise (CCW) spinning motors. This diagonal pairing cancels out the net torque, allowing the drone to hover stably without spinning like a top.
When you push the right stick forward on your transmitter, the flight controller doesn't physically tilt a servo. Instead, it commands the rear motors to spin faster and the front motors to spin slower. This creates a thrust differential that pitches the nose down, vectoring a portion of the total thrust horizontally to move the drone forward.
| Movement | Front Motors | Rear Motors | Left Motors | Right Motors |
|---|---|---|---|---|
| Throttle (Up) | Speed Up | Speed Up | Speed Up | Speed Up |
| Pitch (Forward) | Slow Down | Speed Up | No Change | No Change |
| Roll (Right) | No Change | No Change | Speed Up | Slow Down |
| Yaw (Spin Right) | CCW Speed Up CW Slow Down |
CCW Speed Up CW Slow Down |
CCW Speed Up CW Slow Down |
CCW Speed Up CW Slow Down |
The Embedded Brain: Flight Controllers and PID Loops
The physical movements described above are impossible for a human to manage manually. They require a microcontroller running a Proportional-Integral-Derivative (PID) control loop. Modern flight controllers (FCs) typically use ARM Cortex-M4 or M7 chips, such as the STM32F405 or the STM32H743. These chips read raw orientation data from an Inertial Measurement Unit (IMU) like the BMI270 or MPU6000 via a high-speed SPI bus.
The PID loop compares the drone's current attitude (from the IMU) with the desired attitude (from your RC receiver) and calculates the exact motor speed corrections needed. The speed at which this loop runs is critical to flight stability, especially in high-vibration environments like a 5-inch freestyle drone.
An STM32F405 running Betaflight at an 8kHz PID loop frequency processes sensor data and outputs motor commands every 125 microseconds (1 / 8000 = 0.000125s). If the drone is traveling at 30 m/s (67 mph) during a fast dive, it moves exactly 3.75 millimeters between every single PID correction. This microscopic reaction time is why low-latency SPI connections and hardware-based low-pass filtering on the IMU are non-negotiable for modern acrobatic flight.
If the loop runs too slowly, the drone oscillates and crashes. If the IMU data is noisy due to poor mechanical damping or EMI, the derivative (D-term) of the PID loop will amplify that noise, sending violent, high-frequency jitter to the motors and causing them to overheat or desync. For deep dives into tuning these loops, the ArduPilot PID tuning documentation provides excellent mathematical breakdowns of how the P, I, and D terms interact in real-world flight.
Where You Meet This in Practice: Wiring and Protocol Selection
When you are actually soldering a drone together on your bench, the theory of flight translates directly into your choice of communication protocols between the flight controller and the ESCs. Historically, builders used analog PWM (Pulse Width Modulation) signals, which required manual endpoint calibration and were highly susceptible to electrical noise.
Today, you will use digital protocols like DShot300, DShot600, or Bidirectional DShot. DShot sends a 16-bit digital packet to the ESC for every single motor command, completely eliminating the need for calibration and providing built-in CRC error checking. As detailed in Oscar Liang's comprehensive guide on DShot protocols, moving to DShot600 requires ensuring your FC's UART or dedicated motor timers are configured correctly in the firmware, and that your signal wires are kept away from the high-current phase wires of the motors to prevent inductive crosstalk.
The most common cause of mid-air motor 'desyncs' (where the ESC loses track of the motor's rotor position and cuts power) is not a bad ESC, but a poor ground connection between the FC and the ESC. Always ensure the 5V and GND pins in your FC-to-ESC ribbon cable are making solid contact, and consider adding a low-ESR capacitor (e.g., 1000µF 35V) directly to the main power pads to absorb the voltage spikes generated when the flight controller abruptly commands a motor to slow down during a pitch maneuver.
Frequently Asked Questions
How does a drone fly forward if all propellers face up?
Propellers facing up generate thrust strictly along their axis of rotation (vertically, relative to the drone's frame). To fly forward, the flight controller slows down the front two motors and speeds up the rear two motors. This thrust differential causes the drone's nose to pitch downward. Once the drone is tilted, the vertical thrust vector is angled relative to the earth. A portion of that thrust now pushes horizontally against the air, propelling the drone forward, while the remaining vertical component continues to fight gravity to maintain altitude.
How does a drone fly without GPS or visual sensors?
A drone in 'Acro' or 'Rate' mode does not need GPS or optical flow sensors to fly; it relies entirely on its IMU (gyroscope and accelerometer). The gyroscope measures the rate of rotation around the pitch, roll, and yaw axes, while the accelerometer measures linear acceleration (including gravity). By mathematically fusing these two data streams (often using a Madgwick or Mahony filter), the microcontroller knows exactly how the drone is oriented in 3D space. It uses this data to stabilize the craft, but it does not know its absolute position on a map. If you let go of the sticks in Acro mode, the drone will hold its current attitude but will drift with the wind, as it has no positional reference to correct against.
How does a drone fly smoothly in high winds?
Smooth flight in high winds is a combination of mechanical design and software tuning. Mechanically, the drone needs a high thrust-to-weight ratio (typically 10:1 or higher for freestyle drones) so the motors have enough authority to fight gusts. Electrically, the PID loop's 'Feedforward' and 'Proportional' gains must be tuned aggressively enough to react to stick inputs, while the 'Integral' gain handles the steady-state error caused by a constant crosswind. If the I-term is too low, the drone will constantly drift downwind; if it is too high, the drone will 'bounce back' or oscillate when you try to stop. Furthermore, using Bidirectional DShot allows the FC to read the actual RPM of the motors and adjust the PID output dynamically, preventing the motors from bogging down when a sudden gust hits the propellers.






