Peter’s simulator flight controller project 

 March 8, 2022

By  Peter

Join Our Mailing List

We publish fresh content each week. Read how-to's on Arduino, ESP32, KiCad, Node-RED, drones and more. Listen to interviews. Learn about new tech with our comprehensive reviews. Get discount offers for our courses and books. Interact with our community.

One email per week, no spam, unsubscribe at any time.

When I’m not working, I often enjoy “flying” a simulated Cessna 172 in a simulated world. For this, I use X-Plane 11. With the help of online courses, I am learning the basics of flight without actually getting into a plane. My (not so secret) hope is that I will eventually do real-world flight training, get a Private Pilot License, and take to the skies in a real plane.

Until that time, I find that a flight simulator is an excellent tool for learning flight theory and practising all the skills I will need as a private pilot. With the simulator, I don’t have to worry about bad weather, hard landings, crushing my plane, the cost of fuel, or driving three hours to the flight club airport.

I plan to use the simulator to understand the curriculum required for a Private Pilot License, practice some basic skills, and then go for the real thing with an instructor.

One of the first things I had to do after purchasing the flight simulator software was the flight control hardware. People can go totally crazy here, with some going as far as converting their garage into a cockpit. At the very least, I had to look for a yoke, throttle levers and rudder pedals. These items were expensive considering they were relatively simple plastic devices with trivial electronics inside. Their pricing ranged from $50 to $500. Reviews seem to equate those controllers as “garbage” at the cheaper end. At the higher end, quality was premium, but they were impossible to find during the pandemic.

Another successful take-off in a simulated world.

The more I researched the hardware, the more I realized that building my own controllers would be far better than buying them. I like making things, and this would be an opportunity to combine my love of the making and knowledge of Arduino with my desire to learn how to fly.

Building on open source

I did some Googling and found that there were many people out there who were thinking the same way. More than that, they had designed printable flight controllers and posted their CAD plans online. After reviewing many such projects, I settled for Michael Rechtin’s project (see his Youtube video).

Michael’s CAD files contained everything I needed, including the Arduino code for an Arduino Micro. The Arduino Micro contains the Atmega 32U4 MCU with a built-in USB host. This means that I could use an Arduino to take input from buttons and potentiometers and relay the data to a computer via USB. With the help of the Joystick library, the computer would recognize the Arduino as a joystick device.


Once I had collected the CAD files, I started printing them using my Prusa printer. This was my largest print job so far, so I needed a system to keep track of my progress. I used a table, like the one in the resources below (see table “Peter’s 3D printing tracking list). I had to compete for the printer with my kids, so getting everything printed took me almost three weeks.

While the printer was doing its thing, I shopped for the non-printable mechanical and electronics parts. Instead of an Arduino Micro, I used a Pololu A-Star 32U4 Mini LV. This is cheaper and easier to find than the genuine Arduino. Like the Arduino Micro, the A-Star 32U4 Mini has a full-speed USB interface perfect for a custom joystick.

I was able to find (almost) everything else at Aliexpress. You can find my list below (see Parts List), along with the URLs for each item. One item didn’t make it, so I found an alternative on eBay.

Much of my effort in the ordering process was to find items that matched as close as I could to Michael’s specs. A single error in this process could cost me weeks of wasted time, as I would have to re-order from China.


Finally, almost two months after starting the project, I had all parts printed and delivered. It was time to do the assembly.

There are no assembly instructions, so I used Michael’s Youtube video. I played the video a few seconds at a time, filling in the many blanks in the process. I have minimal experience working with mechanical parts, so I often had to look at alternative sources of instruction. I tried hard not to break any of the plastic parts. Although I could re-print them, some would need up to 10 hours.

3D printed rudder pedals on a timber panel.

Integrating the pots in the yoke and rudder pedals was reasonably straightforward. I used Ethernet CAT cable for all of the connections between pots, switches and the MCU, and flexible cable to connect the rubber pedal pot to the MCU.

I used an 1800 x 405mm x 18mm timber panel (cut in half along the long edge) to base the yoke + throttle + MCU box and the pedals. I also used anti-skid pads under the panels to keep them from sliding on the desk and floor.

Yoke, throttle quadrant, switch box and MCU box on a timber panel. Pedals on the floor.

I also used a couple of desk clamps to prevent the yoke assembly from sliding on the desk.

As for the electronics, the key was getting the wires from the pots and switches to the MCU board. I mounted the board on an Adafruit prototyping board using two headers.

Polopu A-Star 32U4 Mini LV on a prototyping board with screw terminals.

I added 11 double screw terminals to secure the power and signal wires to the board without soldering. As you can see in the photo, the amount of space on the prototyping board is limited, and the wires are very close to each other. I took the time to test each solder for shorts before continuing to the next one.

Behind the prototyping board.


Michael has provided an Arduino sketch which I used as a prototype. I made a few modifications to accommodate for my pots and switches, and work with X-Plane.

The key for this sketch is the Joystick library. Once you understand how to use this library, you can create your own custom joystick.

I found that the Arduino sketch was the easiest part of this project.


Finally, I completed the mechanical assembly and the programming, and it was time to “fly”. First, I had to set up the flight controls so that X-Plane could take input from them and assign their inputs against the various control surfaces of the simulated plane. So, the rudder pedal pot would control the Cessna’s rudder; the two yoke pots would control the elevators and ailerons. I also assigned the three knobs to the plane’s throttle, fuel mix, flaps, switches to the brakes, autopilot heading, and altitude hold.

X-Planes offers an intuitive settings tool where I can select the joystick device (the Pololu A-Star 32U4, from the device drop-down menu) and then assign the available axes and buttons to a function of the simulated plane.

X-Planes offers an intuitive settings tool.

Flying with my yoke and pedals – impressions

It was a long and challenging build, but I thoroughly enjoyed it. I rarely do an electronics project for fun these days. Because of my focus on my books and courses, every time I make something, I document it by default to convert it into a learning resource for others. This makes “making” feel too much like a job. It slows me down and adds a level of complexity and effort that often takes the fun out of making.

With this project, I decided that I would make it for fun. Michael Rechtin had already done an excellent job creating the CAD files, sketch, and assembly video. Thanks to his work, I would simply enjoy the build and go “flying”.

I enjoyed building it. And it worked.

I was thrilled to experience the smooth performance of my new flight controls in the flight simulator. The yoke and pedals worked perfectly, with no dead zones that users of commercial controllers often report. The X-Plane controller calibration was easy. Once I had everything sorted, I could finally enjoy flying my Cessna.

I now have an appetite to build more 3D printed instruments for my Cessna. Most likely, I will follow the same process, i.e. research for open-source CAD files, and take it from there. I think that the next instrument for printing will be a pitch trim wheel because that’s what I find myself doing most (and I’m using keyboard shortcuts at the moment).



Peter’s 3D printing tracking list

Part namePrintedBelongs to…
BarYesFlight Yoke
Yoke (in two parts)YesFlight Yoke
Pinion bearing holderYesFlight Yoke
Hub SpacerYesFlight Yoke
Pot holder rollYesFlight Yoke
Pedal 1YesRudder Pedal
Pedal 2YesRudder Pedal
Yoke ShaftYesFlight Yoke
Linear Bearing Holder UpperYesFlight Yoke
Linear Bearing Holder LowerYesFlight Yoke
Pot_Holder_PitchYesFlight Yoke
Yoke Pot holderYesFlight Yoke
RackYesFlight Yoke
PinionYesFlight Yoke
Pot HolderYesFlight Yoke
Rod End 2YesFlight Yoke
Rod End 1YesFlight Yoke
Bearing Housing UpperYesFlight Yoke
Bearing Housing LowerYesFlight Yoke
Pedal Band Holder 2YesRudder Pedal
Pedal Band Holder 1YesRudder Pedal
Rubber Band Holder BackYesRudder Pedal
Pot HolderYesFlight Yoke
Rod Holder 1YesFlight Yoke
Rod Holder 2YesFlight Yoke
Pedal Holder 1YesFlight Yoke
Pedal Holder 2YesFlight Yoke
Small gearYesFlight Yoke
Gear MountYesFlight Yoke
Lever Knob x 3YesControl box
Lever Low Tolerance Recommended x 3YesControl box
Lever High Tolerance x 3NoControl box
Lever CoverNoControl box
Button CoverYesControl box
BaseYesControl box

Parts list

Part namePurchasedQuantitySource
8mm x 200mm Steel RodsYes4Aliexpress
30x42x7 BearingYes5Aliexpress
8mm Linear BearingYes4Aliexpress
V-Slot Bearing Plastic Pulley WheelsNo2Aliexpress
3/8 x 7/8 BearingYes2Aliexpress
SPST switch on off Snap-in ON/OFFYes4Aliexpress
Toggle Switchs 2 PositionYes5Aliexpress
Potentiometer HubsYes2Aliexpress
Black 500mm Length 2040 V-Slot Aluminum Profile Extrusion Frame for CNC Laser Engraving Machine 3D Printers Camera SliderYes1Aliexpress
A-Star 32U4 Mini LVYes1Robotgear
DB9 RS232 Male and Female Serial Connectors 9 pinYes1Amazon.com.au
Crab Clamp for the deskYes2Amazon.com.au

Arduino sketch


Here’s a list of tools I used for the assembly of the flight controllers:

  • Soldering iron.
  • Multimeter (to check for shorts and continuity).
  • Scredriver for driving screws into plastic components.
  • Power drill (Duratech) for:
    • Drilling holes for wires and switches.
    • Sanding 3D printed parts to improve rough surfaces.
    • Cutting.


You may also like

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

I’m excited to introduce you to the latest and greatest version of KiCad – version 8 (stable release). This article will overview the new features and capabilities added to this popular open-source electronic design automation

Read More
KiCad 8: The new and updated features, a full review

Learning anything worth learning from the ground up is hard. The road to proficiency is filled with roadblocks, distractions, and dead-ends. Everyone learns differently and for different reasons. Some of us learn to advance our

Read More
From struggling to thriving: Understanding the journey from Beginner to Proficient (in programming or anything else)