What it is
A fixed-wing RC plane that pipes Flysky receiver input through a custom stabilization layer before it reaches the control surfaces. An MPU6050 IMU reads roll and pitch in real time, and a complementary filter keeps the heading stable against wind gusts that would otherwise knock a small foamboard plane sideways.
Why I built it
Flying a plane is harder than driving a car. You can't stop. You can't think. By the time you've decided what to do, you're already doing it — or the plane is. I wanted to build something where software helps, not replaces, the pilot. A gentle hand on the yoke, not autopilot.
What's inside
- Flysky FS-i6 transmitter into an iA6B receiver, same as my RC car.
- Arduino Nano sitting between the receiver and the servos, acting as the mixer.
- MPU6050 IMU on I²C, updating orientation at 200 Hz.
- Complementary filter blending accelerometer (slow but absolute) and gyro (fast but drifting) data.
- Brushless motor + 30A ESC for thrust.
- Scratch-built foamboard airframe — slightly heavy, surprisingly strong.
Where it's at
Everything runs on the bench. The servos respond to stick input, the stabilizer corrects when I tilt the plane by hand, and the telemetry comes through clean on the serial monitor. What's left is the actual first flight — tuning gain values on a real airframe in real wind. That part can't be simulated away.
If it works first try, I'll be shocked. If it doesn't, I'll know more than I did before takeoff.
What I'm learning as I go
Control theory is abstract until you're trying to tune a PID loop at 5am the morning before a maiden flight. Then it becomes very, very concrete. I'm also learning that electronics is only half the problem — aerodynamics is real, balance is real, and a plane that's nose-heavy by 2cm won't fly no matter how clever the code is.