richfiles

Kerbal Instrument Panel: In-Desk Apollo Themed Hardware Controller

19 posts in this topic

KerbalDesk3.png
I've been working on this project on and off since around June of 2015... I initially first appeared on Page 6 of the Simpit Repository where I showed off some really nice hardware I'd collected for the project. The goal is to create a controller using real instruments to provide readouts of orbital data, temperature, fuel, electricity, and other critical values. The controller will have joysticks and toggle switches and other controls to command the in game vessel. I'm using this project as an opportunity to force myself to learn C programming, and as a furthering of my electronics hobby. While this thread has a LONG way to go to catch up with my progress, I'll work on it over time.

IfHrpB2.jpg
Part of why this has taken so long, is it's not only a learning process, but I've split my time with other projects. My custom mechanical keyboard was built to work with this Kerbal controller build, and will actually slot into the controller! The number pad magnetically detaches, so when my keyboard tray is extended, I have full use of the extended keyboard, but with the tray pushed in, I can set the number pad aside, and use only the core keyboard!

rPLZaNS.jpg
This is the button that started it all.
I was inspired by how AWESOME this button looked, and how big and red and "Aborty" it could potentially be! :D

Pi0CDVI.jpg
The Instrument panel enclosure is a re-purposed Harris Stereo 5 console that was saved from the local AM radio station.
oqVNyGg.png
jgs1Jow.jpg
You can see several instruments here. On the right is my analog vertical velocity meter, and in the middle, my FDAI. The Flight Director-Attitude Indicator, more commonly known around these parts as a navball, is a real awesome find! I'm in the process of building a controller for it, but that is a daunting task... It requires nine 28 volt amplitude modulated sinusoidal outputs that are controlled by multiplying DACs, and a 115 volt sinusoidal reference source to provide both power and synchronization for all the 9 other signals.

ZcsGFp8NX5S9i.gif
This is the keypad I made for my "DSKY", inspired by the DSKY (DiSplay KeYboard) of the Apollo Guidance Computer (AGC). It normally lights green, but can flash red if there is an alarm condition... Such as the "I'm about to pop like an overheated popcorn kernel" condition. :0.0:

p27suMc.jpg
My throttle lever (as well as the keys for my DSKY keypad) were salvaged from an old video effects controller board. I have a LOT of these relegendable, backlit push buttons, in two different sizes.

VplmqPK.jpgGDRoytW.jpg
My analog meters are inspired by the edgewise meters used in the Apollo Command Module, Lunar Module, and Space Shuttle.
I'm taking the extra effort to print proper scales that use the Futura typeface that NASA used, and follow an overall design that visually resembles the Apollo instruments.

Likewise, Tape Meters were also used as instruments on Apollo, and even more so in the first revision of the Space Shuttle, before the glass cockpit upgrades. Tape meters have a long tape on spools. The numbers scroll passed a stationary pointer, the opposite of what an analog meter does, where the pointer moves over a fixed scale. This allows very large scales to be depicted, limited only by tape length. The meter I have will be reprinted with numbers corresponding to the radar altimeter.

cv2abxo.jpg
This is the complete DSKY. I'm currently working on it, and getting it to the point where I can control all the LEDs right now. Current progress has all the large numeric LEDs controlled by MAX7219 controller chips, and the small 7 segment display and one of the three alphanumeric displays is currently functional.

f5zMbwShT3f0c.gif
https://www.youtube.com/watch?v=8Cwm_xQZsFo
CK0FBHutILOU0.gif
https://www.youtube.com/watch?v=LwXZKIfvEkI
12bFu4qFAVtoly.gif
https://www.youtube.com/watch?v=1Wlv3oyobcg
Flashy, isn't it! :wink:

pfAaeGY.jpgBpJ7Tqw.jpg
I've been making diode ROMs to decode characters for some of the LEDs. These cost me literally nothing but time to make, and they satisfy my interest in basic digital circuits. I also rather find I enjoy three dimensional free form circuitry! So yeah... I'm enjoying this part! :sticktongue:

In all honesty, I really should have started this post back then! I was just collecting parts back in those days, and always said I'd start a dedicated thread when I began assembling things... The Simpit Repository is now up to 23 pages at the moment I'm typing this... It just grew to incredible proportions, and a few times I felt a little bad for dominating the thread with build posts (that really belonged here), but at the same time, I knew my work was showing other people how to do things, and keeping the Repository frequently in the lime light. It just grew to a size that felt too big to abandon, and too big to move the content. :blush:

I'm starting this post, because I think this build HAS started moving at an accelerated pace, and It should have a dedicated place. I'll build this post up gradually, to cover not only the new content, but to consolidate the content I posted in the Simpit Repository here as well, so the entire build process is properly detailed. I had debated whether I should move content (remove from the Simpit Repository, and replace it here), but I think that'd be unfair to those who replied or were inspired by that content. I'll eventually consolidate everything here, but I'll leave my old posts at the Repository alone.

as for new posts, I'll still post at the repository, but I'll no longer post massive multi-image mega build posts... I'll keep my posts there a bit more basic, and put the details all in this post. I'll still offer my knowledge to answer questions people have at the repository. That won't change. It's just silly that I've taken THIS LONG...

 

Edited by richfiles
17 people like this

Share this post


Link to post
Share on other sites

Awesome project, I'll definitely keep an eye on this.

1 person likes this

Share this post


Link to post
Share on other sites

Thanks! Be sure to visit the Custom Hardware Simpit Repository thread, as I've actually been there for a year and a half, and only just now decided to finally light my SRBs and make my own dedicated thread! :rolleyes: Trust me, there's a lot of amazing projects there too, and a sneak peek as to what will eventually show up here! :sticktongue:

...

Also, reserving this post for future expansion if I end up needing it (spoiler... I will! :P )

Edited by richfiles

Share this post


Link to post
Share on other sites

Nice work (finally) putting your build in its own thread. :P

Not sure if you saw it, but I've been working on my own serial interface mod. Uses the cross-platform serial stuff I'd been working on for KSPSerialIO, with a new serial protocol and a bunch of my own thoughts about how a mod like this would work. I vaguely recall you being interested in MacOS support, so maybe you'd like to take a look. 

 

2 people like this

Share this post


Link to post
Share on other sites

blfdLON.jpg
Working on more of the diode ROMs. So far, the "General Purpose" display, The "Time To", and one of the three identical "Altitude" readouts (Altimeter, Apoapsis, Periapsis) are now completed. Shrinking these things is turning into an art for me! I now have the construction method fine tuned enough that I can build a double sided ROM board that's no wider than the chip socket that it plugs into. I mean, look at how much thinner the ROM to the left is, compared to my first one! I'm really happy with how it turned out! :cool:

K71PiAI.jpg
Seriously, look at how thin the one on the left is! I could show an LED gif, but it'd just be a repeat of the first ROM, minus m.S and ΔV. It has been tested.

W9BieNJ.jpg
The trick to the new level of compactness was to mount all the diodes at a 45 degree angle (approximately). This allows them to take up much less space, though it leaves less room for the actual assembly process to be performed. I re-did my diagram so it shows each side as it would be viewed while working on it... That saved me some unnecessary confusion that I'd introduced with the first diode ROM's diagram. It also made it a breeze to build up one side at a time. I think that was a little faster. this time around. The difference in width is most notable by just looking at the anode leads of the diodes... On the right, they bulge way out to make room. On the left, the leads are vertical, coming directly up off the socket. I no longer even need to worry about adjacent modules and contact clearance anymore!

pkN7JJl.jpg
The inter board connector has been streamlined as well. Now you just plug the small module in, and the large module then simultaneously plugs into both the back of the LED board as well as the small module's connector. Because the Altitude readouts only need to show distances, I can save two characters off the second display, making it possible to fit the board horizontally, and tuck all the diodes underneath. That made it possible to easily redo the streamlined interconnect socket. My row of diodes that triggers the "m" digit of the second display is a bit messy. I had ideas of what I wanted to do, and did other things, and I ended up making it look like a mess. I know how to clean that up significantly, and will most definitely do that next time around, when I build the other two Altitude ROMs.


Still to complete, obviously the other two Altitude readout ROMs, as well as the speed readout ROM, and probably one more general purpose module (like the first one I made, but using the new, more compact construction method). It occurs to me that my plan to have a reconfigurable display in the bottom position of the DSKY might not be the most ideal option. My OLD plans involved 6 rows DSKY readouts. The LED displays that I have now are simply to large, so i had to reduce that to 5 rows. I had originally planned to have Altitude. Ap, Pe, Time To:, Inclination and Eccentricity as 4 digits each on one line, and then have a multipurpose display that could display things like semi-major and semi-minor axes, Longitude of Ascending Node, Longitude of Periapsis, or Mean Anomaly at Epoch. Back in the early days of planning, Speed and Radar Altimeter were going to be a pair of displays over or below the Vertical Velocity Meter. Later on I determined there was room to place speed by itself by the FDAI (navball), excatly how it is in the game, and since I had to ditch one row of the DSKY, I moved Altimeter and Radar Altimeter together by the VVM, since all three readouts are related.

Now I'm not so sure... Everything changed when I created the Radar Altimeter Tape Meter. Now that Radar Altimeter is an analog readout, I have sicne freed up one of the two readouts by the VVM. Speed will remain as a lone LED readout by the navball. That leaves me with a potential of two general purpose readouts, and Altimeter. The question... Does it make sense to have one general purpose readout on the DSKY, and a second General readout off to the side, with the Altimeter, or does it make more sense to place the altimter on the DSKY, where all the most important readings will be anyway, and have the two general purpose readouts set off to the side. I guess it's not a HUGE deal, as in all honesty, the only thing between the DSKY and the VVM will be the Radar altimeter Tape Meter... I'm thinking Altimeter on the DSKY is the way to go. All the altitude data will still be adjacent, but left to right instead of vertically... Yeah... That's what I need to do. It'll just be weird controlling the General Purpose displays... It'll probably be controlled by the DSKY, yet the displays won't actually be on the DSKY. I suppose I COULD use some of the clicky switches I was gonna use on the DSKY (I LOVE those clicky switches) as mode select switches, one or two next to each display. I think I'd have room for it, and it'd differentiate it from the DSKY. I might just do that. I could have a couple of those LED annunciators to light up to show what's being displayed.

I want to order the 3-of-8 and 4-of-16 decoder chips (and a couple other parts, plus a stockpile of resistor values), but I'm reluctant to buy too much right now, cause I'm trying to keep enough to buy the Nintendo Switch a bit over a week from now. At least I still ahve Diode ROMs to assemble. Those are pretty much free for me to build. Spool of over 9000 diodes (impossible!) that I got for free from my old employer when they closed their doors, and all the SIP sockets and PC boards are things I have stockpiled.

4 people like this

Share this post


Link to post
Share on other sites

Posted (edited)

aLGyMgD.jpg
Great news! I have the diode ROMs for the DSKY all completed! I still need to make the ROMs (and the display board) for the dual display General Purpose Readout, and the Speed readout. I've decided to place both general purpose displays above the Vertical Velocity Meter, as their own stand alone "section". I need to order parts, including probably a bunch of pin headers from China, unless I can get them cheap from DigiKey. I find I LOVE using pin headers as modern day turret strip! I am just too ingrained in the old ways of doing electronics! LOL :rolleyes:

5Da9RJP.jpg

Whether I can snag a Nintendo Switch tonight will determine if I work on this more, or if I disappear for a while! :sticktongue:

**Update**
RIP progress, and RIP sleep... I got a Switch and Zelda! I went to bed Saturday night at 8 AM Sunday! :P:rolleyes:

Edited by richfiles
Zelda is love, Zelda is life.
3 people like this

Share this post


Link to post
Share on other sites

Posted (edited)

So, two thoughts for the day...

First, 'The Legend of Zelda: Breath of the Wild' is AWESOME!!! The new Nintendo Switch is AWESOME! I'm awestruck that this level of graphics is even possible in a hand held these days. Now I'm kinda wondering if KSP will be ported tot he Switch. The Wii U version was canceled, but only cause the system failed to sell sufficiently. The Switch is fresh and new! It still has the potential to be a winner, and the initial sales numbers are excellent!

Quite frankly, the Switch is quickly proving to be my favorite system. I have a PS4 and a new 3DS, and I already know given the choice, I'll buy titles for the Switch. The portability actually is kinda cool. I think a lot of people think of it as a handheld that hooks to a TV, but It honestly feels more like a console you can take on the go, to me. I really can't even explain it... I feel like it leans more console than handheld. To me, that's good. I can honestly say that I'd never really consider spending money on KSP on the PS4 to be really worth it for me. Why? I have it on my computer. I actually could see getting it for the switch as being reasonable, given the portability! Not only that, but since the Switch has keyboard support, why not hide full keyboard support in the game, along with the regular console controls! :rolleyes:


u6OUN6f.jpg

So then, my second thought of the day revolves my translational hand control. I have a Fairchild Channel F joystick that I plan to use for RCS control. It's a digital controller, but it's actually a genuine 4 axis controller... up and down, left and right, in and out, and rotate CW and CCW. I got the controller from ebay, only cause I remembered the unique controller, thanks to my owning a Channel F as a kid. It's about as close as any controller ever got to the real translation controls on the Apollo and Shuttle vessels. I have no intention of modding the controller... I just want to make an opening where it can insert through, and then have a soft clamping mechanism to secure it. It'll plug in to a DIN-9 socket on the inside of the panel. That lets me preserve a vintage video game artifact, while still making use of it.

My actual second thought though, relates to where I am going to mount this. I'd assumed that I was going to find some manner of tiny corner of free space  on the instrument panel to mount this. After all, I'd reduced my meter count to 4 meters, now that I have so many double meters, vs the old single meters. It occurs to me that there's really no obligation for the THC to actually be mounted INSIDE the panel at all... It does have a 9-pin D-sub connector, after all! I could honestly mount it ANYWHERE in the desk, and it would work! Potential mounting points are just under or beside the left side of the control panel surface, or where my concept drawing currently shows the CRT box. The CRT box isn't happening anytime soon, and probably won't even fit there, so that space would be reasonable to utilize. It's actually very similar to the location of the THC on the Space Shuttle, so I'm more than cool with that. I can simply mount the clamps to the outside of the control panel, and have a cutout int he desk to make space for the controller to pass through.

One of these days, when i get more time, I'll try to update the concept art. In the meanwhile, I have a Digikey order to place for some parts.

Edited by richfiles
3 people like this

Share this post


Link to post
Share on other sites

Great news! I have a 3 day weekend, I got the Master Sword in Zelda, and my Digi-Key parts order arrived!

Bad news... Sudden apartment inspections, so my free weekend is suddenly scrubbing counters and mopping and vacuuming floors... We had 4 weeks notice for an inspection that's now 2 weeks away, and i've been tidying up a little bit at a time... Ugh... Wednesday, they told us Monday would be another early inspection. Want the place all shiny and   chrome   clean! That shouldn't have been an issue, just an inconvenience, save for the fact that I got a cold from hell... A real phlegm phlinger... :huh:

To top off my bad news... I forgot to order single inline square pin female header sockets. My round pin machined SIP sockets are great for component assembly and such, but won't fit a sturdy square pin header. D'oh! I've got all the parts to build the character select circuitry (to select the character generated by the character decode circuitry), but I don't have the parts to plug them into each other! /)_-

As a positive benefit of all this cleanup, I decided to have another go at removing the stubborn fader control (my throttle lever to be) from the old video effects board. Just it and the trackball were all that hadn't been gutted. I wanted to put the enclosure in my storage room, out of the way. As it so happens, I FINALLY got the steel pin that the handle mounts to off the lever, meaning I could FINALLY pull it through the metal slot in the enclosure! Man, it took a pipe wrench to get enough leverage to finally pop the adhesive they glued that pin with! Yikes! :0.0:

rN5On30.jpg

At least I got ONE thing done for the controller, this weekend...

I also finally got a look at the part number for that track ball. It's an LQ200M-192-50, which is a quadrature trackball (no control circuitry, just raw quadrature output). Runs on 5v, and has CMOS/TTL compatible encoder outputs. I've actually got no use for it, but at least I know the pinouts for it now... Even found the datasheet online.

3 people like this

Share this post


Link to post
Share on other sites

Great project! How did you build your thrust controller? Is it some sort of motorized potentiometer? And the handle - that what is bothering me, I always wanted something like that, just don't know how, or where get it

Share this post


Link to post
Share on other sites

Posted (edited)

I think he said it was a fade controller out of a old video effects board. I did a quick google search and found that it's called a "T-bar controller".

You can buy them new on places like Digikey for ~$300 which is pretty expensive. It wouldn't be too difficult to make your own.

 

Take a look at this one for example.

tbar1.JPG

tbar2.JPG

 

It's just a long shaft potentiometer mounted to a bracket with a bushing for the potentiometer's axle, and finally the handle which is just a aluminum flat bar with a hole drilled and tapped for a screw or set screw, this allows the handle to rotate the axle.

 

Edit: If you want it motorized, just connect a gear motor to the potentiometer's axle and have the motor's controller read the value of the potentiometer and you basically have a servo motor.

 

Edited by Krewmember
2 people like this

Share this post


Link to post
Share on other sites

First off I don't have the attention-span to read all of that.

Secondly, Wow. Amazing. I'm going to reassess my life.

And Lastly. Good job on gathering the money and willpower to do that project.

Share this post


Link to post
Share on other sites

Posted (edited)

Couldn't have covered that better myself @Krewmember :D

I actually would like to motorize mine as well. I think I'm going to consider salvaging the tuner wheel from an old stereo and using cables and a pulley to drive the lever. I happen to have some nice little gear motors with slip clutches on them that ought to work well for driving it, but letting the mechanism slip so it can be adjusted by hand as well. At the very least I'll have min/max throttle buttons. I think the button on the tip of my joystick might serve as a "Kill Thrust" button, but I would like dedicated buttons for the task on the panel too.

I also like the way the lever's firmness is adjusted on the example you showed. The two screws that go into the plastic block tighten the compression on the plastic bushing, generating the lever's physical resistance. On mine, the PC board on the bottom is actually quite thick, and a screw tightens down on a "spring" made out of a routed region of the PC board. Tighten the screw, and the routed segment of PC board compresses harder against the bottom of a cam built into the shape of the lever. I think the picture you posted is a more robust system than mine. Mine has a really high quality potentiometer though, and the PC board based spring does seem to actually work though, so I can't complain. I only spent $10 and some shipping on that video effects board, and I got all those illuminated regengendable buttons for my DSKY, and that throttle, and the insanely valuable dot-matrix character displays I'll use in my ∆V carriage meter out of that purchase!

Hmm... Now that I think about it, I bet if I got the pulley mechanism just right, and the slip clutch on the motor provides just the right amount of friction, I bet I could remove the PC board form he bottom and let the motor/clutch mechanism, be 100% of the lever physical resistance, saving me a small amount of thickness. The lever is one of the thicker elements of my control panel, and I have to physically place it as far left as possible on my build, as it's current thickness will actually interfere with my keyboard tray that would sit immediately below the control panel and slide out. Hmm... Things to ponder and tinker with! :wink:

Edited by richfiles

Share this post


Link to post
Share on other sites

WHY!!! Why must every order include EVERY part needed, EXCEPT the ONE single thing you forgot...
Why does every order need a forgotten part! :huh:

Turns out I never considered soldering the decoder chips when I did my ebay order for the square pin female header sockets. They arrived in the mail (ordered 100x 40 pin header sockets... They ought to last! :D ), and the second I saw them I realized I goofed... No, they were perfect. I jsut faield to remember to order oanother item. For the "Time to:" and "Speed" displays, I only need a 3-to-8 decoder, which is a DIP chip. My 4-to-16 decoder chips, which are needed for the larger distance units displays, nis in a 24 pin SOIC surface mount package, and I have NO proto boards compatible with SOIC chips on hand. No problem... I'll just order some and... EVERYTHING from China. Nothing local, and it's all the SLOW Chinese shipping. Earliest I'll see them is middle of April or early May. I hate waiting! :mad: Anyway, I ordered them anyway, I need them. Even if I ordered from Adafruit, they'll still take long enough that the increased cost per unit doesn't really justify getting parts a week before the earliest China shipping date... I did replace my dying car, so I could probably afford to drive up to Minneapolis, but having bought a replacement car, by the time I got there, I'd not have enough to buy the overprices Schmart Boards from Micro Center that woudl let me proceed...

All in all, it's a game of hurry up and wait. ;.;

I decided against dead bug construction, considering I'm kinda keeping busy anyway. I'll just wait. Let this be a lesson on making shopping lists! :rolleyes:

1 person likes this

Share this post


Link to post
Share on other sites
14 minutes ago, richfiles said:

WHY!!! Why must every order include EVERY part needed, EXCEPT the ONE single thing you forgot...
Why does every order need a forgotten part! :huh:

...

I'll just order some and... EVERYTHING from China. Nothing local, and it's all the SLOW Chinese shipping. Earliest I'll see them is middle of April or early May.

I'm currently waiting over a month for a couple of I2C IO expanders myself, share your pain :mad: 

1 person likes this

Share this post


Link to post
Share on other sites
Quote

But the others wait in Casablanca, and wait...and wait...and wait.

 

Share this post


Link to post
Share on other sites

Posted (edited)

SOIC/TSSOP adapter boards showed up yesterday, just in time for my three day weekend. I tried assembling one, but I started REAL late, and I was just eying it off the data sheet pinout (no schematics or plans), and I kinda realized I wanted to change something after the fact... Eh... that's why I ordered a sheet of 20 boards... You just snap them off as you use them. I also have extra chips, and the one I have now isn't bad, just not configured the way I want it. I decided to keep consistency across all displays. The same binary number will always select the same symbol, on any display, and if a display has additional symbols, those will use higher binary values to select. It'll be a simple, consistent pattern I can use for all displays. I think I'll also have the display test character be selected in software after all**... I was gonna break out all the character selects to a single driver, and have that one line activate all of them, but I may as well keep it all consistent, and just so it in software.

I also need to remember to include driver transistors. I'm driving as many as 30 LED segments from a single line. I need moar than 20 mA to do that. :P
I may also have a shot at trying to get some work done on the analog meter mods and the light boxes. I realized the PERFECT material to use for assembling the light boxes. I have some double sided copper clad ultra thin PC board material. When I bought it, i thought it was just sheet copper... It's that thin. I can just it with a scissor, and solder the pieces together. I can even create the intricate inner light boxes to focus red, yellow and green LED light on the portions of the meter that must be a specific color, and I can even secure the LEDs to the lightbox by just soldering all the cathode leads tot he lightbox itself, and making it my ground.

So, hopefully more news this weekend! :D

Edited by richfiles
1 person likes this

Share this post


Link to post
Share on other sites

Posted (edited)

Change of plans on the test character... 

0.54%2014%20Segment%20LED%20yellow.jpg

With each segment drawing approximately 19-20 mA at full brightness, it turns out driving all 30 segments of the display for the test character... ehh... well, draws a few milliamps... About 570-580 mA per display pair. I think I've actually got them a hair too bright, so I may drop a few more ohms on each anode to fine tune the brightness and drop the current a bit more. Still, even if I bring it down to 15 mA per segment, or even less, that'd still be around 450 mA... The 2N3904/6 transistors I have on hand are only rated to 200 mA. Even at the full 19-20 mA, unmodified, the max number of segments on when NOT displaying the test character is 11 segments... vs 30 for the test character. 11 segments drawing 19 mA is 209 mA, almost within the spec as is! For that reason, I think I will switch back to the concept of having the test character be it's own line, and I'll probably just tie them all together and trigger it with either a relay or a power transistor. Even for the regular characters, a 74HC154 4-to-16 decoder chip still only drives 20 mA per output, so I'll have to configure a non-inverting buffer amplifier to drive the LEDs. Derp! Forgetting the important facts. I really wish it didn't need to be non-inverting. I have plenty of BJT type transistors on hand... but most circuits with BJTs invert. I might have to see if I have any mosfets.

Edited by richfiles
NOPE!!! I Zeldaed all weekend. Got nuthin' done. :P

Share this post


Link to post
Share on other sites

If it's a display that use modern bright LEDs and not stuff from the 80's they should be fully readable at 2mA. I use 4.7kOhm resistors for all my new LEDs and they are clearly visible as long as there isn't direct sunlight shining on them. If you can use 2mA you'll be looking at a total of only 60mA per display.

Share this post


Link to post
Share on other sites

I got them from All Electronics as surplus, so they may be older parts. I would have to look at actual date codes or the datasheet when I get home to be certain, but part of me wants to say late 1990s or early 2000s. A lot of my annunciator LEDs also are salvaged from equipment of similar period.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now