Jump to content

Custom hardware / simpit repository. For people who take KSP a little too far.


Mulbin

Recommended Posts

...a reasonably feasible way to do good panels without needing CNC or laser hardware! ...

Have you looked at my method? I just send my art files to a sign manufacturer who prints them on Dibond (aluminium Composite). Costs around £35-£50 a panel but can be more efficient if you squeeze a few panels onto one "sign"... best part is your panel will be made from coated aluminium. I believe you can also get printing on uncoated with a brushed finish.

reWSZn0.jpg

MxjEp0E.jpg

Edited by Mulbin
Link to comment
Share on other sites

Have you looked at my method? I just send my art files to a sign manufacturer who prints them on Dibond (aluminium Composite). Costs around £35-£50 a panel but can be more efficient if you squeeze a few panels onto one "sign"... best part is your panel will be made from coated aluminium. I believe you can also get printing on uncoated with a brushed finish.

Look at Stibbon's control panel for an idea of what I'm going for (Stibbons, you beat me to it :P ). Stibbon's method is also quite popular in the Flight sim community, as it's how a lot of large jet's panels are made too. I'm going for mimicking the Apollo command module's nomenclature panels. They were plastic panels with backlit nomenclature. Those were mounted onto the rigid panel structure. Toggles were mounted to the rigid structure, leaving them recessed, with the guard wickets providing additional protection.

I'm experimenting to see if I can find a good DIY method of doing this. It'll still require a good printer, or a copy shop, but that's much more readily available to most people. For me, the nearest maker space is a 2.5 hour drive. I don't have a CNC mill or a laser cutter, but I can drive across town and find a copy shop. I'm also only looking at laser compatible media. I am sure inkjet compatible media exists too, and almost everyone has an inkjet printer.

Don't get me wrong, your panels are amazing!!! They really are, but I'm strongly inclined to backlighting over dim flood lighting, and I simply have materials on the way that may permit me to experiment with a potentially very easy method to make this both cheap and easy.

On another note, IT'S ALIIIIIVE!!! I made LEDs light up, AND the meter moves! I'm slowly learning to code this thing, and this is progress!

KerbalLEDItsAlive.jpg

I also think i've settled on the keyboard I will mount in my panel. It's small, it's got mechanical keys, and it needs to be wiped clean! :confused:

it's an Apple IIc keyboard. I will be adding diodes to the matrix, as it only supports 2-key rollover as is. I'll probably get a Teensy and set it up as an HID device. I'll desolder the caps lock and control switches and swap them, so I have control in the correct location (this is a mechanically latching clicky caps lock). I'd like to get another key switch and key cap and place it in the gap at the bottom for an extra modifier key. The small buttons at the top are toggle buttons, like the caps lock. I want one of them to toggle the top row of keys (the numbers, - and =) between their normal function, and function keys. The other one... I dunno. We'll see. Regardless, It's a nice and compact keyboard!

AppleIIcKeyboard.jpg

Link to comment
Share on other sites

Look at Stibbon's control panel for an idea of what I'm going for (Stibbons, you beat me to it :P ). Stibbon's method is also quite popular in the Flight sim community, as it's how a lot of large jet's panels are made too.

I struggled for quite a while for a good method for making my panels before, well, lifting ideas from the flight sim pit builder community. :D They veer towards realism whereas I was gleefully aiming at retro sci-fi, but time lurking on simpit forums is definitely time well spent.

Link to comment
Share on other sites

Ahh, I see. I've not looked too closely at Apollo construction as I'm taking most of my design influence from Mercury and Gemini. My simpit will have a good old fashioned lamp above the panels :)

The KSC looked at a incandescent flood lighting for the cockpit at one point, but realized there was significant weight savings in going with LED based illumination. They had looked at EL, but realized that it required AC inverters to power. Jeb then suggested saving the weight of the AC inverters to add moar snacks. KSC approved the recommendation. LEDs were also cheaper. :sticktongue:

On another note, I received the Nekoosa Coated Products synthetic paper. It is ten 12x18 inch sheets, so I'll have to cut one to feed into my printer (8.5x11). I should get two sheets to feed into my printer out of one of the sheets. that'll leave me 9 full sized sheets left. It has good light transmissibility, so it should work nicely for panels, especially if I print black outs on the back as well. The meters may be another story... I may ACTUALLY NEED to get EL strip lighting to backlight them! I can actually read text through it, so it's not enough to diffuse a few pinpoints of light over the length of the meter. I'll need 1/4 inch and 1/2 inch EL strips for my 1251 meters, and I might have to lay some of that side by side for my GE 180 meters. I think it'll work well when it's done. Haha! I might waste a few sheets in the experimenting process. :confused:

But yeah... This stuff can be fed through a laser printer. Once I have my meters refaced, I'll post pics. I'll see about using this stuff for panels as well. That will depend on if it bubbles or warps under acrylic or not. I might try ironing it to the acrylic to bond it via the toner. we'll see. Again... It's all experimentation! :D

Nekoosa.jpg

Edited by richfiles
Link to comment
Share on other sites

The KSC looked at a incandescent flood lighting for the cockpit at one point, but realized there was significant weight savings in going with LED based illumination. They had looked at EL, but realized that it required AC inverters to power. Jeb then suggested saving the weight of the AC inverters to add moar snacks. KSC approved the recommendation. LEDs were also cheaper. :sticktongue:

But all that reasoning was much later during the construction of the Kuran Space Shuttle. In the old days during the Kerpollo program they used regular 60W light bulbs. The engineers assumed it would be much better to have a light source that could be easily attained from any nearby store, eliminating the weight of keeping spare bulbs in the space craft.

Needless to say, none of the original Kerpollo engineers was transferred to the Kuran program. They still do public appearances but once you have heard them say "Do you want fries with that" a few times, you'll be bored to tears by them.

Jeb became legendary as the first (and only) kerbal who managed to survive a night landing with blacked out instruments. He actually doesn't know how he did it himself as all he could do was to throw a few random switches while bitching in the dark. Ahhh, those were the good old days... :D

Link to comment
Share on other sites

Haven't had a chance to mess with the meters or the synthetic "paper" yet, but I did get some parts in the mail, and I did start work on the DAC + Amplifier board. I still need to find suitable transformers to step up the voltage, and I have enough LM675 power op-amps that if the amplifiers just don't have enough juice on their own, I can boost them even further with more current driving capacity. An LM675 with a proper heatsink can drive up to a peak of 3 amps. I figure I will attach two in opposing polarities to the reference output and attach it's transformer between the two op-amps outputs. One is probably fine, but I have so many of the chips... Enough I could drive differential pairs to ALL the sine outputs! :sticktongue: The reason for driving the reference with a higher current is that I believe all the power for the servos and the servo amplifiers actually draws from the reference, and the synchro inputs just produce a small current whenever there is an error between the external signal and the internal receiver synchros (serving as the ball's position sensors). The synchro signals are all being amplified by a simple audio LM386 audio op-amp circuit, straight from China. It was literally SO CHEAP, that it was with spending the money to gamble on maybe not having to do the work for 9 of the 10 outputs. They even have tiny screw type terminal blocks to attach the wires to. I spent like $1.11 EACH on them. For an entire miniature audio amplifier. 400 Hz is WELL within the range of audio amplification.

I went up to Minneapolis, Minnesota for a robotics meeting at "The Hack Factory", a maker space, that I WISH wasn't 2 freaking hours away. I did some soldering, and showed off some of my robots, and all that fun stuff, but this is what I have so far... Dumb board was just a hair too short, so one amplifier is sticking off the end, all by it's lonesome... but that'll just be my reference output, so totally justified and I totally meant to do that, just like the time I did my first Mun landing with 2/3 a bottle of wine in me, and I accidentally staged 2 full tanks in my asparagus staged launcher... Nothing to do with my fingers hurting cause I punched a wall trying to reach a light switch... :blush: I still got the fuel depot up to the Mun... and made a perfect night landing... Those tanks were just extra weight! Yeah! :confused: Just like how that one board is supposed to stick off the end! True story, bro! :cool:

KerbalFDAI_DAC_amp_Partial.jpg

Somehow, It's $1.11 to buy parts, build, AND SHIP those little blue boards half way around the freakin' world... Including the PCB, there are 14 individual components. Even assuming all the SMD discretes cost 0.045 cents combined (0.00045 US dollars), that means the through hole electrolytic capacitor, potentiometer, terminal block and header, plus the LM386, and the PC board... and assembly, are still so low that they can ship it to the US and still turn a profit... It never ceases to amaze me how screwed manufacturing is in anyplace that's not China... You can't compete with that! That red DAC board was actually more than double the blue audio amp. What's cheap isn't even consistent with complexity. It is literally what has the most volume. The audio amp has more volume, so it's dirt cheap, despite having double the total component count, and being fully assembled, with through hole processes also pre-assembled. had to solder the header to my DACs. Amazing.

So yeah... Getting there. I'm just gonna use wire wrap wire (30 gauge solid wire)for my interconnects (power will get heavier gauge wire). I'll solder it, but I'll give it a small pre wrap with my wire wrap tool. The tiny insulation stripper really makes it easy. Hold the wire with a tweezer, slide stripper on, strip insulation, wrap it, solder it, feed the wire to it's destination, and repeat for the other end. I can also traverse the top and bottom of the board using the many predrilled holes to form the wire into a matrix that looks neat and tidy. Kinda reminds be of the wire bond matrices of the Gemini computer. Totally different, but it'll look nice... I should have spaced the DACs a hole further away... It's okay, I can manage it.

*** (1) *** Also, speaking of getting things in the mail, an unknown FedEx package3 arrived while I was out of town, and was dropped off with a neighbor... Yeah, not knocking on the neighbor's door at 12:37 AM... That's a good way to make neighbors that aren't too neighborly! :P All my open orders are from China... AKA, not FedEx. The only recent item i got by way of FedEx, was my 1251 dual edgewise meters. The guy did promise me he'd send a replacement for the one with the broken needle. That might actually be it, since he never sent a tracking number, and mentioned he'd get to it next time he was in his office. If that's what it is, it means I now have 4 single GE edgewise meters, and 4 dual 1251 edgewise meters, with one of those having only one functioning needle. Add my round vertical velocity meter, and that's 12 stand alone analog meters! Krikey! :0.0: That's not even mentioning the two Flight Director crosshairs (that will be made functional when we get orbital vectors transmitted, and not just straight attitude) and the glideslope meter. I still have no idea what to do with that. Maybe I need to see if we already have enough data transmitted to actually calculate glideslope. Could be nice and useful for space plane landings or something. What would that be surface velocity vs vertical velocity? I think? I think that's probably it. I gotta look that up or something. Man... 12, plus glideslope, and the 2 crosshair meters... A Mega has EXACTLY 15 PWM outputs! Yikes! Talk about cutting it close!

As a final note... I also went to the Science Museum of Minnesota before my little meet up... They have a Space Exhibit going on there, and check out what they had on loan... :cool:

NeilArmstrongsGloves.jpg

:sticktongue: Awesome! :D

*** Edit ***

*** (1) ***

The package was a wrong address delivery... Not my other meter. I don't think I'll be getting that replacement after all... ;.;

Oh dear, whatever shall I do with only 10 stand alone analog meters! Oh woe is me I'm totally kidding. I think I'll survive. :P

Edited by richfiles
Link to comment
Share on other sites

As a final note... I also went to the Science Museum of Minnesota before my little meet up... They have a Space Exhibit going on there, and check out what they had on loan... :cool:

http://richfiles.solarbotics.net/eb/NeilArmstrongsGloves.jpg

Those things have definitely seen better days. :)

I wonder how the modern versions fair (and whether they degrade as much / quickly).

I read somewhere about the fact that they had a particular version of the spacesuit in storage because it was surviving better than any of the others;

cant remember whose / which mission it was from. It was Apollo era, but that's all I remember. :/

Link to comment
Share on other sites

Hi Mulbin!

If you feel like it you can add me to the collection of simpit projects.

I spent part of this summer tinkering on it and there's still a lot to do. Joystick and most of the switches works as intended. Still a lot of stuff to code, such as; display modes, guidance computer functionality. Made a couple of assumptions that proved to be misaligned with reality, so I'll need to reprint some front panel stuff and change a few lines of code in some of the modules.

I started a blog (one entry so far) documenting it for those who might be interested in what I'm doing. There isn't much yet, but if all goes as planned there will be.

Project: K-42

Blog: http://forum.kerbalspaceprogram.com/entries/3701-K-42-KSP-console

DSC_0002%252520-%252520resized.JPG

Link to comment
Share on other sites

Antipaten, that is one NICE looking Kerbal controller! :cool:

If you sunk that into a cutout into your desk, then made a six inch vertical section on the back, and had that wrap around the sides at angles similar to the monitors, I'd say that's close to the setup I'm aiming for. What kind of keyboard did you use? For that matter, do you have some high resolution pictures, I'd love to see details. I just looks SOOOOOO goooood! :D

Link to comment
Share on other sites

The reason I didn't make a cutout in my desk is that I use it for more than playing Kerbal (?!?! gasp!) and need the surface from time to time. If I had the space to build a permanent simpit I would, but my apartment is a bit too small for me, my wife and all our hobbies.

I actually don't know what keyboard it is. It's a PS2 keyboard I found in the scrap pile at work. It's completely functional as we're phasing out all PS2 equipment in favour of USB. I fell in love with it immediately as it had the right lack of color and measured almost exactly 45x15 cm which was an even multiple of my module size.

I have a few more detailed pictures in higher resolution but the upper limit of what you can see is set by the optics of my old phone.

https://picasaweb.google.com/100548400606454481782/Kerbal?authuser=0&feat=directlink

I've made a few design decisions that didn't work when testing so I'm going to make a few changes and print new front panels for the modules. One change is to use AG7 - AG10 for fixed actions as some parts only has a toggle option. In those cases I can't use keyboard commands as there is no way to assure that the game is synced to the two-way switch. I will also repurpose the switches for RTG (which has on/off actions that don't do anything) and GC power to instead fold and extend the new radiator arrays. I might also add an arming light to the chutes section.

The front panels are printed on transparent slides and I glued a paper as diffusor to the acrylic front of the modules as I planned to add lighting inside the box for backlights. The problem is that I had a lot of problems with static charges in the printer during printout causing sparks that spread out the toner before fixation. The next set of fronts will be plastic laminated paper printouts instead. The plan for backlighting doesn't work anyway due to the amount of components on the back of some panels. There would be just to many shadows to get a good illumination. I'll leave the backlighting for later when I feel like doing a full redesign of the modules and then integrate in the module itself instead.

Link to comment
Share on other sites

Your controller looks absolutely amazing! :D

I've made a few design decisions that didn't work when testing so I'm going to make a few changes and print new front panels for the modules. One change is to use AG7 - AG10 for fixed actions as some parts only has a toggle option. In those cases I can't use keyboard commands as there is no way to assure that the game is synced to the two-way switch.

Actually, Regarding syncing to the 2 way switches, that's possible. it just takes some code and a little effort... Manual effort! :sticktongue:

the KSP Serial IO plugin sends a status state back to indicate whether stuff like SAS and RCS is on or off

(ActionGroups status bit order: SAS, RCS, Light, Gear, Brakes, Abort, Custom 01 - 10).

The microcontroller needs additional programming, and you need additional lighting, but it's possible to make the microcontroller "warn you" to manually synchronize. Set you master alarm light, or add a status alarm light and light that, if changes are detected. Basically, if the microcontroller detects that the status bits do not match the previous status bits and the physical switch bits, then it would store the new status state (from KSP) in memory, and set a bit indicating that status requires updates, and light up both a master status alarm led, as well as an LED by each toggle that needs updating... lets say a red LED next to the switch, maybe even flash it. It would ignore the setting the switch is in until you either flip the switch manually to match the status bit (which would clear that switch's status LED), or reset the master alarm. if you reset the master alarm, then the current physical switch positions then all get sent to update KSP.

You only need to do this check for toggles, since pushbuttons will be programmed to only toggle the existing state, and can coexist with KSP and the keyboard. All status bit can be easily displayed by a green LED, for example. You can even use a bicolor LED, so one indicator provides feedback as to whether the function is on or off, and if the toggle matches KSP's internal status.

As for the actual detection, it's about keeping a local copy of the status bits on the microcontroller, and comparing them to the newest received frame. If a change occurs, then the micro knows that KSP sent the changes. It stores the new changes in a location in memory, and keeps the status. If a switch changes, then the status bits from KSP will remain the same between frames, so the micro knows the change was manual, and can send the new change to KSP, and also change the stored bit, so it matches what it'll get on the next data frame.

Hopefully that makes sense.

- - - Updated - - -

Hey Mulbin, care to add my project to your post? I've been updating http://forum.kerbalspaceprogram.com/threads/102513-My-KSP-control-panel with build progress, and it currently looks like this: http://i.imgur.com/3INZrTm.jpg

http://i.imgur.com/3INZrTm.jpg

STIBBONS!!! Dave Jones of the EEVblog drove a rover on YOUR control panel! That's freaking AWESOME!!! :cool::D:sticktongue::0.0:

Never connected in my brain when you both announced going to a maker faire, that you both were going to the same one! :confused:

So awesome! You've had your control panel played by an internet celebrity!

Edited by richfiles
Link to comment
Share on other sites

Okay, I'm sold on the idea, and being inspired by this project, I have an idea rolling around in my head. As much as I like KSP, I would like my control board to be more versatile. I want to use it as a performance monitor, fan controller, game controller for games other than KSP, etc.

At the center of my control board would be a monitor, like the AOC Portable USB Monitor. This monitor would display a custom screen based on whatever application I am using it for: gauges and readouts for KSP, temperature and fan speed gauges, network throughput, etc. for a system monitor. It would also display a label for all the buttons and switches, as their function would change depending on the application I am using it for.

Around it would be a collection of buttons and switches, maybe some potentiometers or rotary encoders. I found a link to a site called Desktop Aviators that has ready made USB interfaces for switches, but the price is awfully steep in my opinion, especially when there is probably a way to use an Arduino and a shift register to do the same thing for practically free, since I already own an Arduino.

I also thought about integrating a USB hub into it, as it would probably be necessary anyway. I want only one cable going from this to my PC, I would also likely need a power adapter for the USB hub to provide a full 2A, since the PC's USB port only supplies 500mA.

The assembly and wiring would be no problem for me. I'm experienced in programming, and am fluent, but at least familiar with C#, Python and Arduino's customized version of the C language. The biggest challenge for me would be how best to interface with the PC. I think mapping to keyboard keys would prove to be problematic since I would be using a keyboard along side of this. Any ideas? Map the switches to joystick buttons or read them directly over a serial connection with the application I would inevitably write for the PC? Is one easier than the other?

Parts already owned:

Arduino UNO

Powered USB hub

A strip of RGB LEDs

Parts I know I would need:

Material for the housing (I'm thinking acrylic)

All the switches, buttons, etc.

Link to comment
Share on other sites

You can send complex compound key combinations - if you've got your OS binding something to alt-shift-F6, then you can trigger it with an arduino. Here's a sketch I wrote for sending keyboard shortcuts to Chrome on OSX.

The other option I'd look in to would be a python daemon running on your PC, talking to the arduino over a serial interface.

Link to comment
Share on other sites

You can send complex compound key combinations - if you've got your OS binding something to alt-shift-F6, then you can trigger it with an arduino. Here's a sketch I wrote for sending keyboard shortcuts to Chrome on OSX.

The other option I'd look in to would be a python daemon running on your PC, talking to the arduino over a serial interface.

A Python daemon is equivalent to an application that runs in the system tray, right? I run Windows 7, and from what I've read about daemons in reference to Linux I think that's how they work.

Link to comment
Share on other sites

Sorry, my day job is all Linux, I forget to use the right terminology elsewhere. :)

The closest analogy is probably a Windows service, but something that keeps an icon in the system tray could also work for you.

Okay, cool.

I think I may have found something useful:

http://hunt.net.nz/users/darran/weblog/15f92/Arduino_UNO_Big_Joystick_HID_firmware.html

This firmware can turn an Arduino UNO into a HID Joystick with up to 8 axis and 40 buttons! Wow! I would definitely have to use shift registers or some other voodoo to read 40 buttons with an UNO, but this looks promising.

Link to comment
Share on other sites

the KSP Serial IO plugin sends a status state back to indicate whether stuff like SAS and RCS is on or off

(ActionGroups status bit order: SAS, RCS, Light, Gear, Brakes, Abort, Custom 01 - 10).

It makes perfect sense and I've already done that, whats left is all the extra goodies I want to connect to swithces. I want to accurately control open/close docking port, intakes and cargo bay too on two-way switches and that can only be done by flipping AG bits in KSP Serial IO, not by keyboard commands. So I used four of the ten custom bits for that.

I would love to get full support of Action Groups Extended in KSP Serial IO but as Zitronen seems to have set an upper limit to 255 byte total I guess that's out of the question atm as it would require another 32 bytes. I want MOAR SWITCHES! :-)

Its actually less cumbersome to map switches to bits. All it takes is a single line of C to map, somewhat like connecting a wire, whereas making keyboard commands needs about six code lines including a delay.

Edited by Antipaten
Link to comment
Share on other sites

I finished the DAC + Amplifier board for my physical "navball" FDAI synchro emulator.

The unit uses 10 MCP4725 12-bit I2C Digital to Analog converters, and 10 LM386 audio amplifiers to generate the 10 400 Hz sine waves that will be required to emulate the synchros that control the FDAI. The arduino will control the DACs, and a transformer will be tied to the output of the audio amplifiers to drive the inputs of the FDAI. I highly suspect the reference will require more current, since I believe the FDAI is also powered by the reference signal as well, so I will simply drive it through an LM675 power op-amp, if I need to. I even have enough room to fit it on the circuit board, If I end up needing it. If I end up needing LM675s for all ten outputs, I'll just mount them all on an intermediate board instead. Of course, that would be dumb, as I could have skipped the LM386 audio amp boards if that were the case, but they were cheap, so whatever. They're installed, and that's good enough. At $1.11 each... shipped, I can't even care if they end up redundant later on.

KerbalCM_FDAI_DACampTop.jpg

KerbalCM_FDAI_DACampBot.jpg

The 4 pin connector is power and I2C serial data. The 10 pin connector is the DAC select. Since the I2C DAC chips in question can only support 8 unique addresses, it's necessary to use the external address select pin as a chip select instead. In software, I will ALWAYS write to the same I2C address, but I change which chip select pin is on before each write. Since only the chip who's address pin is high matches the address being sent, only it will receive the data. All the unselected pins would have identical addresses, but since their identical addresses (the address you'd get with the address select pin set low) are not sent over serial, none of them respond. At one point, I had considered an I2C multiplexer chip, and replacing the individual DAC chips with the correct addresses to address all the chips in software, but I think this will ultimately be simpler. I plan to use a Mega to control it, so it's not like I've got to conserve pins or anything like that.

I like my little wire wrap tool... It lets me not care about making PC boards for simple jobs! :sticktongue:

And actually, there is one incomplete step in these pics... A free "Jeb wearing shades" smily to the first person that spots it! LOL! It's a step that should be repeated ten times, but is only done once on these pics. One teensy little detail! :wink:

Edited by richfiles
Link to comment
Share on other sites

And actually, there is one incomplete step in these pics... A free "Jeb wearing shades" smily to the first person that spots it! LOL! It's a step that should be repeated ten times, but is only done once on these pics. One teensy little detail! :wink:

Connector 'A3' hasn't been wired up yet! :D

Link to comment
Share on other sites

Oh you! :rolleyes:

It's A0, not A3! Addresses start at 0, silly! :P LOL ◴‿◶

Eh, close enough, though. Here's your Jeb wearing shades! :cool:

Specifically, the address select wire is only wired on the right most circuit.

Edited by richfiles
Link to comment
Share on other sites

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...