Community Event / Creation Arduino - Building a new controller for Elite - Dangerous

So this was a fun little project I thought I would share with you guys.

I've spent the past few months looking for a good setup. Hoping to not spend too much money on a HOTAS configuration. Unfortunately everything out there is a bit expensive for stuff that wont fall apart on you. Now, I have a pretty decent Joystick, the Thrustmaster T.16000M. So far I've been impressed with how it feels and it's responsiveness. I'm by no means a "Joy-Stick Expert" but the one thing I'm not caring too much for are the buttons. So I started looking around for alternative input devices that could be used in elite dangerous, not finding much, the nicer Thrustmaster HOTAS Warthog was looking more attractive, especially with those really cool toggle switches, but alas, still too expensive! I cant justify spending that much money on a controller. I still thought though, how cool would be to open the cargo bay doors, or turn the lights on, or deploy landing gear all at the flick of a toggle switch? So began my journey to making my own using an Arduino UNO R3, and come C# Programming skills. Here is what I made.

So I went to Fry's electronics and bought all the hardware I needed.

(one) Ardruino UNO
(5) (on) - off - (on) Toggle Switches
(2) on - on Toggle Switches
(1) on - off - on Toggle Switch
(2) on - on Toggle Switches (Large)
(one) project box of my chosing
Some wires and a breadboard.

This gives me 9 inputs as one will be the master on/off switch.

Here is the Box and the switches, I taped a piece of graph paper to it to get an somewhat rough idea of switch placement when I drill.
1.JPG


I know it's not very pretty, but this is a learning process for me so I'm not as eager about accuracy or aesthetics. Here is the result after drilling.

2.JPG


I set my Arduino setup along with the IDE. I use Notepad++ to code in, and only use the Arduino IDE for uploading the code to my Arduino. This part is to test to make sure I understand how to wire my device to work with my Arduino. Fairly easy to figure out.

3.JPG


Installed the buttons and begin the wiring/soldering process.

4.JPG


Not my best soldering job but it does the trick. Here I had to create a bridge for the ground using break-away headers for the breadboard.

5.JPG


Here it is all wired up and tested.

6.jpg


Finally the (mostly) completed unit.

7.jpg


It's a fairly simple design, not much to it really. I do plan on adding LEDs as well as an LCD that can read info from the game. Perhaps make programmable buttons. But so far so good!

Now comes the programming part. I was able to successfully make my app in C#. It reads the data from my controller via serial com port.

tMOtfpc.gif


Works great! now I just need to figure out the sending of the keys to Elite Dangerous. Going to have to do this using the sendinput() method or perhaps emulating an input device.

More to come later...
 
Last edited:
That's really cool! I hope it gets working in the game for you. Definitely has that immersive feel to it.

Whats the red one going to be? Self-destruct?!
 
Looks good, but you might want to test the sendinput method first. In my experience, it only works on the active window and not all games can be referenced in this way. There's a reason that NOTEPAD.EXE is often used in the examples. If it doesn't work, try hacking an old joystick and using the buttons.

I hope you get it working :)
 
That's really cool! I hope it gets working in the game for you. Definitely has that immersive feel to it.

Whats the red one going to be? Self-destruct?!

Haha, thanks! and maybe. It will all be customize-able eventually. :)

- - - - - Additional Content Posted / Auto Merge - - - - -

Looks good, but you might want to test the sendinput method first. In my experience, it only works on the active window and not all games can be referenced in this way. There's a reason that NOTEPAD.EXE is often used in the examples. If it doesn't work, try hacking an old joystick and using the buttons.

I hope you get it working :)


Thanks! and yup, I'm realizing this the more I mess with it. I'll end up emulating a Joystick Controller or HID. A bit more work but no biggie. :)
 
Last edited:
If you plan to never actually use the keyboard controls, the SerialOutput() could be ascii keyboard emulations. Such as Y being "target next subsystem" by default, you can just have a certain toggle switch output "y"

Hacking a bluetooth keyboard is another option. break it open, figure out the key pin combinations.. and splice into the ribbon inside to make a computer interface that is alrready configured to work on a computer. wirelessly.

You could go more advanced, and leave your keyboard text chat free by assigning the in game controls to Alt-F1 through 12.. keys you would never strike normally. Then just clearly label your toggle switches.

There are 4 way X-box controller like rocker switches available, as well as X-Y thumbstick potentiometer setups. A kit Hacker parts treasure find is an old Playstation2 Controller. So many accelerometers, switches, knobs, etc to salvage in there.

IF FD open sourced the dashboard flight information outputs, you could link things like speed and heat levels to bar codes and LCD displays on a homemade dash, and the truly inspired could use touchscreens and python to make smartphone like interfaces.

All with Arduino. What a remarkable little microcontroller for only $30
 
Last edited:
If you plan to never actually use the keyboard controls, the SerialOutput() could be ascii keyboard emulations. Such as Y being "target next subsystem" by default, you can just have a certain toggle switch output "y"

Hacking a bluetooth keyboard is another option. break it open, figure out the key pin combinations.. and splice into the ribbon inside to make a computer interface that is alrready configured to work on a computer. wirelessly.

You could go more advanced, and leave your keyboard text chat free by assigning the in game controls to Alt-F1 through 12.. keys you would never strike normally. Then just clearly label your toggle switches.

There are 4 way X-box controller like rocker switches available, as well as X-Y thumbstick potentiometer setups. A kit Hacker parts treasure find is an old Playstation2 Controller. So many accelerometers, switches, knobs, etc to salvage in there.

IF FD open sourced the dashboard flight information outputs, you could link things like speed and heat levels to bar codes and LCD displays on a homemade dash, and the truly inspired could use touchscreens and python to make smartphone like interfaces.

All with Arduino. What a remarkable little microcontroller for only $30

All good suggestions. Going to try and go a minimal as I can for now. Hoping to contain the entire unit inside my project box in the end. Though I will probably do the other suggestions for fun :)

I love this little micro controller. I have an Intel Galileo Gen 2 as well that I have yet to test but from what I understand, you can directly emulate and HID device with it. That might be a great option. Or I could use http://vjoystick.sourceforge.net/site/.
 

Tar Stone

Banned
This is ingenious, I'm really impressed with what can be done with these little boards. And here's me ordering a cheap USB numeric keypad which I'll be putting stickers on, and velcro-ing to the desk beside my throttle...
 
Excellent!

If I had a hat, I'd doff it in your general direction!

Also check out MMjoy for Arduinos: make a custom controller out of a dirt cheap Arduino pro-micro.
 
Very nice. I've been considering something similar, though I'm planning to use one of the propriatary USB interface boards for DIY controllers (very popular in flight sim land), and I want to have illuminated press buttons with printed iconographic labels instead of switches - basically a custom ED keyboard. My first problem is finding appropriate buttons, most illuminated ones are 50mm or more deep.
 
Last edited:
This is ingenious, I'm really impressed with what can be done with these little boards. And here's me ordering a cheap USB numeric keypad which I'll be putting stickers on, and velcro-ing to the desk beside my throttle...

Lol, thanks. Yeah these boards are pretty awesome!

- - - - - Additional Content Posted / Auto Merge - - - - -

Excellent!

If I had a hat, I'd doff it in your general direction!

Also check out MMjoy for Arduinos: make a custom controller out of a dirt cheap Arduino pro-micro.

Thanks! :) Nice find btw, i'm going to look into that.
 
Very nice. I've been considering something similar, though I'm planning to use one of the propriatary USB interface boards for DIY controllers (very popular in flight sim land), and I want to have illuminated press buttons with printed iconographic labels instead of switches - basically a custom ED keyboard. My first problem is finding appropriate buttons, most illuminated ones are 50mm or more deep.

Push buttons? like these
or toggles? like these

I like the look of these.
3-panel_blue_toggle_switch_LED.jpg
 
Very inspiring, thanks for sharing. Please keep us informed.
You could save a lot of space for the Arduino by using your own PCB, and it would be way cheaper because most of the Arduino stuff you don't need.
 
You know what would be awesome? A custom made ED input board with appropriate switches and buttons. You know, like EDTracker, just for buttons and switches to use along with your setup. I know I'd order it fully assembled and good to go :D
 
Push buttons? like these
or toggles? like these

I like the look of these.
View attachment 3828

I like the look of those toggles too but I was thinking more like this - with symbols for Supercruise, Hyperspace, Landing Gear etc. Maybe two different sizes, a couple of large ones in the middle for SC and HS, and smaller ones for other functions.

square_illuminated_button_001_full.jpg


I actually started out wanting touch sensors rather than press buttons for a more futuristic "star trek" feel, but they were gonna be way too expensive.
 
Back
Top Bottom