This throttle was designed for Elite: Dangerous, but it would work for pretty much any space game or flight sim.
- Dedicated thumbstick for vertical and lateral thrusters.
- Keypad for menu and UI navigation.
- Forward and reverse throttle with adjustable magnetic center detent.
- Buttery smooth throttle travel on .75" linear rails.
- Boost button. Pushing the throttle all the way forward presses a button built into the throttle trey.
- Separate rotary encoder for scrolling, zooming, etc.
- Two types of button on rear panel, several of which are operable from the throttle handle.
- Integrated wrist rests for comfortable long-haul space trucking.
- 4 buttons on the throttle handle.
- A total of 34 buttons (not including the boost button), 1 rotary encoder, and 3 analog axes.
- Buttery smooth throttle travel
Designed in Solidworks with a huge amount of trial and error. I think I went through about 15 revisions of the throttle handle until I was happy with it, and I built 6 or so different variations on the assembly as a whole to get to the point where it is now. I've built two of the current revision, and they have about 250 hours of gameplay between the two of them. I'm very happy with the results.
Added a throttle handle assembly guide, with photos. That includes instruction for modifying the thumbstick to work with MMJoy2, and I threw in the wrist rest key wiring too.
I added a preliminary wiring diagram, although it does not include the rear left control panel buttons. I'll add an updated version in a few days with the entire system included. Also note that the diagram depicts a Teensy2.0 board. Any of the boards listed here will work, although the pin ID numbers and locations will vary from board to board. I am in the process of rewiring one of my throttles to use a pair of Arduino ProMicro boards, and I'll post updated wiring diagrams for that once I'm finished.
Open in a new tab for full-sized diagram.
I used MMJoy2 to program the controller. It is a software package designed to configure and upload firmware to a microcontroller which will enable it to function natively in Windows as a joystick. Unlike some of the other options available, you don't need to code anything.
I will eventually post firmware settings for several different boards, so keep an eye out for that.
Here's a basic bill of materials. In addition to the stuff mentioned here, you'll need wires, solder, etc.
- Schottky diodes for the button matrices.
- Thumbstick. Note: the thumbstick cap itself is of the PS1/PS2 style. PS3 and PS4 controllers apparently use a slightly different design, and they don't fit onto the joystick unit correctly. I've had some iffy luck getting joysticks with the right cap, so keep that in mind if you have issues.
- M4 threaded inserts. This is way more than you need, but they're really nice to have around if you do a lot of 3d printed assemblies.
- An assortment of M4 button head cap screws Note: this is just an example of the screws you need, not the exact ones I used. I had a bunch laying around, so keep that in mind.
- 10 pin, 2.54mm pitch IDC cable, 30cm long Note: you'll only need one of these.
- 10 pin, 2.54mm pitch IDC sockets
- An assortment of Dupont connectors Note: you don't necessarily need these, depending on how you wire up your system. They're very simple to use though, so I'd suggest it. You'll also need a crimping tool.
- 10K Ohm Slide Potentiometer, 100mm Travel. Note: these are spendy, but the quality is fantastic. You may be able to find one somewhere else cheaper, but make sure you get the linear version (not the logarithmic version).
- Rotary encoder Note: you'll only need one of these.
- At least 13" of .75" diameter linear slide shaft. Note: you'l be cutting this into two 6.25" segments for the throttle rails.
- One linear bushing. I was able to pick up several PBC Linear FL12's from a scrap bin at my old job, but any bearing will work as long as the size is the same. You only need one; you can run into binding issues if you use two simultaneously. I'll probably make a version with two 3d printed bearings eventually, but it's low on my priority list.
- 4 tactile switches Note; these are NOT the switches I used. I had a few dozen very similar ones laying around, but I can't find the exact model now. I'm ordering a handful of the switches from that link, and I'll update the model as necessary in the next few days (7/13/19).
- 11 big clicky buttons Note: this is a pretty standard button pattern, so feel free to use different ones if you don't like orange. Oh, they're also backlit if you wire in a power source for them. I didn't bother, but you go nuts if you're feeling adventurous.
- One of these ebay keypads
- At least 7 key switches Note: get a few extra of these; they're really cheap, but shipping takes a while if you live in the US.
- One 1/4" thick x 3/8" OD neodymium magnet
- One of the boards mentioned on this page Note: if you're planning on using all of the buttons on the controller in Elite Dangerous, you'll actually need two boards. Annoyingly, ED only natively supports 32 buttons per controller, so you will need to wire some of the buttons up to their own board. I have the 2 rows of 4 on the rear left panel wired into their own board. The current wiring diagram does not show the rear left panel wiring, but I will update it in a few days.
- If you're planning on using all of the buttons on the controller in Elite Dangerous, you'll actually need two boards. Annoyingly, ED only natively supports 32 buttons per controller, so you will need to wire some of the buttons up to their own board. I have the 2 rows of 4 on the rear right panel wired into their own board. You should also get a very thin USB hub with a respectably long cable so you can plug both controller boards into it. I'm using this one, and I have it wired up with these short USB cables.
- The key switches that come with the ebay keypads work, but they're pretty low quality. Luckily, standard Cherry-style switches fit just fine. I used Gateron browns and modified the relegendable keycaps to work with them (which takes a bit of Dremeling, but isn't too bad). You can also use any other Cherry keycap which strikes your fancy.
Assembly and Wiring
I'm going to make a full step-by-step build guide at some point, but here's some basic instructions for the time being.
- Because of the way MMJoy2 handles buttons, the "click" function of the thumbstick needs to be isolated from the joystick potentiometer ground. If you want to use that function, you'll have to physically scratch off the traces which lead to the tactile switch on the thumbstick breakout board and wire up the switch with its own wires. It's not hard to do, but you need to be a little careful about it. I'll include more detailed instructions in the Instructible, but keep it in mind for now.
- You'll also need to move the headers from the front of the joystick breakout board to the back. Alternately, you could solder your wires to the joystick board directly.
- You'll need to trim two of the corners on the joystick PCB. I'll post a guide illustrating that step.
- The rear control panel housing and face plate are too big to fit on my printer, so I split them into two pieces. Glue both halves together, then assemble.
- The "Button Labels" file is an assortment of basic label decals. The smaller ones fit on the the keycaps, and the bigger ones fit on the orange buttons. You'll need to download Gimp to view or edit the file.
The thumbstick will need a bit of tweaking before we can install it.
First, you'll need to isolate the thumbstick button ground from the main thumbstick ground. These joysticks are designed to use a common ground between the X and Y potentiometers and the button. This is not compatible with the way MMJoy2 handles buttons, so we'll have to modify modify it.
There are several variants of this board floating around, but you should be able to see copper traces going to the outermost pair of pins on the button. Scrape these off to break the connection to these pins (I used a hobby knife).
Make sure you cut all the way through the copper traces.
This board also had a ground trace on the top side. Not all boards do.
Next, you should de-solder the original headers and install a set of straight headers on the opposite side of the board. I used the white connector you can see in the photo below, but standard headers work fine too.
Use a wire cutter to cut two of the corners off of the board as shown. Cut through the center of the holes.
Solder up the column wire (orange arrow) and row wire (green arrow) for the thumbstick button.
Open in a new tab for a full size photo.
Throttle Handle Assembly
Place the thumbstick in its home. Make sure it can pivot smoothly; you may need to clean up the inside of the joystick pocket a bit. The little groove behind the joystick is for the button wires you installed in step 1.
Plug the wires into the IDC cable and put it in its groove as shown.
Install the front cover. Don't forget to plug in the button on the front cover, and make sure none of the wires are pinched.
Note: the green and yellow wires in the foreground go to the front cover button.
Screw the front cover into place.
Wrist Rest Keypad Assembly
This part is pretty simple. A glob of hot glue works really well to keep the wires nice and tidy.
Note the routing of the throttle potentiometer wires and IDC cable.