Servo flight controls: replicating aircraft elevators and rudders
Inspiration
Basically in 2025 I discovered that I was able to apply to the British Airways work experience and one of the requirements was that I upload a project revolving around engineering to show my passion and commitment. So being me I discovered stuff about electronics online a week earlier and thought it looked really cool being able to build anything you want. And with that an idea sparked into my head about if I should make something with them while keeping it simple as it would be my first time interacting and building something with it. So I landed on the cheapest idea (AliExpress carries). Using servos to replicate the way a plane changes its direction of travel.
What I built
I used a Raspberry Pi Pico, three SG90 servos (the cheapest I could find) and a joystick. Wired it all up to a breadboard and got LOTS and LOTS of tutorials up from how to actually wire everything to how to use MicroPython in VS Code. In my opinion, the hardest part of this entire project was probably getting the diagonal movements to work. At first I thought there would be a built-in process to do the calculation but in the end I just wrote the code so it reads both directions every time and updates the three servos together.
How it works
- The joystick gives out a voltage between 0 V and 3.3 V for each direction depending on how far the stick is pushed. And in the middle it sits at around half.
- The Pico reads that voltage and turns it into a number from 0 to 65,535.
- The code works out how far the stick is pushed, from −1 (all the way one way) to +1 (all the way the other). Tiny movements near the middle are ignored so the servos don’t twitch.
- That turns into an angle for each servo, with 90° as the centre.
- The Pico tells each servo its angle with pulses. It sends one pulse every 20 ms, and a longer pulse means a bigger angle.
- Each servo moves to that angle and holds it because it keeps checking its own position and correcting itself.
- Up and down moves the elevators (nose up or down), and left and right moves the rudder (nose left or right). The code checks both directions every time, so pushing the stick diagonally moves the elevators and rudder together.
What I learnt
This was my first time building with electronics so I learnt how to read and utilise the analogue inputs and how servos are controlled with pulses.
What I would do next
Add ailerons for roll and a motion sensor so the system can keep itself level like a basic autopilot.
I think that would be really cool and will probably need it for my future rocket project :)
