Jump to content

K.E.E.B - I'm finally prepared to show my hardware mod


Luis

Recommended Posts

Having worked on this for almost a year, I think I'm finally ready to go public. This is my attempt at a hardware mod, inspired by the many others in this forum.

Javascript is disabled. View full album

Features:

  • Throttle can be smoothly controlled using a rotary dial, but it also has buttons that will jump immediately to full throttle, 80%, 20% and off. The LED readout shows the current throttle setting.
  • Abort action group triggered by a flashing illuminated button. This must be armed using the switch, which is itself protected by a switch guard.
  • Switches for the RCS, SAS, landing gear, lights and brakes. Each one has an LED to indicate its current state. The brake function can be activated using the momentary push button, or by flicking the switch to activate the parking brake.
  • Numeric buttons for action groups and data entry.
  • Program mode. This allows activation of DSKY-style stored programs and manoeuvres.
  • IVA switch to flip between internal and external views.
  • Twin digital joysticks can be remapped to different keys, to change between flight and docking modes etc.
  • LCD display shows basic orbital/ surface/ docking/ EVA information.
  • Flight mode selector. A rotary switch to change between flight, docking, landing and EVA modes. This remaps the joystick keys and changes the information that appears on the LCD.
  • Battery indicator. 3 LEDs show current battery status and whether it is charging/discharging
  • Staging activated by a flashing illuminated button that is protected by an arming switch.
  • Alarm conditions indicated by a flashing button, buzzer and LCD display message. Press the button to acknowledge the current alarm and silence the buzzer or use the override switch to disable all alarms.
  • Map switch
  • Attitude control system. If MechJeb is fitted on a ship, the attitude-mode rotary switch, and control buttons can be used to automatically orient the ship prograde/retrograde, normal/anti-normal etc.

The KEEB (which stands for Kerbal Etc Etc Board) communicates with the game via a plug-in, based on the KSPSerialIO mod by Zitronen. This gives it live updates of the ship's apoapsis, periapsis, speed and so on, as well as the current state of all the controls so the hardware doesn't get out of sync with the game.

The electronics is built around an Arduino Leonardo and four SX1509 I/O expander boards. Power is supplied by an external 5v supply module. The case is made from an MDF shell with 3mm aluminium sheet for the exterior.

There are still a few loose ends to tidy up, like better panel decals and some extra software features, but I will be demonstrating the KEEB in action at the Sci-Fi Weekender in North Wales, on Saturday 22nd March. A 6-page article with some of the details of the build will also appear in Build Your Own PC magazine on 27th March and then in PC Format magazine on 10th May.

Link to comment
Share on other sites

Wow, really nice work! I'll add a link to my thread :) Soon there will be a whole fleet of ksp simpits!

If you decide to make any more panels then you might be interested in this mod currently in development, it increases the number of action groups available from 10 to 260... time to bulk but those switches!

http://forum.kerbalspaceprogram.com/threads/71631-Additional-Action-Groups-Development-Thread

Link to comment
Share on other sites

Nice very nice

as soon a i looked at the pictures i thought ah "Arduino" that would be perfect for that

and after reading your post yep

are you willing to post your sketch or at least parts of it

i would love to see how you impmented it

just a learner with Arduino myself just about have my first 2 wheel robot car with sonar ready to go

Link to comment
Share on other sites

as soon a i looked at the pictures i thought ah "Arduino" that would be perfect for that

and after reading your post yep

are you willing to post your sketch or at least parts of it

i would love to see how you impmented it

I'll put the code on GitHub when I get a second. There's nothing especially fancy about the sketch, but there are a lot of separate things to control so I'm bumping right up against the Arduino Leonardo's memory limit. Some of the functions, like the messages that appear on the LCD screen are handled by the mod in KSP and then passed back to the KEEB, as a way of saving space.

Link to comment
Share on other sites

Shut up and take my money!!!!!

(Metaphorically speaking - I don't think I could justify paying as much as it looks like that would cost for a game controller. But it's very nice all the same! :) )

Link to comment
Share on other sites

Questions!

Do you use Zitronen's KSP serial plugin to link it to ksp? Or your own code?

Also how does your DSKY work... I'm taking a guess that maybe the "prog" switch opens KOS? and then the number keys use the arduino to send load/run commands? - complete guess though you might have done it completely differently!

Also... how do your switches interface with mechjeb? - I didn't think mechjeb had keybindings (I could be wrong). Are you sending them via something like telemachus?

I added a link to your thread on my simpit repository, let me know if you want a different pic.

http://forum.kerbalspaceprogram.com/threads/66763-Custom-hardware-simpit-repository-For-people-who-take-KSP-a-little-too-far

Link to comment
Share on other sites

The serial communications is indeed heavily based on Zitronen's plugin. Receiving works almost exactly the same, but I started doing the transmit function before it had been added to KSPSerialIO so my version is a bit different there (and probably less elegant).

DSKY functions aren't actually implemented yet but it will use the prog switch to change the numeric buttons from controlling action groups, to being used for data entry. With the prog switch on, you punch in a two-digit program code. If it requires further parameters, you'll then be prompted to enter them, using the OK or Cancel buttons after each one. The actual programs will be fairly simple, because I don't want completely automated missions. It's just intended to remove some of the jobs I find tedious. I'm planning to have a gravity turn program, and programs for changing the apoapsis and periapsis but I haven't decided yet what else to include. It's really there to provide room for expansion. It may open KOS, but it's possible that MechJeb will have the everything I need, and I'm already linking to that.

The MechJeb interface isn't done via keybinds (since there aren't any, as you say). The attitude control functions on the KEEB simply send a command request in the serial packet to the game mod and then this calls the MechJeb API directly. This turned out to be a good deal less difficult than I feared.

Edited by Luis
typos
Link to comment
Share on other sites

  • 4 months later...
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...