Joystick flight control

A long while ago I created a Yoke and Rudder pedals for flying with flight simulators. The interfaces used did have some limitations on axis and buttons.

Working with micro controllers with USB capabilities gave me the idea to change my Flight Sim Yoke and Rudder with a self made joystick interface. In this case, the need for 3 axis made me research the possibilities of using a Microchip PIC18F4550.

It would have limitations to the number of axis and buttons. But, where is that limit……..
Well, with designing the throttle box, it was close, 8 axis and 8 buttons, total 9 bytes. The joystick interface for Yoke and Rudder should have at least 4 axis and 12 buttons and a hat switch.
In all cases, buttons and axis are freely configurable in all Flight Sims.

Yoke and Rudder Control

The USB interface is situated in the control box (left).
Ailerons and Pitch is controlled by the Yoke. Rudder by the pedals and the thrust vector (X-Plane’s Harrier and Osprey) is controlled on the control box.
The interface handles 5 bytes for analog inputs, and 24 bits ( 3 bytes) for buttons. These 8 bytes of information seem to be near the limit, at least for my system…..

Throttle Control

The Throttle box has a separate USB interface situated within the box. 8 Axis and 8 buttons is possible. In my case, it controls four Throttles, Flaps, Mixture, Spoilers and Propellers. The buttons are used for various settings, some double.

Main Drawing

For reference, you can see the connections to the micro controller. Click on the image for a better view. All arrows upward are connected to the +5V. The hat switch is drawn with diodes but the combining of inputs is done by the firmware.
All potentiometers are 100k. All pull-up resistors are 4k7.


The Rudder pedals are separated. This means that I needed to create a different way of measuring the positions of the pedals. Here you can see the connections. Both potentiometers are 50k. A nice feature when you press both pedals down, the rudder is still measured in the middle.


Both interfaces are equipped with a bootloader. This makes programming by USB possible and is very easy to work with during debugging and testing. The bootloader is activated by a button while booting the micro controller.
The firmware was originally written in PicBasic and is very short for both interfaces. Data values needs only to go out, right?

The VIEW Control

The View box is a very minimal joystick, only 8 buttons.
Using X-Plane with a second PC in Spot view mode, this View box is a handy tool to get the views in the right position.
It consist of a smaller USB chip, the PIC18F14K50.

The Firmware

For those who would like to build an interface themselves, for a reference, the main files can be downloaded here as a package.

Change things to your needs. Beware! This site uses cookies