Flight Sim Joystick from Scratch

Status
Not open for further replies.

Acecool

New member
I decided I'm going to design a multi-purpose joystick and have been looking at the Adruino and Teensy and have found a lot of helpful resources... But, before I start ordering parts ( and a 3D printer; going to print out some firearm components such as a mag-loader based on Lula and an m4 conversion for my HK G36 ) I wanted to get a few opinions or suggestions...

Generalized Design * each will have a designated shape for those that are color-blind:
- 4 axis joystick ( X left/right for roll, Y forward/backward for pitch, Z up/down mainly for space-sims or VTOL aircraft and R twist for yaw )
- The actual joystick will be a slim rod ( to support left / right hand grips which will clamshell on with the button portion being ambidextrous ) to the top.
- Joystick: 8/16 way Hat-switch, main trigger will have 2 to 3 buttons built in ( War thunder so each one can be for a specific gun so they can be pressed easily together or one or two at a time ) and/or just 2 buttons with a middle-finger button under the trigger. Minimum of 4 buttons on top ( I use them for lock, lock next, lock previous [ those I use hat for ], focus on target [ button ], etc.. )..
- 4 dual sliders ( throttle for up to 4 engines with a secondary slider built in to the top which only actuates if the sliders are at 0 which will work as reverse thrust. These will have spring pressure so you hold them back then release and they'll return to 0 to disengage reverse thrust ). - colored grey with numbers inset ( but glazed over to prevent build-up of natural oils )
- 3 wheels for aileron trim, elevator trim, and rudder trim using either a limited turn potentiometer or encoder for endless turning and 3 buttons built into the wheels for reset ( if using encoder ) or dual button for reset and set...
- 1 slider for mixture - colored blue
- 1 for choke / ignition - colored red
- 1 slider for engine orientation ( vtol, etc.. )
- 1 slider for air-brake ( plus flip switch above for auto-arm )
- 1 slider for flaps

- n + toggle/flip-switches ( Gears, Engine ignition below each of the engine sliders, fire above, master avionics, etc )
- n + momentary / push-buttons ( random )



Some of the snags..
I want to add force-feedback with the option of limp-stick such as the sidewinder 2 / force-feedback 2 from MS but am not sure about how to go about doing this. I may just take the ms joystick apart and see how they have it rigged... I know adding force-feedback is possible as I saw another project where someone made a wheel with force-feedback, return to center spring, etc... but the cost was $800 for all the parts o_O... I am going to try to keep this under $100...

The design isn't meant to be for any single-game... It'll be designed in a way that it can be used for space-sims, flight sims, etc.. It will be ambidextrous. It will be color-blind friendly. I will likely add braille or some tactile ( or visual ) method for identifying the buttons without looking at the stick...

It may end up being 2 components, the main stick then a control box which would make it easier to use for other games such as driving / racing, or even fps / mmorpg, etc...

So, will a single-tweensy work and should I use 3.x? or 2.x++ and which addon boards would I need? I am looking at the "many axis joystick" thread so that may answer all of my questions but since the post is a little older I didn't want to bump it which is why I'm writing this one.

Method of release will be under the ACL.. Basically free to use, and modify but not sell. All 3d printer parts will be released for free for those that want to print the components themselves or to send to a third-party site for their printing services. I may put together DIY kits up on my site ( when I get it back up ) for sale for cost + shipping + $10 or so with printed parts ( assuming I get a nice enough printer that prints nicely which is what I am looking for ).



Thanks in advance for any information.
 
That's a fairly ambitious project on the mechanical side.

On the Electronics side building a 4 axis INPUT device is fairly straight forward since you just get a T3.x, tell it to be a joystick+keyboard+mouse and then add pots and buttons for flavor. Adding extra buttons and axis is possible as discussed in the many axis joystick thread up to the limits of the driver/USB spec. Where things get complex is that this gets you a bench full of buttons and pots that need to be mounted (see end for that). Things also get a bit complex with toggle switches, since most games assume button inputs, rather than having a toggle that spams a button down message. For things like 'flap down'/'flap up' you can map the two states to buttons/keys and have it send once each time you toggle, but this can cause trouble if you de-sync by say loading game. Solvable by toggling everything once but tedious.

So toggle switches will be very much game specific in how they get coded.

The bigger problem is the actual physical build, since cheap input devices are often very hard to fit into a joystick, hence the costs of mass produced versions. So most pots are 270 degree rotation, where a joystick needs around 90 and many buttons are deep enough to poke out the back side of things.

Force feedback generally needs a propriety interface, there are case by case hacks that have worked out how to spoof a specific model of a device and use it's driver, but as far as I know there is no open source driver on the PC side to act as a generic interface to the game so you would need to trawl for a current device (for game compatibility) that has had it's interface reverse engineered and then build a custom USB device for that on the Teensy side.

For this reason most people building game stations buy a commercial stick and mount it into the custom surround and use the Teensy to allow lots of buttons and special controls like flap settings.

All of that said it's a lot of fun, so suggested way ahead is to download arduino and the Teensyduino add on and have a look at the examples, specifically the joystick ones. If you can get your head around those and think you can mod the code to do what you want then buy a couple of Teensy3s or LCs. Would suggest buying 3, one to build/test with, one to have in the final 'thing' as it gets built and one as a spare. The LC is cheaper and less powerfull but has pretty much everything you'd have to have but a Teensy 3 will give a bit more RAM. If you don't already have them then get some basic buttons and bits as well, enough to test a single version of each of your planned control types.

3D printing wise I'm going to suggest being careful. I own three in varying states of repair, and use the most recent (makerbot 2) heaps but the resolution + structural limits from consumer level printers won't give a 'nice' result for a joystick. Brilliant for prototyping with but if you want a thing that looks nice you will probably have to go CNC, either as a service or DIY and neither option is cheap.
 
I've been coding for decades so I know with time I'll "speak" it as well as I do my other languages ( messed up neck / back from MVA in 2011 where someone ran a stop-sign and hit me so It won't be a full-time thing, but I guess I'll go ahead and purchase Tweensy 3.2 and play around with it a bit and see what I come up with.. I have a ton of controllers, joysticks, etc.. components I can salvage for testing ).

As for 3d printers, I've seen a few demos where the end-result is really smooth and around $4-500. The major issue which causes the overlapping is a motor or bearing that isn't smooth from what I've gathered. I do understand that 3d printers are currently glorified glue-guns, but some of them do produce nice results.

As for the issue with having a selector switch having to initialize it for the game may be tricky which is why I was considering an encoder for certain elements because they wouldn't need to be initialized and each "tick" it'd increment or decrement depending on rotation, but if they are bound to an axis / potentiometer then the game should take care of that automatically ( IE using FSUIPC to bind the controls for Flight Sim X allows broader control over assigning actions to everything.. literally. )


The Sidewinder 2 / Force feedback 2 MS joystick isn't half bad, so if others are simply extending their current controller by simply having a secondary control box, or by taking the components and routing everything through the Tweensy and extending the base a bit then I'll look into that a bit more before I decide 100% on which 3d printer I'm going to purchase ( and, yes, some may require finishing depending on jitters, slicer program shortcomings, etc.. [ someone printed a koozie for Red Bull on a Prusa i3 "pro", new model from Wanhao and it was really smooth and fit the can perfectly with no room to spare -- although the accuracy of the extruder is at 100 micron while the Prusa original is at 50 and other Prusas are at 20 but small build area. But there are ways to increase resolution with printed parts )

Thanks for your response.
 
Last edited:
Status
Not open for further replies.
Back
Top