Throttle Quadrant and Trim Wheel

A modular 3D printed throttle quadrant and trim wheel for use with flight simulators.

Oct 8, 2020

34119 views

46 respects

Components and supplies

1

Rotary potentiometer 50k, details in story section

1

Arduino Leonardo

3

Wire, Hook Up

Tools and machines

1

Soldering iron (generic)

1

3D Printer (generic)

Apps and platforms

1

Arduino IDE

Project description

Code

Quadrant.ino

arduino

Use the setting variable and the serial monitor to find the end point values for each potentiometer, enter them into the axisLimits array. Use this joystick library, not the one found in the Arduino library manager, they are for different applications. https://github.com/MHeironimus/ArduinoJoystickLibrary

Quadrant.ino

arduino

Use the setting variable and the serial monitor to find the end point values for each potentiometer, enter them into the axisLimits array. Use this joystick library, not the one found in the Arduino library manager, they are for different applications. https://github.com/MHeironimus/ArduinoJoystickLibrary

Downloadable files

Single potentiometer diagram

To add more controls hook up 5V and GRD and use pins A1 to A5

Single potentiometer diagram

Single potentiometer diagram

To add more controls hook up 5V and GRD and use pins A1 to A5

Single potentiometer diagram

Documentation

Back Box Narrow Centre

Back Box Narrow Centre

Body left

Body left

Knob for Flaps

Knob for Flaps

Back Box Wide End Left

Back Box Wide End Left

Back Box Narrow End Right

Back Box Narrow End Right

Lever with 4 Detents

Lever with 4 Detents

Trim Wheel Body Left

Trim Wheel Body Left

Trim Wheel Gear

Trim Wheel Gear

Back Box Wide Centre

Back Box Wide Centre

Knob for Throttle (Type 1)

Knob for Throttle (Type 1)

Knob for Landing Gear

Knob for Landing Gear

End Cap Plain (Optional)

One without the tab in case you need it

End Cap Plain (Optional)

Back Box Narrow End Left

Back Box Narrow End Left

Lever with 6 Detents

Lever with 6 Detents

Lever with 3 Detents

Lever with 3 Detents

Lever with 2 Detents

Lever with 2 Detents

Body Right

Body Right

End Cap Left

End Cap Left

Potentiometer Holder

Potentiometer Holder

Friction Plate Option 1 (Least friction)

Friction Plate Option 1 (Least friction)

Lever with 5 Detents

Lever with 5 Detents

Trim Wheel Single Piece (Option)

Trim Wheel Single Piece (Option)

Trim Wheel Body Right

Trim Wheel Body Right

Lever with 0 Detents

Lever with 0 Detents

End Cap Right

End Cap Right

Trim Wheel Quadrant Drive

Trim Wheel Quadrant Drive

Trim Wheel Quadrant

Trim Wheel Quadrant

Knob for Fuel Mixture

Knob for Fuel Mixture

Knob for Throttle (Type 2)

Knob for Throttle (Type 2)

Trim Wheel Wheel

Trim Wheel Wheel

Knob for Landing Gear

Knob for Landing Gear

Trim Wheel Quadrant Drive

Trim Wheel Quadrant Drive

Trim Wheel Single Piece (Option)

Trim Wheel Single Piece (Option)

Trim Wheel Wheel

Trim Wheel Wheel

Lever with 3 Detents

Lever with 3 Detents

Potentiometer Holder

Potentiometer Holder

Trim Wheel Body Left

Trim Wheel Body Left

Lever with 5 Detents

Lever with 5 Detents

Friction Plate Option 3 (Most friction)

Friction Plate Option 3 (Most friction)

Trim Wheel Body Right

Trim Wheel Body Right

Lever with 2 Detents

Lever with 2 Detents

Lever with 0 Detents

Lever with 0 Detents

Body left

Body left

Friction Plate Option 1 (Least friction)

Friction Plate Option 1 (Least friction)

Complete STEP File

This file contains all the parts as a STEP file

Complete STEP File

Knob for Fuel Mixture

Knob for Fuel Mixture

Trim Wheel Nodule

Trim Wheel Nodule

Back Box Narrow End Left

Back Box Narrow End Left

Trim Wheel Gear

Trim Wheel Gear

Lever with 6 Detents

Lever with 6 Detents

Back Box Narrow End Right

Back Box Narrow End Right

Back Box Wide Centre

Back Box Wide Centre

Knob for Flaps

Knob for Flaps

Back Box Narrow Centre

Back Box Narrow Centre

Lever with 4 Detents

Lever with 4 Detents

Knob for Propeller Pitch

Knob for Propeller Pitch

Knob for Throttle (Type 2)

Knob for Throttle (Type 2)

Friction Plate Option 2 (Middle friction)

The one I use

Friction Plate Option 2 (Middle friction)

Trim Wheel Hub

Trim Wheel Hub

Knob for Throttle (Type 1)

Knob for Throttle (Type 1)

Lever End

Lever End

Complete STEP File

This file contains all the parts as a STEP file

Complete STEP File

Trim Wheel Nodule

Trim Wheel Nodule

Body Right

Body Right

Knob for Propeller Pitch

Knob for Propeller Pitch

Friction Plate Option 2 (Middle friction)

The one I use

Friction Plate Option 2 (Middle friction)

Trim Wheel Hub

Trim Wheel Hub

Lever End

Lever End

End Cap Left

End Cap Left

End Cap Plain (Optional)

One without the tab in case you need it

End Cap Plain (Optional)

Trim Wheel Quadrant

Trim Wheel Quadrant

End Cap Right

End Cap Right

Back Box Wide End Left

Back Box Wide End Left

Comments

Only logged in users can leave comments

edwards5s

2 years ago

That’s what I was looking for, what an info present here at this website, That's great. https://www.dunkinrunsonyou.run/

Anonymous user

2 years ago

It's awesome. Thanks for sharing. I make it. but I have a little problem. I used 50K ohm Linear Taper Rotary Potentiometer Panel Pot B50K 20mm. The potentiometer working range is so limited. for example, on throttle my 0 to 1023 values are just in the 1/3 of the whole range. I mean it's so sensitive and after a little moving on rotary nothing happens. The angle of rotation of the pot seems quite small. Here are my offset values. int axisLimits3[] = {342, 651}; Is the problem pots or the code? Thanks again.

markbennettuk

2 years ago

Hi, your values seem very similar to mine so I think it should work just fine, the resolution of the pot should be sufficient to allow the limited travel to be enough for good control. One thing I have noticed with flight sim 2020 is that I need to move the levers from end to end before starting to fly or else they can be very sensative, I assume that the sim needs to detect and register the range of travel before it works correctly, this applies to my joystick (a shop bought one) as well as my quadrants.

Anonymous user

2 years ago

That's the most beautiful thing I ever saw. Very ingenious designs and very well executed. You just gave me a ton of ideas to make my own quadrants. As a flight simmer I must say this is 10times better than the cheap quadrants out there and 10times cheaper than the overly expensive systems. Beautiful just beautiful

Anonymous user

2 years ago

If I try do compile the source-code you have provided I get a compiler-error-message. Can you please specify each and every detail which libraries you did use ? Such projects-desciptions become a waiste of time if such important details are missing Throttle-Quadrant-Trim-wheel-original:3:1: error: 'Joystick_' does not name a type; did you mean 'Joystick'? Joystick_ Joystick; ^~~~~~~~~ Joystick F:\\MyPortable-PRgs\\arduino1.8.13\\portable\\sketchbook\\Throttle-Quadrant-Trim-wheel-original\\Throttle-Quadrant-Trim-wheel-original.ino: In function 'void setup()': Throttle-Quadrant-Trim-wheel-original:34:11: error: expected unqualified-id before '.' token Joystick.begin(); ^ F:\\MyPortable-PRgs\\arduino1.8.13\\portable\\sketchbook\\Throttle-Quadrant-Trim-wheel-original\\Throttle-Quadrant-Trim-wheel-original.ino: In function 'void loop()': Throttle-Quadrant-Trim-wheel-original:45:13: error: expected unqualified-id before '.' token Joystick.setThrottle(pos); ^ Throttle-Quadrant-Trim-wheel-original:52:13: error: expected unqualified-id before '.' token Joystick.setRxAxis(pos); ^ Throttle-Quadrant-Trim-wheel-original:59:13: error: expected unqualified-id before '.' token Joystick.setRyAxis(pos); ^ Throttle-Quadrant-Trim-wheel-original:66:13: error: expected unqualified-id before '.' token Joystick.setRzAxis(pos); ^ Throttle-Quadrant-Trim-wheel-original:73:13: error: expected unqualified-id before '.' token Joystick.setXAxis(pos); ^ Throttle-Quadrant-Trim-wheel-original:80:13: error: expected unqualified-id before '.' token Joystick.setYAxis(pos); ^ Bibliothek Joystick in Version 1.0.0 im Ordner: F:\\MyPortable-PRgs\\arduino1.8.13\\portable\\sketchbook\\libraries\\Joystick wird verwendet exit status 1 'Joystick_' does not name a type; did you mean 'Joystick'?

markbennettuk

2 years ago

Hi, yes you are right this info is missing, the library to use is this one. https://github.com/MHeironimus/ArduinoJoystickLibrary Download the zip file and install it in the project by using the IDE menu : Sketch : Include Library : Add .ZIP Library... This should fix your problem. But you may need to remove the joystick library you already have, https://support.arduino.cc/hc/en-us/articles/360016077340-How-do-I-delete-or-uninstall-a-library-from-the-IDE-

Anonymous user

2 years ago

Very good. I will try to make my own. Thanks for sharing.

Anonymous user

2 years ago

Great design! Would it be possible to get the .step file or fusion 360 (if you happened to have used that) There are a couple of pieces that the tolerance is just too tight on and I have a couple of ideas I would like to add to this. Thanks

markbennettuk

2 years ago

Hi, Yes I have added a STEP file of the complete assemblies.

Anonymous user

2 years ago

Hi, this is very well done, kudos! I will be trying to put together a simplified version of this (essentially just the throttle, then if I succeed I will add in mixture and prop). I am a newbie at Arduino, and trying to wrap my head around how the output is then mapped to the simulator (FS2020). Can you provide some insight on this? Thank you!

markbennettuk

2 years ago

Hi nicklegros, In the attached video there is a segment on how to put the correct values into my Arduino sketch, that sketch translates the values from the used range of the pot, approx 90 degrees, to the Windows standard range of 0 to 1023. Using and Arduino Micro or Leonardo along with the Joystick library enables the device to be seen as a game controller, this can then be set up in the game to control any of the input controls that are configurable. This is also shown later in the video. Hope this helps

Anonymous user

2 years ago

Thanks a lot Mark! That is exactly I was looking for! I modified the step file and placed the trim wheel into my TPM Quadrant that I got from Thingiverse. Mark, ist it ok for you when I publish the whole think at Thingiverse in a few weeks?

Anonymous user

2 years ago

First of all, thank you for the project. I always wanted to build a throttle quadrant myself. But, my question is can I build it with Arduino Uno?

markbennettuk

2 years ago

No, it needs an Arduino that can act as an input device in Windows, so Leonardo or Micro only for this project

Anonymous user

2 years ago

I have followed your instructions to the tee, it is a great program unfortunately it keeps showing an error message, no such file or directory, I have set it to true and number four but it will not go in, is there something I am not doing?

Anonymous user

2 years ago

Hi many thanks for this amazing proyect, I already print four: the trim wheel, the Throttle, prop and Mixture, the problem is on the FS xteam. cause the trim wheel is taken like an acelerator, not like Axis or Rotary and i dont know how i can change it. Dou you have any trouble like that? Many Thanks since now

honau

2 years ago

Thanks a lot Mark! That is exactly I was looking for! I modified the step file and placed the trim wheel into my TPM Quadrant that I got from Thingiverse. Mark, ist it ok for you when I publish the whole thing at Thingiverse in a few weeks?

Anonymous user

4 years ago

If I try do compile the source-code you have provided I get a compiler-error-message. Can you please specify each and every detail which libraries you did use ? Such projects-desciptions become a waiste of time if such important details are missing Throttle-Quadrant-Trim-wheel-original:3:1: error: 'Joystick_' does not name a type; did you mean 'Joystick'? Joystick_ Joystick; ^~~~~~~~~ Joystick F:\\MyPortable-PRgs\\arduino1.8.13\\portable\\sketchbook\\Throttle-Quadrant-Trim-wheel-original\\Throttle-Quadrant-Trim-wheel-original.ino: In function 'void setup()': Throttle-Quadrant-Trim-wheel-original:34:11: error: expected unqualified-id before '.' token Joystick.begin(); ^ F:\\MyPortable-PRgs\\arduino1.8.13\\portable\\sketchbook\\Throttle-Quadrant-Trim-wheel-original\\Throttle-Quadrant-Trim-wheel-original.ino: In function 'void loop()': Throttle-Quadrant-Trim-wheel-original:45:13: error: expected unqualified-id before '.' token Joystick.setThrottle(pos); ^ Throttle-Quadrant-Trim-wheel-original:52:13: error: expected unqualified-id before '.' token Joystick.setRxAxis(pos); ^ Throttle-Quadrant-Trim-wheel-original:59:13: error: expected unqualified-id before '.' token Joystick.setRyAxis(pos); ^ Throttle-Quadrant-Trim-wheel-original:66:13: error: expected unqualified-id before '.' token Joystick.setRzAxis(pos); ^ Throttle-Quadrant-Trim-wheel-original:73:13: error: expected unqualified-id before '.' token Joystick.setXAxis(pos); ^ Throttle-Quadrant-Trim-wheel-original:80:13: error: expected unqualified-id before '.' token Joystick.setYAxis(pos); ^ Bibliothek Joystick in Version 1.0.0 im Ordner: F:\\MyPortable-PRgs\\arduino1.8.13\\portable\\sketchbook\\libraries\\Joystick wird verwendet exit status 1 'Joystick_' does not name a type; did you mean 'Joystick'?

markbennettuk

2 years ago

Hi, yes you are right this info is missing, the library to use is this one. https://github.com/MHeironimus/ArduinoJoystickLibrary Download the zip file and install it in the project by using the IDE menu : Sketch : Include Library : Add .ZIP Library... This should fix your problem. But you may need to remove the joystick library you already have, https://support.arduino.cc/hc/en-us/articles/360016077340-How-do-I-delete-or-uninstall-a-library-from-the-IDE-

thasinduhimashak

4 years ago

First of all, thank you for the project. I always wanted to build a throttle quadrant myself. But, my question is can I build it with Arduino Uno?

markbennettuk

2 years ago

No, it needs an Arduino that can act as an input device in Windows, so Leonardo or Micro only for this project

steddeddy

4 years ago

I have followed your instructions to the tee, it is a great program unfortunately it keeps showing an error message, no such file or directory, I have set it to true and number four but it will not go in, is there something I am not doing?

oswald3d

4 years ago

Hi many thanks for this amazing proyect, I already print four: the trim wheel, the Throttle, prop and Mixture, the problem is on the FS xteam. cause the trim wheel is taken like an acelerator, not like Axis or Rotary and i dont know how i can change it. Dou you have any trouble like that? Many Thanks since now

Anonymous user

4 years ago

Hi, this is very well done, kudos! I will be trying to put together a simplified version of this (essentially just the throttle, then if I succeed I will add in mixture and prop). I am a newbie at Arduino, and trying to wrap my head around how the output is then mapped to the simulator (FS2020). Can you provide some insight on this? Thank you!

markbennettuk

2 years ago

Hi nicklegros, In the attached video there is a segment on how to put the correct values into my Arduino sketch, that sketch translates the values from the used range of the pot, approx 90 degrees, to the Windows standard range of 0 to 1023. Using and Arduino Micro or Leonardo along with the Joystick library enables the device to be seen as a game controller, this can then be set up in the game to control any of the input controls that are configurable. This is also shown later in the video. Hope this helps

aq93

4 years ago

That's the most beautiful thing I ever saw. Very ingenious designs and very well executed. You just gave me a ton of ideas to make my own quadrants. As a flight simmer I must say this is 10times better than the cheap quadrants out there and 10times cheaper than the overly expensive systems. Beautiful just beautiful

bobco23

4 years ago

It's awesome. Thanks for sharing. I make it. but I have a little problem. I used 50K ohm Linear Taper Rotary Potentiometer Panel Pot B50K 20mm. The potentiometer working range is so limited. for example, on throttle my 0 to 1023 values are just in the 1/3 of the whole range. I mean it's so sensitive and after a little moving on rotary nothing happens. The angle of rotation of the pot seems quite small. Here are my offset values. int axisLimits3[] = {342, 651}; Is the problem pots or the code? Thanks again.

markbennettuk

2 years ago

Hi, your values seem very similar to mine so I think it should work just fine, the resolution of the pot should be sufficient to allow the limited travel to be enough for good control. One thing I have noticed with flight sim 2020 is that I need to move the levers from end to end before starting to fly or else they can be very sensative, I assume that the sim needs to detect and register the range of travel before it works correctly, this applies to my joystick (a shop bought one) as well as my quadrants.

blackfordby

4 years ago

This is just awesome, and I'm almost done printing it all now. I love the modular system which works really well. One question I have, looking at the trim wheel mechanism (I appreciate how long it took to design!), is would it also work if the gear post and the pot positions were swapped? Would the pot rotation still be within limits? The angle of rotation of the pot seems quite small. Thank you so much for making this project, and making it available. Top work!

markbennettuk

2 years ago

Hi, the reason they are that way round is to get the indicator to work correctly when rotating the trim wheel. I found that the trim wheel works well in the sim and even though the travel on the pot is limited the resolution and scaling in the Arduino sketch make it work well.

lerxst151

4 years ago

Great design! Would it be possible to get the .step file or fusion 360 (if you happened to have used that) There are a couple of pieces that the tolerance is just too tight on and I have a couple of ideas I would like to add to this. Thanks

markbennettuk

2 years ago

Hi, Yes I have added a STEP file of the complete assemblies.

alejandrom

4 years ago

Very good. I will try to make my own. Thanks for sharing.