Flight Trim

Cessna Trim-Wheel

My daughter is keen on flying simulators and wanted a Trim Wheel for her birthday. Unfortunately the main supplier of simulator trim wheels (Saitek) doesn’t seem to sell them in the UK anymore. So I decided to figure out how to make one.

Apparently a real trim wheel (or trim-tab) generally has a long cable attached to a pulley which is turned by the wheel. The cable causes the elevators to move very slightly so that it is possible to ensure that the plane stays in level flight at the current speed. So in order to make something similar I’d need to add a wheel onto Grace’s existing flight controls and try to make it not look too out of place.

Part from Ebay

My first thought was that the wheel in the Cessna Trim-Wheel photo looks clearly metallic and it would be hard to make something like this with my limited metalworking skills. So I looked online for real parts and found a nice wheel-only part on Ebay which wasn’t too expensive $20. I bought it a couple of weeks ago but unfortunately it didn’t arrive in time for her birthday (it was coming from the US) a couple of days ago – indeed it still isn’t here.

So I’ve ended up with a fully 3D printed version (design files here) and it doesn’t look too bad in fact.  I tried to get the curve of a cowl correct to blend in with the Saitek controls she already uses. I didn’t get it quite right but it does hide some of the workings and makes it look a little more professional.

Magnetic Rotation Sensor

Sensing the position of the wheel is done using a magnetic rotation sensor – AS5048A.  I actually had an evaluation board for this part and that made it very easy to use. It has four mounting holes and I ensured the centre of the sensor chip would be in-line with the axis of rotation of the wheel.

The only tricky part of the design was getting the magnet (which is simply magnetically stuck to the end of the bolt which forms the wheel axle) to stay put and centred on the sensor. It kept wanting to attach itself to the bearings that hold the axle or any metal tool that I happened to be using nearby. A tiny spot of superglue seems to have fixed that – for now at least.

The wheel is held in place by a nyloc nut which is sandwiched between the two bearings. This allowed me to make the whole assembly quite a bit thinner.

Teensy 3.2

Teensy 3.2

The people at PJRC are seem to be pretty interested in gaming uses for small microcontrollers and have made it possible to create a USB joystick emulator with minimal code. In fact in only around 10 lines you can have a working Joystick which reads its data from a potentiometer or similar.  The extra code to get readings from the AS5048A uses a library which was originally written for the Arduino and doesn’t seem to have any attribution – apologies if that’s not the case but the source code I have doesn’t explain its origin or licensing.

#include "AS5048A.h"

AS5048A angleSensor(10);

void setup()
{
  Serial.begin(19200);
  angleSensor.init();
}

void loop()
{
  delay(100);
  word val = angleSensor.getRawRotation();
  word joyVal = val/16;
  Joystick.X(joyVal);
}

The full source code is here.

Programming the Teensy is done using the Arduino IDE. A key part is to choose the correct settings for the USB Type and CPU speed in the Tools menu. I found that the highest speed didn’t work with the AS5048A.

Connections

The AS5048A can run off 3.3V directly and in this mode the 5V and 3V3 lines are both connected to 3V3 of the Teensy. The full list of connections is:

AS5048A Pin NameTeensy 3.2 Pin NameTeensy 3.2 Pin Num
GNDGND
3V33V3
5V3V3
MOSIDOUT11
MISODIN12
SCKSCK13
SDACS10
PWMN/C

Using in FSX

To use the trim wheel in FSX simply requires adding it in the settings. Plug the teesny into USB on flight simulator computer and then follow instructions for adding any trim wheel such as Saitek – e.g. Youtube video here

The trim wheel will appear in the settings as SerialKeyboardMouseJoystick or similar.

Outcome

The good news is that it works and my daughter seems pretty happy with it!

Additional Photos to Help with Construction