Components and supplies
Rotary potentiometer 50k, details in story section
Arduino Leonardo
Wire, Hook Up
Tools and machines
Soldering iron (generic)
3D Printer (generic)
Apps and platforms
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
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.
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/