I wanna build a digital input USB controller, but need help for this stuff.
34 replies, posted
I have always been a fan of flying games. From simulators to arcady games. And it was only a few years back, i discovered something called "simpits"
Apparently, die hard simulator game fans, sometimes build their nests like this.
[t]http://i.imgur.com/OMNoiqX.jpg[/t] [t]http://i.imgur.com/SFtMYfN.jpg[/t] [t]http://i.imgur.com/uuR8TKK.jpg[/t]
This is, at least IMO, fucking cool. Because there's really no limits to what you can do with this shit. But of course, you'd need some serious greens for setups like these.
But anywhooo, i kinda always wanted one of these setups of my own someday. Not necessarily this big or complex like Dudley's simpit shown above. But starting in the small, is probably the most sensible thing to do. Like, maybe just one panel, with 5-6 button or switches, to see if i could use it for anything. So i started snooping around for some of the stuff one would need to begin simpitting. The first thing i come across is this contraption:
[url]http://www.simkits.com/product.php?prodid=605[/url]
[IMG]http://www.simkits.com/pictures/USB%2032%20Switch%20Button%20Input%20Controller%20250.jpg[/IMG]
A "32 digital input controller is recognized under Windows as a standard Game Controller without any additional driver software". Which sounds really fucking easy and pretty straight forward, just ram some wires, hooked up to buttons and switches, into the terminal plug things. Peace of cake. Unfortunately, the pricetag of [U]€99,50[/U] doesn't exactly suit someone in my financial situation. At all. So i need to think smaller, or alot cheaper.
So i started poking and prodding once more to look for alternatives. Maybe something DYI. And true enough. I found out about the [URL="http://www.pjrc.com/teensy/td_joystick.html"][B]Teensy[/B][/URL], or a [URL="http://simhq.com/forum/ubbthreads.php/topics/3899105/MMJoy_-_Build_your_own_USB_con"][B]Leonardo PRO[/B][/URL] could do the trick. I think i even read about an Arduino Mega, would also be able to do this, expect i can't remember where i read it, and i can't find it at the moment. And this all got my hopes up a little.
... Just until i remember just how fucking much i suck at coding. Hard. And it's super discouraging, because i'd really love to have a go at this.
So the conclusion of this thread really boils down to one broad'ish question:
[B]Who in here, with a good handful of knowledge in these particular fields, would be up for the task, of helping me gather the stuff i need to build a controller (which windows 7 would natively support), and the code i'd need to write/have written for it all to work, to support maybe 10-20 inputs?[/B]
I think you will find that by the time you can afford to have the panels cut and printed on, buying the proper switches and joysticks, you will be able to afford those $99 controllers very easily.
If you want to do it cheaper you will need to learn programming, basic analog electronics and medium-advanced digital electronics. (along with learning many protocols like USB)
Try starting off with an Arduino.
EDIT:
Also, note that you are also paying for the code having been written, allowing you to interface with it easily. The amount of time you spend learning to get this going and spending $$$ on prototype boards and various components / dev kits it would be much cheaper for you to just buy those damn boards.
[QUOTE=nuttyboffin;47782191]I think you will find that by the time you can afford to have the panels cut and printed on, buying the proper switches and joysticks, you will be able to afford those $99 controllers very easily.[/QUOTE]
Thing is, i don't expect buying anything expensive. DX features lots of cheap buttons and whatnot, and i even think i have little handful laying about.
For the panel, i think i could walk out behind the house and find some scrapped wood, maybe even some thin floorboards to start with.
Material-wise, i'm almost set. I need either the Teensy, Leonardo or maybe a Mega to start with.
As for prototype boards, i actually have a breadboard and Arduino Uno just collecting dust, from a starter kit i never really got started on really. This is of course also means i got a handful of wires and a handful of resistors.
An Arduino would be an excellent choice and with some additional chips you can extend the number of GPIO pins to pretty much as many as you want, the computer interface is a little more tricky, usually you'd use a custom USB HID driver but there are probably other options that would work like using a AutoIt script to convert serial data in to key presses.
I've been considering doing something similar for some time so I might be able to help you out.
[QUOTE=Chryseus;47783251]An Arduino[/QUOTE]
... Well, which one of the Arduino's?
Some arduinos (32u4 based boards) allow you to straight up simulate keyboard or mouse input, this way if you are playing a flight sim you can just simulate the keyboard binds with arduino making it extremely easy. The arduino driver handles the USB interface so there should be no hassle. I think this is the easiest option for beginners, see here: [url]http://www.arduino.cc/en/Reference/MouseKeyboard[/url]
[QUOTE=GoodGorilla;47785263]Some arduinos (32u4 based boards) allow you to straight up simulate keyboard or mouse input, this way if you are playing a flight sim you can just simulate the keyboard binds with arduino making it extremely easy. The arduino driver handles the USB interface so there should be no hassle. I think this is the easiest option for beginners, see here: [url]http://www.arduino.cc/en/Reference/MouseKeyboard[/url][/QUOTE]
I don't think we're entirely on the same page. I DON'T want anything i build to just simulate a keyboard and/or mouse. I want it to work as an independent 'joystick', just like any other USB joystick or gamepad would.
[QUOTE=lekkimsm;47785300]I don't think we're entirely on the same page. I DON'T want anything i build to just simulate a keyboard and/or mouse. I want it to work as an independent 'joystick', just like any other USB joystick or gamepad would.[/QUOTE]
In that case you need to flash the Arduino to appear as a gamepad
[url]https://github.com/NicoHood/HID[/url]
However as far as I'm aware the generic Windows HID driver only supports 32 buttons.
If you want to build say a custom flight simulator cockpit emulating a gamepad isn't going to do it.
[QUOTE=Chryseus;47788647]In that case you need to flash the Arduino to appear as a gamepad
[url]https://github.com/NicoHood/HID[/url]
However as far as I'm aware the generic Windows HID driver only supports 32 buttons.
If you want to build say a custom flight simulator cockpit emulating a gamepad isn't going to do it.[/QUOTE]
Not sure if this would work, but what if you were to buy several Arduinos and emulate a separate gamepad on all of them? Cheap Arduino knock-offs are available for a couple of dollars so it wouldn't be very expensive to do so.
[QUOTE=xThaWolfx;47788889]Not sure if this would work, but what if you were to buy several Arduinos and emulate a separate gamepad on all of them? Cheap Arduino knock-offs are available for a couple of dollars so it wouldn't be very expensive to do so.[/QUOTE]
I'd wager that depends on the flight simulator software. If it supports taking input from several gamepads, I can see it working out.
Plus things like indicator lights and stuff need bidirectional communication, can't do that with a plain old HID device.
[QUOTE=Chryseus;47789102]Plus things like indicator lights and stuff need bidirectional communication, can't do that with a plain old HID device.[/QUOTE]
I think i'll put gauges, dails and lights get on low priority. For now, i'd just like to see how a few buttons or switches would feel, just to begin with.
... And that's only if i manage to find someone who'll be willing to help me out :v:
[QUOTE=lekkimsm;47800718]I think i'll put gauges, dails and lights get on low priority. For now, i'd just like to see how a few buttons or switches would feel, just to begin with.
... And that's only if i manage to find someone who'll be willing to help me out :v:[/QUOTE]
Arduino (or nearly any other microcontroller really, just Arduino would be the easiest for you to get into possibly) could do that. While connected to USB, it can send data signals through the cable, which can be interpreted by the driver mentioned earlier and, depending on your game's compatibility with it, interpret those signals as commands.
While it's doing that, it can also very easily turn lights on and off according to certain conditions, something that even a basic beginner can do (many tutorials start with this, ie "Make this button turn this LED on for 5 seconds after you push it/let go/whatever), and the analogWrite() command means you could control dials and gauges as well, given appropriate support circuitry. (I'm willing to bet an Arduino can't handle the amp-draw of a typical gauge, or multiple gauges, but there should be plenty of tutorials for transistor interfacing to control these)
While I myself have not done anything like this, nor have I fudged around with the previously mentioned driver that allows you to use Arduino as an interface device, but having seen what people can do with Arduino and that such a driver exists (you should read up on that driver BTW, to make sure it's capable of doing what you want it to do with analog inputs and stuff [joysticks]) tells me it's quite possible to do what you want to do.
[QUOTE=Zero-Point;47801694]Arduino (or nearly any other microcontroller really, just Arduino would be the easiest for you to get into possibly) could do that. While connected to USB, it can send data signals through the cable, which can be interpreted by the driver mentioned earlier and, depending on your game's compatibility with it, interpret those signals as commands.[/QUOTE]
I'm afraid you might still keep missing the point of this.
I never mentioned any drivers. It's like i said in the first post, "...digital input controller is recognized under Windows as a standard Game Controller without any additional driver software..."
I need this to work just like this. Where i don't have to go into crazy-extensive programming/coding, on either windows or the arduino-thingamajigga, or whatever. I need this, to work in a similar fashion, that of a simple plug and play joystick/gamepad. Most games of today recognizes a joystick today, if it isn't to complicated.
But I'm still perfectly aware that there's SOME coding involved in this.
[QUOTE=Zero-Point;47801694]While it's doing that, it can also very easily turn lights on and off according to certain conditions, something that even a basic beginner can do (many tutorials start with this, ie "Make this button turn this LED on for 5 seconds after you push it/let go/whatever), and the analogWrite() command means you could control dials and gauges as well, given appropriate support circuitry. (I'm willing to bet an Arduino can't handle the amp-draw of a typical gauge, or multiple gauges, but there should be plenty of tutorials for transistor interfacing to control these)[/QUOTE]
Let me get this point across, again: [B]I [u]suck[/u] at coding.[/B]
I've tried a few times, to do the tutorials/projects from the project book, in the arduino starter kit i have. Sure, i completed some of the projects, but just because you copy the code exactly from the book, doesn't make you any better at coding. Coding comes natural to some people, and to some other people, it comes extremely opposite of natural. I have an extremely hard time comprehending any kind of code. Especially trying to make any code of my own.
I'm afraid i'll need outside help with having some code written for this.
What about buying and gutting a cheap usb game controller and soldering the buttons and switches to it?
[QUOTE=highvoltage;47802024]What about buying and gutting a cheap usb game controller and soldering the buttons and switches to it?[/QUOTE]
It isn't exactly nearly as customizable, if i were to do the whole thing on a breadboard.
I'd have to solder over and over, if i wanted to try a different switch or button each time.
[QUOTE=lekkimsm;47802056]It isn't exactly nearly as customizable, if i were to do the whole thing on a breadboard.
I'd have to solder over and over, if i wanted to try a different switch or button each time.[/QUOTE]
[IMG]http://www.cable-jointing.com/sites/default/files/imagecache/460width/product-groups/Disconnect%20Terminals,%20Cembre%20Pre%20Insulated%20Halogen%20Free%20Crimp%20Connectors%200.25%20to%206sq.mm/Cembre-Disconnect-Terminals-Halogen-Free-Cable-Connectors.jpg[/IMG]
I'm afraid that'll turn into a mess to be honest. It would also involve i'd have to go buy both cables shoes and a clamp thing. It's not exactly what i have in mind.
[QUOTE=lekkimsm;47801910]I'm afraid you might still keep missing the point of this.
I never mentioned any drivers. It's like i said in the first post, "...digital input controller is recognized under Windows as a standard Game Controller without any additional driver software..."
I need this to work just like this. Where i don't have to go into crazy-extensive programming/coding, on either windows or the arduino-thingamajigga, or whatever. I need this, to work in a similar fashion, that of a simple plug and play joystick/gamepad. Most games of today recognizes a joystick today, if it isn't to complicated.
But I'm still perfectly aware that there's SOME coding involved in this.
Let me get this point across, again: [B]I [u]suck[/u] at coding.[/B]
[/QUOTE]
Work at it more. Nobody is going to want to do your pet project for you!
[editline]25th May 2015[/editline]
[QUOTE=lekkimsm;47802792]I'm afraid that'll turn into a mess to be honest. It would also involve i'd have to go buy both cables shoes and a clamp thing. It's not exactly what i have in mind.[/QUOTE]
I'm not even sure what you are looking for. You want exactly the thing you mentioned in the first post but you want one of us to make it for you at half the price or something?
[editline]25th May 2015[/editline]
[QUOTE=lekkimsm;47802056]It isn't exactly nearly as customizable, if i were to do the whole thing on a breadboard.
I'd have to solder over and over, if i wanted to try a different switch or button each time.[/QUOTE]
Wires go from controller board to breadboard, use that to plug switches into?
You just seem to be trying to find any excuse not to do it...
[QUOTE=Chryseus;47789102]Plus things like indicator lights and stuff need bidirectional communication, can't do that with a plain old HID device.[/QUOTE]
Arduino can do serial.
That solves that, easily.
[QUOTE=lekkimsm;47801910]I'm afraid you might still keep missing the point of this.
I never mentioned any drivers. It's like i said in the first post, "...digital input controller is recognized under Windows as a standard Game Controller without any additional driver software..."[/quote]
Well good luck with that because if you introduce custom hardware to Windows without a driver Windows won't know what to do with it.
[quote]I need this to work just like this. Where i don't have to go into crazy-extensive programming/coding, on either windows or the arduino-thingamajigga, or whatever. I need this, to work in a similar fashion, that of a simple plug and play joystick/gamepad. Most games of today recognizes a joystick today, if it isn't to complicated.
But I'm still perfectly aware that there's SOME coding involved in this.[/quote]
You just weren't aware of the correct quantity of "some coding".
[quote]Let me get this point across, again: [B]I [u]suck[/u] at coding.[/B]
I've tried a few times, to do the tutorials/projects from the project book, in the arduino starter kit i have. Sure, i completed some of the projects, but just because you copy the code exactly from the book, doesn't make you any better at coding. Coding comes natural to some people, and to some other people, it comes extremely opposite of natural. I have an extremely hard time comprehending any kind of code. Especially trying to make any code of my own.
I'm afraid i'll need outside help with having some code written for this.[/QUOTE]
Wanna know a little secret? [sp]I suck ass at coding, too![/sp]
I can't code well enough to write my own libraries or anything like that, and coding takes me a good while to do even the simplest things. But I think your problem stems from something else. You said you were just copying the code provided in the examples. The key to learning how to code better (I couldn't even manage "Hello World!" when I started with Arduino) is to [I]understand[/I] what each and every line does. After that, it's building blocks, which should more than suffice for what you're trying to do.
For instance, "I want this button to turn on this light!" (taken from the Arduino website)
[code]/*
Button
Turns on and off a light emitting diode(LED) connected to digital
pin 13, when pressing a pushbutton attached to pin 2.
The circuit:
* LED attached from pin 13 to ground
* pushbutton attached to pin 2 from +5V
* 10K resistor attached to pin 2 from ground
* Note: on most Arduinos there is already an LED on the board
attached to pin 13.
created 2005
by DojoDave <http://www.0j0.org>
modified 30 Aug 2011
by Tom Igoe
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Button
*/
// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}[/code]
Let's break it down:
[code]
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
[/code]
"const" means constant: This value will never ever ever under any circumstances change.
[code]// variables will change:
int buttonState = 0; // variable for reading the pushbutton status[/code]
"int" is an integer. This is a whole decimal point-free number (such as 1 or 234,987, not 3.14 or similar nonsense!). This tells us that there's a whole number involved, in this case the number 0. We assign this to a variable called "buttonState" so shit's easier to read and keep track of. (if multiple buttons were used we could have variables for each one, "button1State", "button2State", etc.)
[code]
void setup() {[/code]
This is where we set things up (hence the name). "OMG WTF DOES 'VOID' MEAN?!" Calm down Broseidon, that just means it's not accepting any input for "setup()", nor is it going to output anything for "setup()". However, you can declare variables here, and those variables can carry over to other functions, which brings us to our next topic.
Note the curly brace, this is a sign that werk's 'bout to get dun. Things between them are called functions (basically "blocks" of code), separated from each other by those braces. There will be a beginning brace "{" and an ending brace "}". Forgetting either one might muck things up a bit. (it's actually guaranteed to muck things up more than a bit, thankfully for the more forgetful among us most code editors will slap you about the eye-balls with various visual indicators and other warnings that you're about to goof)
Moving on.
[code] // initialize the LED pin as an output:[/code]
"Whoa wait a dagum minute there, what's this double-slash shit?"
Oh those? Those basically tell the compiler "Hey, ignore everything after this for this line, it's not important". Their uses range from labeling things and commenting on how certain blocks of code work, to "soft editing" out lines of code for debugging purposes.
[code] pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:[/code]
Like right here! The comments tell you that this line sets up the pin we assigned to the variable "ledPin" as an output-only pin. This means that even if you tried really, really, really REALLY hard to get an input into this pin, it won't care. Unless you try to be clever and send excess voltage through it, then that's just silly and foolish (and smokey!)
[code] pinMode(buttonPin, INPUT);
}[/code]
Same thing, except this time it's setting up the pin assigned to variable "buttonPin" as an input-only pin. That means it will never output anything no matter how nicely you ask it.
[code]void loop()[/code]
There's that "void" thing again! This time it's saying that the following function is going to be a loop (which means it'll repeat itself over, and over, and over, and-you get the idea), and that it's not expecting any inputs nor is the function itself going to output anything to other functions.
[code]{
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);[/code]
Again, comments were helpful here! But it doesn't explain in-depth what's happening, so here's the gist of it.
It's declaring a variable called "buttonState", but dammit, I forgot to talk about what variables were!
Variables are basically a way to name something to make it easier to understand what it's doing. You declare a variable by saying "*name goes here* = *what your variable actually is*.
In this case, *what your variable actually is* can be anything ranging from numbers to words to a purely "true or false" statement (otherwise known as a boolean).
You can even assign variables to other variables, which is what's being done here! It's taking the variable "buttonPin" (which was assigned earlier), reading it ("digitalRead", digital meaning it's either 1 or 0, on or off), and assigning what it just read to variable "buttonState", which with this combination of variables means "buttonState" = whatever the pin is reading from the switch, whether it's on or off.
So if we press the switch, buttonPin will be reading a digital state of "on", "high", or "1". If it's not pressed, it'll read "off", "low", or "0".
[code] // check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) [/code]
Here's where things get interesting. You can declare variables all day long, but they're not entirely useful by themselves, we need to set up conditions for which our variables will work to the affect that we want! Here, it's something called an "if" statement.
"if" is simple enough. "If it's doing this, then do this". In this case, it's checking that buttonState (the variable we discussed earlier) is "HIGH" (remember that this means "on"). That's what == means, which is an operator that says "is equal". Operators are mathematical things that you can use to compare or combine things, such as "are they equal? Less equal? More equal? What does it equal when you multiply it by this variable?" etc.
[code]{
// turn LED on:
digitalWrite(ledPin, HIGH);
}[/code]
So this is what the code is told to do if the state of the button is, in fact, on (or high): Do a digitalWrite (again, 1 or 0, on or off) to the pin we assigned to the LED, turning it on. There's ending curly braces so that must mean it's done, right? Not quite. Those are the conditions set for IF the button is pressed. It doesn't know what to do if the button is not pressed, and we want it to turn off when we let go, so:
[code] else [/code]
Of course, else! "If it's reading this, then do this, else do this". This is what should be carried out should the "if" statement's requirements are not met, in this case, "here's what you do if the button ISN'T pressed".
[code]{
// turn LED off:
digitalWrite(ledPin, LOW);
}[/code]
So with this part of the statement we tell the code that we want the LED to remain off when there's no button being pressed. I wonder what would happen if you didn't have this... Comment it out and see!
[code]}[/code]
Whoops! Don't forget this guy, he signals the end of this particular function, which is a loop!
Basically if you can build stuff with basic components you can code at least a little bit. It may not be pretty, readable, or terribly efficient, but you can do it.
And should my code stupidity offend anybody here, feel free to correct me, I'm just trying to break it down as simply as I could based on my current understanding of these arcane majjicks.
[QUOTE=Zero-Point;47803398]Words[/QUOTE]
Jeez man you've got some patience there
I don't understand what's wrong with just having pairs of wires comming off a gutted controller and hooking them up to the switches, you can even use these to make changing the setup a breeze:
[IMG]http://img.directindustry.com/images_di/photo-g/screw-connection-terminal-block-14571-2926707.jpg[/IMG]
I don't see how it would be a mess unless you make it a mess. It would be a lot easier the asking som eone else to do programing for you and setting up the arduino.
[QUOTE=Zero-Point;47803398]COOOOOOODE[/QUOTE]
Well, holy shit, thanks. I'll totally have to look this over.
[QUOTE=highvoltage;47805217]I don't understand what's wrong with just having pairs of wires comming off a gutted controller and hooking them up to the switches, you can even use these to make changing the setup a breeze:
[t]http://img.directindustry.com/images_di/photo-g/screw-connection-terminal-block-14571-2926707.jpg[/t]
I don't see how it would be a mess unless you make it a mess. It would be a lot easier the asking som eone else to do programing for you and setting up the arduino.[/QUOTE]
If you're still talking about about the joystick thing, i went on a couple of sites looking for joystick, preferably working ones of course. But i didn't find anything special, besides old Wingman Extremes, Forces and 3D extremes. I didn't manage to come across any joystick that featured switches, which i'd really like to try as well. And I'm suspecting it won't necessarily support switches, if i just wire a switch in where a button used to be, because of the three legs on a switch, right? :v:
Three legs on a switch is pretty much just 2 buttons. The center is the common input/source/whatever and each other pin is for each side the switch can be. You could have it so that a switch is hooked up to A and B on the controller and keeps one pressed until you switch them or you can have only one button hooked on the one side of the switch so that button is only on or off
[editline]26th May 2015[/editline]
First think I would do if I was you would be to make sure the games your using it with will accept the controls the way you want, like for example, holding B down will keep the landing gear up until you let go
What about this thing? It's only €50 (€42 without terminals)
[url]http://www.poscope.com/PoKeys56U[/url]
[t]http://www.poscope.com/image/cache/data/products/wide/pokeys56u_wide-600x600.jpg[/t]
Would this thing be capable of the same job, as the €99,50 controller from Simkits?
-wrong thread-
[QUOTE=lekkimsm;47808669]What about this thing? It's only €50 (€42 without terminals)
[url]http://www.poscope.com/PoKeys56U[/url]
[t]http://www.poscope.com/image/cache/data/products/wide/pokeys56u_wide-600x600.jpg[/t]
Would this thing be capable of the same job, as the €99,50 controller from Simkits?[/QUOTE]
An Arduino would also be able to do the same job. That doesn't seem to be the problem.
[QUOTE=Leestons;47810929]An Arduino would also be able to do the same job[/QUOTE]
Simulating a joystick?
First off- If you are going to use a microcontroller, get arduino. If you need more input/output pins, than the board has, there is a great tutorial on parallel to serial shifting:([url]http://www.arduino.cc/en/Tutorial/ShiftIn[/url] -for inputs, [url]http://www.arduino.cc/en/Tutorial/ShiftOut[/url] -for outputs ). You can use special chips to get more inputs or outputs, and they cost less than 1$ each, and you get 8 more inputs/outputs with each chip, while only using 3 pins on the arduino(meaning that 8,16,24,32... inputs/outputs will still only require only 3 pins).
Now, if you will use a microcontroller (easiest option) windows WILL NOT detect it as a HID game controller + microcontrollers have their own driver software anyway that is required to program them. I still don't get why you don't just want to simulate keyboard input? Most flight sims will allow you to use, for instance, L-Alt + Key, R-Ctrl + Key etc, if you simulate a key combination you will still be allowed to use most of your keyboard for other purposes. By far I think that is your best option.
As for outputting things that happen in the cockpit, for instance, and LED, you will pretty much NEED a microcontroller. It will all come down to how the game is made- no flight sim will natively support your home made cockpit, so depending on the game it could be hard or easy to get the data. Either way, you will have to create a program on your computer (Any language that supports serial will be fine) that reads the data from the game and sends it over to arduino through USB using serial(A lot of tutorials online on how to do the latter, but you will have to research the game yourself to figure out how to read the data).
In conclusion: I believe your best bet is to get an arduino, if you need- get more inputs/outputs. Then simply simulate key combinations with buttons/switches/levers/whatever the fuck you want, then remap them in game.
Later, when you are more confident, you can try getting the cockpit outputs and sending them to arduino through serial.
Sorry, you need to Log In to post a reply to this thread.