Kerbal Space Program is a space simulation game. You design spacecraft for a fictional race called Kerbals, then blast those brave Kerbals into space. Sometimes they don’t make it home.
If controlling spacecraft with your WASD keys isn’t immersive enough for you, [marzubus] has created a fully featured KSP control console. It sports a joystick, multiple displays, and an array of buttons and switches for all your flight control needs. The console was built using a modular approach, so different controls can be swapped in and out as needed.
Under the hood, three Arduinos provide the interface between the game and the controls. One Arduino Mega runs HoodLoader2 to provide joystick data over HID. A second Mega uses KSPSerialIO to communicate with the game over a standard COM port interface. Finally, a Due interfaces with the displays, which provide information on the current status of your spacecraft.
All of the parts are housed in an off the shelf enclosure, which has a certain Apollo Mission Control feel to it. All [marzubus] needs now is a white vest with a Kerbal badge on it.
Reblogged this on Our Online hacker space and commented:
I’ve been thinking about getting in to this game for a bit building something like this would do it. Looks like fun too. Wondering if this could be converted to work with Space Nerds In Space?
Whoa… weird to see Space Nerds In Space mentioned here (I am the author of SNIS). SNIS has a pretty easy (well, easy if you know C) way to connect hardware. Take a look at snis_device_io.h which defines the API to send input to the game, and device-io-sample-1.c for a trivial example of using it. I once hooked up a toggle switch to fire torpedoes via arduino using this API, but that’s as far as I’ve taken it… https://www.youtube.com/watch?v=w6vwbhHMmI4
I should probably have mentioned a link: https://github.com/smcameron/space-nerds-in-space
Great news :)
I bought Artemis, but then i heard from SNIS. So i already set up an compile server for compiling/making live ISOs :) Now i am just searching for some geeky friends who are willing to play.
Well, If you want another open source alternative, you also have http://emptyepsilon.org/
This is Awesome! However, I just need one big button for my kerbal bomb program.
looks pretty cool
Very cool project! As an avid KSP fan, this would make it 1000x more awesome! Well done!
Potato!
Why so many Arduinos? Convenience?
To troll :)
For thrice the blog cred.
IO volume and processing power; look at all the buttons, the joystick, and the touch screen there (even if not used as such, it definitely has one).
Shift registers? There are ways of increasing IO if it’s just buttons.
Forgot this in original comment briefly, but it also cuts down quite a bit on response time to have a dedicated micro just to talk to the computer as compared to somehow doing that while also taking input from everything else and pushing data to a screen at the same time. The way it’s described in the article and the writeup, such as it is, one mega is dealing solely with the serial to/from the computer, one is dealing with all the buttons and the joystick exclusively and feeding that to the serial one, and the due is taking data from the serial mega and displaying it.
And a single FPGA would cost more than all the microcontrollers it takes to do this.
The MCU’s were not the expensive part here, but a shift register / io expander are already going in. The main cost of this whole setup was the buttons and the Abox enclosure alone. Im down to one mega and the Due now, magic smoke has escaped. And I will probably replace the mega with a UNO and a register once I’m happy with things. Using a mega for DEV is just easier, since I can focus on the bare minimum.
All in All, I think this build cost around 157 EUR for all the components and the Housing was.
Mega: 10 EUR
DUE + LCD: 18 EUR
4-axis: 20 EUR
Buttons: 16 EUR for 12
Safety Switches: 14 EUR for 8
OLED: 4 EUR each
Abox Chassis: 43 EUR
/Kegan ( marzubus )
i can understand why the due is there. 8 bit arduinos are kind of slow for those off the shelf serial displays. just to scan in an image takes forever. but why you couldnt run the other hardware off of the due is beyond me.
i do however frequent the ksp modding board so i believe it has something to do with the arduino interface plugin not working with the due yet because of architecture differences.
also the standard hid interfaces are best served with a leo, which isnt hard to turn into a native usb hid mouse/keyboard/joystick controller. pretty sure the due could do this job, but at what cost to graphics?
so you got one talking to ksp, one drawing graphics, and one being an input device.
you could probibly do it with a raspi on a network connection, and have a decent gpu doing the graphics end (those adafruit touchscreens would make a great mfd). stick some port expanders and an adcs/dacs on the i2c bus for all your input. though i dont think the arduno plugin would work for that setup. theres another ksp plugin that can work over networks, but im not sure if it compares to the arduino specific plugin in features.
the other reason is that ksp is a game played by a lot of tweens, so you want a system that is accesible to them. and i cant think of anything better than arduino for that.
Hi,
The reason I went for not just the due is the 32bit issue, and many io pins are used to drive the lcd and oled screens. I will use a shift register for maximizing a UNO for all the rest once I’m happy with things.
KspSerialIO is very sensitive to latency at the moment, so until the protocol can be optimized, this setup will have to do. I have already dropped one of the megas. Mostly because I fried it. :/
/Kegan
Brilliant! I was just wondering a few day ago how hard this would be to do my sons are as addicted to this game as I am!
Making something like this for your kids would net you some serious ‘awesome dad’ cred.
I remember playing mechwarrior as a kid on one of those hughenormous controllers, that my dad dug up somewhere, and having a huge controller was half of the fun.
Woah, just found that that my Joystick has been blogged here :D The three arduinos are for the dev unit, the finalised version will probably just feature a UNO and the DUE. With some shift register for all the buttons and lights.
Kerbal is not a space simulator. It is an explosion simulator.
Wow this is cool but I think it isn’t fair that the Kerbals now have a better space programme than NASA! (I would have said North Korea but lets be honest, a hillbilly with a bottle rocket stuck in his bung hole has a better space programme than North Korea.)
I’m working on something similar, but using the the TI TM4C1294 connected Launchpad for the brain. I’m not doing a lot of display stuff… as I’ve got a second monitor handling that. The second monitor’s application and the launchpad are both communicating with the game via the Telemachus plugin… which means I’ve got the ability to control Mechjeb from external keys as well.
a question for Eric Evenchick years ago you hacked a DELL AC power adapter – ID CHIP …
just a quick question if I want to use this Power source(PS) as an open source on a power board
at about stated output 19V can I ignore the signal wire and just use the + / neg as I would a battery
within the stated aperage on the unit …
please dont flame me I looked all over to find a person with a clue
send answer to 33donnn@gmail.com please n Thankyou Don
Yes, that’s exactly what you should do. I’m not Eric, though, I just know this =)
http://twitter.com/ericevenchick
He should have used a teensy instead of regular arduinos, it runs faster and has more inputs. It’s a much more logical choice.
I just don’t have a teensy, hence why I went for the Mega’s which I have. Though I will probably replace the mega’s with a UNO and a shift-register if I can fit everything into the memory of a UNO.
I’m going to sound like some ad employee (I have no link whatsoever to the teensy people), but why not a teensy if you are going to change it? Look at the specs of them http://www.pjrc.com/teensy/ And they work with the arduino IDE so no hassle to use.
But if it works for you to use your classical arduino I guess there is no reason for me to push it either. It’s just that the only way a teensy can be an issue is when you use shields designed to fit on the arduino, but I gather that you don’t.