Jump to content

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


Mulbin

Recommended Posts

Wow....Just went thru this whole thread again....AWESOME work by everyone.

I must say, I AM kind of surprised no one has popped up with a simpit or control panel molded out of fiberglass... While I DO love the retro look, reusing old salvage parts, and lots of hard switches and indicators, it would be nice to see someone add some curved fiberglass panels and touchscreens into the mix as well... :D .... (I'm also still waiting to see if anybody is ever going to try designing some new Telemachus interfaces... :) )

Link to comment
Share on other sites

In the beginning of the Kuran program there was far advanced plans to modernize the old Kerpollo concept and replace all mechanical switches and gauges with touch panels.

Fortunately a bright young engineer came up with a new concept called "simulation and testing" which immediately seemed quite useful for replacing the old random trial and error method from Kerpollo. Tests in a simulator showed that touch screens were impossible to use wearing thick spacesuit gloves and just as impossible using spacesuit boots. Another problem was that every time the guidance computer crashed and caused a green screen, all the instrumentation was lost.

It was therefore decided that old school gadgets such as rudder pedals, joystick controls, mechanical switches and even analog gauges had practical applications in the near future of space exploration. Of course a special touch control only mockup was presented to politicians and press in order not to make the taxpaying part of kerbalkind disappointed. "For most kerbals, design IS ore important than functionality", as Steve Kerman, CEO of Banana Inc., always used to say.:cool:

Edited by Antipaten
Link to comment
Share on other sites

Oh man... I have my Apple //c keyboard I planned to integrate into my controller... but this...

https://www.massdrop.com/buy/danger-zone-sa-keycap-set

MD-11125_20150916130744_6d23214a9aa41a70.jpg?auto=for  mat&fit=crop&w=1024&dpr=1

MD-11125_20150914170535_71f3bec81fc9a4c8.png?auto=for  mat&fit=crop&w=761&dpr=1

Is it POSSIBLE for me to say no to these keycaps?!?! They fit standard Cherry MX/MX clone mechanical switches. The text style is modeled after the engraved text style used on many aviation instrument panels. The coolness is OFF THE SCALES!

Link to comment
Share on other sites

The text style is modeled after the engraved text style used on many aviation instrument panels. The coolness is OFF THE SCALES!

https://youtu.be/YRXgFu3RpYk?t=5m18s

You mean just a plain Futura font engraved or silk-screened on a dark gray (or bluish gray, in case of Boeing) background? ;)

I do support the notion of having stick-and-rudder controls in lieu of touch panels, although the actual instrumentation would be more screens, less gauges.

Link to comment
Share on other sites

They use an in house font called "Gorton Modified"... I don't think they have a digital version available. I think it's strictly an in house tooling thing. It's based off of a plotter/engraver typeface that's been in use since around the 50s. I think it's a closer match to the typeface engraved on a lot of US military equipment (aviation and non aviation alike) or on some other types of vintage equipment. The A is pretty close, but the M is off, for example. It still has a great retro look that I am loving! :cool:

Also, those are double shot key caps. No engraving or silk-screening, or dye-sublimation. The text and symbols are molded plastic, embedded in the key mold.

**EDIT**

I just realized the image above is a "render"... The person who made it made it after the item went up... This was what was there before.

MD-11125_20150914170534_fe66cbb2b124e9b6.png?auto=format&fit=crop&w=761&dpr=1

Alpha text style actually matches the rest of the keys in that image.

Edited by richfiles
Link to comment
Share on other sites

Nice!.... I agree...I see both sides... I am old enough myself to appreciate analog and actual hardware...

However, someone better clue in SpaceX, then:

http://mashable.com/2015/09/11/spacex-crew-dragon/

Plus, I was just thinking it would be nice to see a "sci-fi" version simpit...

That's just the mockup that SpaceX use for PR. The real ones will have Apollo type Honeywell switches. :D

Link to comment
Share on other sites

  • 1 month later...

Ugh... Custom keyboards are expeeeeeensive... :confused:

I'm too broke now to move forward with my FDAI driver redesign, nor have I replaced my bad LEDs yet... That, and Fallout 4 is also not going to be missed... I may not even have this thing RUNNING till sometime next year, not for lack of drive, but lack of parts funding! :( Also possibly copious amounts of Wasteland Wanderingâ„¢ :sticktongue:

That being said... Yeah... fully custom keyboards are expensive. This is what I'll have, once all the parts arrive... By February... It's a custom 75% layout, with one additional column added to the right hand side. It uses the Danger Zone key cap set, with Gateron MX compatible Blue mechanical tactile clicky switches. The plate will be anodized blue aluminum, and will be mounted to a wood frame using brass screws. Bottom of the frame will probably be either a steel or brass plate for both weight and strength. Don't need the keyboard sliding around. I haven't decided if the ☮ key will be a mute button (PEACE and quiet), or if I'll use it as a dead key or modifier key for entering non standard characters. UP and DOWN are volume. The ⦿ key will be my screen grab key. D★Z will probably be a generic function key unless I can come up with another use. On Macs, that EJECT key will actually eject media. I've been talking with a guys who is working on a keyboard that magnetically splits. They have an interesting locking mechanism, and I am going to try to either buy one, or machine it at the shop I work at, with the goal of making a magnetically detachable number pad for this thing. I've been trying to work out the geometry and mechanics for a magnetically flipped side cap to cover the pogo pin contacts and the magnets and hardened steel pin inset holes. On the number pad, I want to see if I can mount the hardened steel pins on VERY light springs that will retract the pins when not magnetically engaged, but will allow them to extend and engage into the main keyboard when they are magnetically drawn. If my mechanism works, It'll make a VERY satisfying snap whenever the keyboard sections lock together! :cool:

Or, I might get lazy and just have the number pad on a cable? Who knows. I could get lazy. As to the price... I WAY over spent on add-on packs to this key set to get nearly every unique key the set offered. I took a $65 key cap set and made it... more... MUCH more. Lets just stop at saying I spent more on keys that are NOT part of the base set! :0.0: The custom aluminum keyswitch plate was $50, and the actual switches were about $30. Controller will either be salvaged from an actual keyboard, or it will be a Teensy, which I already have.

Keyboard75%25+1_DangerZone.png

So... now that we ALL know why I am BROKE, and stalled with funding my Kerbal controller, on to what I NEED to DO to actually proceed...

My first issue was the garbage green LED seven-segment displays I got. Chinese TRASH! In the end, the failure rate passed 50%... I am serious... MORE than half of the units had defects! I see that the MAX7219 boards have a 10K resistor installed for the current set, which basically sets the current at maximum. I have NO idea if the high current damaged the green LEDs (as the failures happened over time), or if the LEDs were just poorly manufactured trash. The fact is, that the datasheet of the LEDs specifically state that when multiplexed, they should be able to handle almost double the current being driven to them!

I'm tempted to just buy some quality green LED displays from Digikey, but I will l almost CERTAINLY have to manually wire them to the display boards, as the pinouts won't match the Chinese parts. 4 digit displays are not as common as they ought to be... Also, the Chinese displays are an odd size... 0.39 inches. Actually, i just suspect they are really 1 cm displays. The ones typically carried by Digikey are either smaller or larger than that, but I don't think the pinouts match either. Regardless of how much of a pain wiring them will be, they cost like 3-4x more than the Chinese ones, and after my little keyboard insanity... Nope! I will probably not have spare spending cash till next YEAR, unless I get some much needed unexpected income. I could consider giving the Chinese LEDs a shot again, but I've burned out my trust in that source... The fact that almost ALL of the MAX7219 display modules ship with red LEDs is also telling for me. Why are green LEDs so scarce on ebay right now? I can buy red without even trying, and there are even blue and white ones if you look, but green is next to non-existent. Green is one of the OLD LED colors. Green should be both cheap and easy to manufacture... So why the scarcity? Unless there is an actual ongoing supply/quality problem, I simply can not understand why greens would be so non-existent on the Hong Kong ebay train! This simply tells me... AVOID Chinese green LED displays like the plague! Their rarity tells me there is a problem. :mad:

The second major issue... and it is major... Is that I keep having trouble with my current DAC design. It puts 100% of the workload on the Arduino to generate all 10 of the sine waves required, all at 400 Hz, with realtime waveform generation. Some basic math tells me this is a gargantuan task. I need 10 sine waves. I can do MOST of the work using lookup tables, but I still need to calculate the offsets of yaw, pitch, and roll (by adding 120° and 240° to each of the three values) and looking up the attenuation values for each of the 9 results from a lookup table, for each frame, assuming 20-60 frames/second. I need to then multiply the reference sine wave (which can also be generated by lookup table) with the attenuation values (9 multiplications), and send the reference and the 9 results of multiplications to the DACs, which requires 10 I2C transmits, with a digital out changed on each update. These multiplications happen at the sampling rate of the sine wave, not the frame updates. I only update the multiplication values with each frame update.

If I need even 256 steps in my sine wave cycle (that's a low resolution, but It's my attenuation resolution that defines the angle of the navball, and temporal resolution would be somewhat smoothed out by filtering), then the math works out as follows:

At 400 Hz, if I have only 256 "slices" of the sine wave over one cycle, and 10 sine waves to update, I have to write the I2C bus 1024000 times EVERY SECOND... I... Is that even possible? I am fairly certain this exceeds the maximum data rate for I2C. There appear to be 4 speed standards: 100 kbit/s, 400 kbit/s, 1 mbit/s, and 3.2 Mbit/s... Even the fastest speed wouldn't handle the bandwidth of just 8 bits sent at that rate. If I could get the resolution out of the PWM to do it, it might work, but the PWM resolution isn't even high enough for a whole degree of ball rotation per step! Ouch! That's one jittery navball there! :huh:

I may reuse my DAC board for meter movement, if I can mod the amps to drive DC (they are audio amps, and can only drive AC, but I think that is only because they are AC coupled with a capacitor inline with the inputs and outputs). If I simply remove the amp boards, it will probably work fine. That could be a reasonable use for the I2C DACs. As it stands, the $40 or so dollars spent on my DAC board, and the time spent building it, are more or less wasted.

The solution is VERY simple and elegant, but also MUCH more expensive that my original plan, and more complex, hardware wise.

I need to use a totally different type of DAC. I need one with an adjustable voltage reference. All I need to do is generate a single sine wave with a hardware sine wave generator (can be done with either an analog circuit, or the $7-12 MAX038 chip). I just set it to produce a 400 Hz sine wave, and that's it. I need to feed that to a pair of op amps to create a differential pair (opposing cycle polarities), and use an analog switch to select either the un-inverted or the inverted sine wave to feed into the DAC's voltage reference.

This is:

1 hardware 400 Hz sine wave generator.

2 op-amps to create inverted and non inverted outputs.

20 analog switches (usually 4-8 come on one chip) to select whether to flip or not flip the reference sine wave.

10 DACs with adjustable voltage references. ***(I'll explain why this feature is necessary in a moment)

10 power amplifiers driving into transformers that drive the actual FDAI at the desired high voltages.

So, the adjustable voltage reference input is the real trick to making this work. If you have 0 attenuation, then the DAC is at maximum output, but the output will scale to the voltage reference, so as the sine wave rises and falls, the output matches. If the attenuation were at 100%, then the output would be at it's minimum, meaning no matter how hight he input sine wave rises and falls, it's scaled down to nothing. As the attenuation scales between 0-100%, it scales the actual sine wave that is being input on the voltage reference.

The DAC basically becomes a hardware attenuator! These are actually sometimes referred to as multiplying DACs. The problem, if I want one that has decent resolution, I may be spending quite a bit. Some of these are over $7-10 per chip, and I need 9! Add to that I need 20 analog switch chips (or 10 that toggle between an A/B input), though they are fortunately not that expensive. I still need the output stages, which is basically just a simple amplifier. I MIGHT be able to reuse the amplifiers I installed not he DAC board by desoldering them. I may need to drive a power op amp though, to push enough current into the final stage, the transformers, in order to have enough power to actually drive the FDAI. I have around a dozen LM675 power op-amps that I hope can do the trick. Those were not cheap, but I already have them. I may end up needing to hand wind my own transformers, just to keep myself on budget. I have no idea what it'd cost me for 9 transformers to bump the voltages driven by the low voltage DAC circuit, to the 70-115 volts** wanted by the FDAI.

I may also give up on a welded chassis... I just simply have not had TIME to get out to the farm to weld anything, nor do I currently have materials. Since my plan was to sandwich my printed consoles between plexiglass, to get the backlighting effect, most of my console will be plastic faced anyway. I can settle with painting wood grey, I guess.

 

** EDIT Only the reference is driven by 115 VAC. The synchros operate at 28 VAC, far easier to drive!

Edited by richfiles
Link to comment
Share on other sites

Well, richfiles, if you went into a site that sells double-shot keycaps expecting to get out of there unscratched, you were being naive... When you go "just looking around" into the demonic entrails of a site that sells those things, you can expect any or all of the following:

1- You are broke the moment you get into the site.

2- You will dance and jump like a child on a Christmas morning when you click "submit".

3- People will call you eccentric.

4- Your wife will say "what!?" several times. <<--- Be prepared for this :D

Link to comment
Share on other sites

The second major issue... and it is major... Is that I keep having trouble with my current DAC design. It puts 100% of the workload on the Arduino to generate all 10 of the sine waves required, all at 400 Hz, with realtime waveform generation. Some basic math tells me this is a gargantuan task. I need 10 sine waves. I can do MOST of the work using lookup tables, but I still need to calculate the offsets of yaw, pitch, and roll (by adding 120° and 240° to each of the three values) and looking up the attenuation values for each of the 9 results from a lookup table, for each frame, assuming 20-60 frames/second. I need to then multiply the reference sine wave (which can also be generated by lookup table) with the attenuation values (9 multiplications), and send the reference and the 9 results of multiplications to the DACs, which requires 10 I2C transmits, with a digital out changed on each update. These multiplications happen at the sampling rate of the sine wave, not the frame updates. I only update the multiplication values with each frame update.

That's a major task for a little 8-bit CPU at only 16MHz. I got an idea that I haven't tried but it could make things much easier on the CPU: Why not offload the CPU by going partly analog? If you output simple 400 Hz square wave you don't need any table lookups and no multiplication. Just output a 10 phase square wave and use an analog 400 Hz low pass filters to convert the signal to sine wave. If it works, all that Arduino would have to do is to wait for the timer instead of trying to do signal processing math with only a micro controller core.

Link to comment
Share on other sites

That's a major task for a little 8-bit CPU at only 16MHz. I got an idea that I haven't tried but it could make things much easier on the CPU: Why not offload the CPU by going partly analog? If you output simple 400 Hz square wave you don't need any table lookups and no multiplication. Just output a 10 phase square wave and use an analog 400 Hz low pass filters to convert the signal to sine wave. If it works, all that Arduino would have to do is to wait for the timer instead of trying to do signal processing math with only a micro controller core.

That should be no problem on the synchro end. You could build a 400Hz square (or triangle) generator and pass it through a first-order LPF to get your base sine wave.

If you want to go the lookup table route, you can keep everything in a *single* LUT to output the analog control voltages (which correspond to synchro orientation) only. If you switch these on and off (or invert-toggle them in an H bridge) at a 400Hz rate and put a low-pass filter at the output end, you're pretty much there.

The 400Hz is just needed to magnetize the synchro's coils. Its exact waveform is not really important since the coil inductance is the band-limiting factor.

Using five MCP4922 DACs you can spew out the entire frame in a single SPI write.

Link to comment
Share on other sites

4- Your wife will say "what!?" several times. <<--- Be prepared for this :D

Happily un-hitched, so nope to that last one... The other points... INDUBITABLY yes! :sticktongue:

That's a major task for a little 8-bit CPU at only 16MHz. I got an idea that I haven't tried but it could make things much easier on the CPU: Why not offload the CPU by going partly analog? If you output simple 400 Hz square wave you don't need any table lookups and no multiplication. Just output a 10 phase square wave and use an analog 400 Hz low pass filters to convert the signal to sine wave. If it works, all that Arduino would have to do is to wait for the timer instead of trying to do signal processing math with only a micro controller core.

Sadly, it doesn't work that way. There is no phase difference between the 10 sine waves. It's amplitude differences only.

Fortunately, I went through how to actually do it with an external reference sine wave source, as well as all the parts and stages needed to offload all sine wave generation and attenuation to physical hardware. All the Arduino has to do is determine the attenuation value for the 9 DACs, and it only needs to do that 20-60 times a second. That's snagging 9 lookup table values, after two additions (and a conditional subtraction, of 360, if the value equals or exceeds 360) performed on yaw, pitch, and roll. MUCh less work. All realtime waveform generation is removed from the Arduino. The arduino's job literally becomes "set the 'intensity' dial for 9 outputs, and is it flipped or not".

I also am aiming for the cleanest sine waves I can, because square waves have crazy harmonics... These nav balls can hum when in motion, or sometimes even when just idle, depending on... reasons? I'd rather deal with an occasional clean 400 Hz sine hum, than a square wave and all it's harmonics, trying to squeeze passed. A filter will definitely help that, but i don't even see a need to do any waveform generation in software. My circuit would end up being the functional equivalent of 9 "volume" knobs attached to one hardware sine wave generator. The DAC only serves as a "volume" control for the reference sine wave.

Edited by richfiles
Link to comment
Share on other sites

Using five MCP4922 DACs you can spew out the entire frame in a single SPI write.

You know what... THANK YOU!

Not for the method you suggested, but for finding THAT particular part. I don't know why, but for whatever dumb reason, when you search most manufacturer's websites for a multiplying or attenuating DAC, the search results tend to start with some spendy little buggers. Digikey has been no better. Manufacturers and distributors trying to push the high priced items first!? Inconceivable!!! :rolleyes:

Turns out that nice CHEAP DAC not only has two DACs in one package, but even MORE important... It has a proper voltage reference input that makes this DAC capable of multiplier/divider applications... In other words, you found me my sub $2 attenuator DAC!

THANKS! Shoot... I still have enough in the bank to actually ORDER that! BOO-YAH! :cool:

Some of the search results Digikey and Analog Devices were giving me had SINGLE DACs priced higher than FIVE of these chips price combined! Digikey has the 10-bit version priced at $1.83 per chip! PERFECT!

Hold on... **checks parts drawers for analog switches** WOOT! I have 90 pieces of 74HC4066 on hand (20 DIP, 70 in various SOP and SOIC SMT packages). The 74HC4066 is a quad bilateral switch. That means I'll need two switches per channel, with 9 channels, so 18 switches. 5 chips will get me that. 5 of the DACs you found, 5 of the chips I have on hand, and one MAX038 (or an analog sine generator). I can also get the chips in DIP packaging, which while not as elegant as surface mount, does let me very easily and quickly throw it together on a proto board, without needing to buy PC boards. I'm sure I have some op-amps on hand too to invert the reference to feed into the analog switches, so I can flip the wave polarity every half rotation of the virtual synchro, when the DAC goes down to 100% attenuation (0% signal passthrough).

That leave me with the only remaining thing being the power drivers. I think I might be able to use the LM675 power op-amps I already have on hand to do this. Because I don't have enough parts for differential pairs, I'll just have the sine wave sit above ground, with the zero crossing being 1/2 Vcc. That will let me have one output of each of the three signals (per axis) go to one end of a Y wound transformer's primary, with the center tap being referenced to ground. The secondary will have a floating center tap, and only send the three wires out tot he FDAI, stepped up sufficiently to drive it.

As I said, I'll probably wind my own transformers, because aviation transformers are expensive, despite being SMALLER, due to less material being required for higher frequencies (why aviation instrumentation uses 400 Hz AC instead of 60 or 50 Hz... Lighter power components).

SWEET! :D

That still leaves me without the green LED 7-segment displays though. I won't even use the GOOD displays I have left... I don't trust them. I had a LOT more "good" displays when I first got them...

That means I need to look at PROPER BRAND NAME green LED segment displays. Vishay makes a similarly sized (0.39 inch, 10 mm) 4 digit clock module in green that costs $2.579 in the quantities I'd need, while Avago makes a bigger (0.56 inch, 14.22 mm) 2 digit display for a very low $1.10 at the quantities I'd need. The bigger displays actually cost less than the smaller ones, but they are still about $52.80, and would require VASTLY more wiring. NONE of the displays are drop in compatible with the Chinese MAX7219 display module's sockets. Since nothing actually FITS... I've also considered getting a few different sizes of display. The price breaks would actually STILL allow me to get the discounted prices on BOTH sizes. I also think I want a large 0.8 inch display for the altimeter.

Needless to say, this is gonna be a LOT of work! Unfortunately, I don't think i can spend that right now...

I just learned one of my two job's won't have product orders till January... ;.; I MIGHT have some troubleshooting/equipment modification fork to hold me over, but that could be a couple hours to a couple days of work, depending on the nature of the problem. Not the same as production...

======

**EDIT**

Found some LED displays at Mouser. The DACs are a little more expensive, but I had a cart there sitting waiting for parts that are no longer backordered, and I was able to snag 4 digit green LEDs for only $42! They're PIN COMPATIBLE with my MAX7219 boards too! :D

Edited by richfiles
Link to comment
Share on other sites

The brand of LED segment displays you need to look out for is Kingbright. They make those 7-segment displays for years now, and also have character dot matrix displays (5x7 or 8x8) in different sizes.

As far as the MCP4922 goes, there are a few libraries which are compatible with the Arduino environment as well (including the Audio library), the DAC's command structure is pretty straightforward.

For the power stage you could probably get away with speaker driving ICs like the Philips TDA series since your transformer is a low-impedance, inductive load like a speaker. You could scavenge old telephony equipment for the matching transformers.

Link to comment
Share on other sites

i was screwing around with some of my parts, and I salvaged these switches.

I know I LOOOVE the clicky switches I have and wanted to use... but for this ONE THING, I think EVERYONE here can agree that this is FAR beyond necessary! :cool:

My "DSKY" won't necessarily be identical to the real deal, but I want to mimic the key layout. I'm considering using it's keys to handle game specific functions... Time Warp, physics warp, saving and loading, etc. It's 19 buttons to play with. I'll give them some reason to be!

On a side note, I have 67 MORE of these switches, in addition to the ones pictured. That'd make 3 more DSKY keypads, plus some spare switches. These things are COMPLETELY Re-Legendable, and backlit! Switch face is about 0.67 inch square (17 mm square). Even the LED is socketed, so I can change them out with green ones or white ones (to match the real deal, or to suit preference). The switches will also fit onto proto board. You'd have to slightly drill out the hole for the plastic alignment peg, but it doesn't take much, and every hole lines up with the standard hole spacing of proto board!

I also have a second switch type. I have 127 switches that are 2/3 the size of these, with the face being about 0.4 inch square (10 mm square).. They are also backlit and re-legendable.

A little something to do while I wait for my new FDAI controller parts. I ordered the new DACs... Holy green grazing kows! I spent only $13.80 on the DACs! The "cheaper" DACs ended up costing me $30, and I wasn't able to even really use them! All that's left for me to buy is the MAX038, or make an analog sine generator.

KerbalCM_DSKY2.jpg

Here is the switch disassembled.

KerbalCM_DSKYkey.jpg

And why throw up the requisite DSKY pic, when a video of this AMAZING replica will do! :sticktongue:

It may not be an original, but WOW, this thing is one of the closest imitations I've ever seen!

Link to comment
Share on other sites

Love the switches. If you ever find an address or eBay seller which is selling similar switches to those, you would make me a very happy camper.

These look to be salvaged from a video mixing board, and they're a good substitute for Honeywell/Korry type switches like you would find on a lot of airliners.

(And that DSKY is really awesome. The AGC is actually running the *real* Apollo software which is public domain.)

Link to comment
Share on other sites

I know, right! That DSKY replica is a dream! Running the real software makes it SO much better than just being a boring static display!

Anyway, I have 86 switches total. Only used 19 for my DSKY keyboard, so I have 67 switches remaining as spares that I am not using for anything in the foreseeable future. I also have switches 2/3 the size of these, but otherwise the same. I have 127 of those.

So, I soldered 19 of the switches into a proto board, and wired it up. The proto board had room for two complete DSKY keyboards, so I split it in half. I'll probably use a layer of dense foam and a metal backing plate to keep the module from flexing. The photos show the column wiring, the row wiring (with diodes), and the connector. It's fully functional as a keyboard now. keys are arranged in a 4x5 matrix. There are 4 rows and 5 columns. the 4 side buttons are each on the two outermost columns, and share a common row. The middle column only uses the first 3 rows. It takes 9 I/O lines to interface it, and you can use any standard keyboard matrix library to read it. I actually used a 33 volt zener diode for the matrix. Since a 5 volt circuit can NEVER reverse bias a zener above 33 volts, they effectively function as normal switching diodes. I used those, because I have over 9000 of them on a reel. Trying to use 'em up. 19 down! :P

I still have to wire up the LEDs. Have not decided if I will light up the whole keyboard as a simple backlight, or if I will have the lights be individually addressable. If I go the latter route, I could actually, in theory, drive them with one of my MAX7219 boards. That still leaves me with 5 usable digits, and 5 more individual segments that could be used as indicators, assuming I optimize the LED matrix.

Pardon the poor quality labels. I BADLY need to replace by 2006 era printer. The camera shot actually looks WAY better than it does in person! :huh:

I also did not measure the switch or the labels, so that's why some are not sized correctly... 5... I'm looking at you! 0, no slouching! :mad:

KerbalCM_DSKYlabels.jpg

KerbalCM_DSKYmatrix.jpg

And the real deal, for comparison.

dsky_lm.jpg

Edited by richfiles
Link to comment
Share on other sites

toasthall, A friend of mine convinced a buddy of his to buy a nice 3D printer... Hmm... Maybe I should go begging... :sticktongue:

This needs to get put up on Shapeways, I wonder though, would the aluminum ones on ebay or 3D printed ones be cheaper? Either way whatever works best! If a person has the 3D printer it's easers to just set it loose and print some, I would suppose. I plan to weld my own, styled after the Apollo capsules.

So, I got my latest batch of parts, the 74HC4066 I already had on hand, and the MCP4922 DACs came in the mail. I still need to create a sine generator. I can either buy a MAX038 off ebay, or construct a discrete component sine generator (as in with transistors and stuff). The Intersil ICL8038 (which the MAX038 was sort of a successor to) has a VERY detailed datasheet, complete with the transistor level schematic of the chip itself. It actually shows the 16 transistor sine converter that cleanly shapes a triangle wave into a very good quality sine wave, and triangle waves are very easy to make. I could also just try to do a basic sine generator... But wow, that transistor circuit actually looks kinda cool! :cool:

In all honesty... I haven't decided. There is a CLEAR market of knockoff MAX038 chips from China... We KNOW they are bootlegs, cause there's a never ending supply, and Maxim themselves discontinued it. The nuts... That is a popular chip! CHINA KNOWS THIS! :confused:

Anyway, I also ordered my LED 7-segment displays... and BOY did I make a serious failure to grasp their size... I ordered an 0.56 inch display, since I thought that'd offer far better visibility than the meager Chinese 0.36 inch displays (the ones I had crazy dead segment troubles with)... That is 35% bigger... I REALLY did not stop to consider just how much 35% would mean... Let me show what I mean...

Kerbal_DSKYdilemma.jpg

Thanks to my exquisite not-photoshoping skills, you can see the approximate height I had intended for the vertical section of my controller, measured between the two bottom yellow lines. For the sakes of, you know, seeing my monitors over the edge of this thing, I had originally planned on limiting the height to the height of my tallest instrument (the edgewise meters), plus any underlying structural framework. The top yellow line is how tall it'd need to be for a 5 row DSKY, a height I had not planned on going with, but I may have to. The issue, as you might be able to see in the image, is that considering enough room below the DSKY keys to accommodate a DSKY bezel and internal structures, and the fact that it can't sit flush with the level portion of the controller, as there will be a row of switches in front of it, I'm not left with very much room for these huge displays! I can only go 4 high before I hit the height limit I set for myself! Also, even hanging passed the end of the buttons, the LEDs are taking over 70% of the width of the DSKY... The real DSKY had a 50-50 split between the annunciator panel and the numeric readout panel. It was also 5 rows tall. I honestly REALLY wanted to at least have 6 rows... I mean, I'm not aiming for perfection here, just that overall "look", but it IS a huge deviation. There are STILL 2 more displays (8 digits each) left from what I had ordered! I had considered The Altimeter and Radar Altimeter as ideally placed over the round Vertical Velocity meter. Those are all related datasets, so I think that should work. I'm also aware that the MAX7219 chip only supports 8 chips on an SPI bus, while I'm already talking about using 10 (plus probably an 11th one to handle annunciator lights). Fortunately, the library allows the setup of multiple SPI busses. I may actually offload the numeric display controls to some Pro Minis, just simply to keep the main Arduino as responsive as possible. It'll have to read and write over the USB to the game, as well as distribute Yaw, Pitch, Roll, and any node data(once/if that gets implemented) over serial to the Arduino controlling my navball), read the various controls (toggles, joysticks, etc), and distribute data to any other secondary Arduinos. Since the numeric displays require you break your numbers into each digit and send each digit to each correct location, I figure I can speed up the responsiveness by passing on those numbers without processing, to let a second unit handle.

dsky_lmhndbk.gif

I was going to also go with 4 digit displays on a few of these meaning I'd want a gap between the two halves. That makes the 70% width of the LEDs even worse! I need annunciators to indicate these, and was going to model the labels as shown here, using rectangular indicator LEDs. Basically, instead of having indicators for Noun, Verb, Prog, etc, I'd have lights that show Ap, Pe, Time to Ap, Pe, SoI, and Node (One "Time" symbol, and 4 indicators after it), Incl (Inclination), Ecnt (Eccentricity)... I also wanted to have Semi-major and Minor Axis as well. Using the small LEDs, I was thinking of squeezing 7 rows in there, and having my indicators be the right side of the annunciator panel. That's clearly not happening with the larger displays. I barely have room for the displays as is! The only real option is to have my DSKY be significantly wider than just the keyboard. The annunciators will hang over the end of the left side of the keyboard, and the LED displays will hang over the right. There is simply no getting around it. Good news, is I can purpose a few of the DSKY keys to some of those time options. Time to Ap/Pe will toggle automatically, based on whichever is closest. There will be a "TIME Ap/Pe" key, a "TIME SoI" key, and a "TIME Node" key. I realize that any SoI transition is going to alter any orbital characteristics passed it. Modes will probably auto select to the nearest, but a key can manually bring up any one you want to see, toggling AP and Pe, and showing SoI or Node, if they exist. So that brings my button usage up to... SAVE, LOAD, QSAV, QLOD, WARP STOP, WARP -, TIME W+, PHYS W+, TIME Ap/Pe, TIME SoI, and TIME NODE... That's 11 of 19... Not bad usage, so far. 8 left to assign. I could free up 2 buttons by having a single button cycle through available "Time To" events. Then I'd just have a TIME TO button, and have 10 buttons left to assign. I do still need to be able to select Prograde and Retrograde, Normal and Anti-N, Radial and Anti-R, Target and Anti-T, Node and Anti-N, in order to indicate which vector I want the crosshairs on the navball to display (again, when/if that feature gets implemented). I wanted my ONE for certain rotary switch to select those... Actually 2 rotary switches, one 5 position, and one 2 position, the second to select Pro vs Retro/Anti, and the first to select the vector axis. I COULD use the rotary method, but I could also use the last 10 buttons for it too.

Actually... IDEAS!!! I need ideas for the 8-10 remaining buttons of the DSKY. Already, I can think of toggling Orbital/Surface/Target velocity. that brings me to 5/9 buttons left (based on if I have individual buttons for each mode, or cycle through modes with one button). Ugh!!! So many uncertainties! I'm asking for ideas, people!

KerbalDesk2.png

Now it seems I'm limited to 4, unless I raise the height of my controller top, or sink it lower into my desk. I'm already seeing issues with the pull out keyboard tray. I moved the staging and abort buttons to the far left, and to the back, to avoid accidental presses, but also to accommodate their depth. My diagram is definitely not to scale, but even as an estimate, I already need more thickness for the base level of the controller, to accommodate the throttle and joysticks. I may abandon the keyboard cutout, in order to have a less cramped control space, but I really like being able to put the keyboard tray away and still have the keyboard out. The joysticks only require 1 inch of depth, which is not unreasonable for a mechanical keyboard with retro spherical key caps. The level surface actually is supposed to have a sloping taper, so with the joysticks set back from the front, the front can indeed be less than 1 inch thick. The general idea is to have the control surface not be much higher than the typing surface, for maximum comfort while playing. the throttle is particularly bad, as it requires 3.1 inches of depth to mount, and I REALLY don't want to set it further back than the joysticks. Even if I remove the existing connector and directly solder leads to it, I still need 2.4 inches depth. The Abort and Stage buttons also require 2.3 inches of depth, so right on par with a modded throttle assembly.

There IS a possible option, but it significantly increases the complexity of my chassis. I was considering having a single sheet of aluminum bent at a local metal shop to form the profile of the entire thing. It'd have the keyboard cutouts cut out and folded down, so I could mount a [ shaped insert (not metal) so I could insert the keyboard without scratching it up on aluminum edges. A second aluminum plate would be bent to enclose the bottom. The front section could have the sides bent toward the opposing half and bolt together on the side. That'd make the front very strong. two small panels could then close off the sides on the back, with appropriate tabs bent over to allow mounting.

The depth solution offers two possibilities... A: I end the keyboard tray at the left joystick. It'd go no further than that, and the bottom of the console would extend further down. This could just mean a hole to accommodate the throttle and two big buttons, with a square "pan" bolted to enclose it. That's the easy solution, but it cuts my keyboard tray off. The other option would actually give me a little more room on the vertical section of the console, but it requires I either raise the top ere a bit, or drop the bottom a bit. Either way, option B would have me add a diagonal taper to the top controller surface, that thickens the front of the controller the further left you go. This would add the depth required for the big buttons and the throttle, but adds some weird geometry that I really don't care for.

I still have not actually figured out interfacing my VFD displays... I don't know... Maybe I'll to the Semi Minor/Major axes on the top level of my desk, on the VFDs. The primary use of the VFDs sitting above my monitors, would be to display more complex data... SoI name, Biome name (if possible), Lat and Long, Landed/Flight/Sub-Orbital/Orbit, etc. The fact that it can display 2 lines of text, 20 characters wide, and I have two is a big selling point for using them for data like that. I know Lat and Long, and SoI are transmitted, but I don't think Biomes are available in the packet. I have considered a separate controller for the VFDs, and the possibility of using Telemachus to get that data. It'd probably run both KSP serial IO and Telemachus, as I'm far more familiar with the latter. I have not decided if I will use both VFDs, or if I will retain one as a spare for the other, and just use one. They appear to both be new units, so I don't have concerns about their lifespan. Even if I play thousands of hours in KSP, I can dim them when not needed.

The side panel that's shown is basically going to be a Metal Box o' CRTsâ„¢. No, seriously... my ultra wide amber CRT will go there someday. I also have a tiny 3.5 inch color CRT, and I have a couple micro camcorder viewfinder CRTs. Literal Metal Box o' CRTsâ„¢! I wanna create just a cool... aesthetic add-on at some point. It'll be for a later date, and that's why it's separate. I won't actually NEED it. I'll have a small USB keyboard controller in it, nothing fancy, and set up some macros to trigger Chatterer sounds, display audio waveforms of the game on the viewfinder CRTs, maybe have random animations of some of the various Mission Control Kerbals that pop up on the color CRT (I think I'll mount it in portrait mode). I would LIKE to eventually devise a map mode of some sort on the wide amber CRT. The orbital graphic used in Raster Prop Monitor would be a good idea as to how it would display. Simple lines, circles, arcs, etc. No fancy graphics, just 2D, but usable. I think it'd be wise for me to, if I ever get to it, interface a USB or Ethernet jack, for Telemachus, and an SD card slot. The ROM would have a boot loader, bitmap fonts and symbols, drawing routines and the basic map program. I'd want to have it read a config file off the SD card, so it knows if you're running stock, RSS, Outer Planets Mod, Kerbol+, etc... Basically, I don't wanna hard code the actual solar system. That should be loaded from a memory card. As an earlier post mentions, I discovered that the word processor it comes from is FULLY documented, with the most detailed service manual I'd seen to date for a device like it. It uses a 12 MHz Hitachi 16-bit, extended instruction set successor to the venerable Z80 processor, and has a PGA chip driving a full bitmapped graphic array that automatically handles the display in hardware. The best comparison to it would be the original Macintosh black and white display. I'd need to learn how to program the thing, compile a new ROM onto a chip, and I could use it to display rudimentary orbital paths. That will not be soon. Thus, why it's not even designed to be included as a part of the main module. It's just an add-on, incase I ever get good enough to program just such a thing. I simply don't know coding that well, though. It might actually never happen...

I guess the big debate, is what now. do I suck it up and go at least 5 displays tall? Add height I didn't want to add and just deal with it? It looks like my navball may be sized just right to support a single display above or below it. This is a big deal, as Maneuver Node Delta V is one of the datasets transmitted, and it'd be nice to have velocity by the navball as well, since that IS where it is in KSP. If I add enough height to add a 5th row to the DSKY, I can then support 2 rows by the navball, and 3 rows by the Vertical Velocity gauge. That also bumps me back up to the 10 total displays that I actually have. The other nice bit about bumping up to 5 rows on the DSKY... Is that's how it really was configured! :)

Edited by richfiles
Link to comment
Share on other sites

Quick update. I went down to the local Radio Shack (yes, we still have one) to pick up some more protoboard... Nope!

They don't carry the large ones anymore, only the small ones. :mad:

That means I had two days off, nothing to do... and I didn't get anything done. I just "cleaned"... nothing done at all... :rolleyes:

I did go online and purchase a LOT of protoboards. Most of them are coming from that far off land we know of as China... Delivery dates are listed as between Nov 20 - Dec 28... Ouch! In light of that, I also ordered 2 large proto boards from a US seller. $5.50 for 2 boards, plus $3 shipping from the US... to the US... Or $20 for 62 boards of varying sizes. Needless to say, I don't think I'll be running out of boards any time soon once they all arrive! :confused:

Anyway, I should be able to start soldering up the display in about a week or so, as long as my US seller doesn't sit on their hands and procrastinate. I'm gonna make sure the post office gets authorized in advance to leave the package, as if it's on schedule, it'll be delivered an hour or two before I get off work on Saturday... I do NOT want another wasted weekend.

KerbalCM_DSKYLEDplacement.jpg

I did lay out two rows of my displays on a smaller protoboard, and came up with a very nice arrangement for the DSKY though. I have some salvaged LED indicator bars. These are large rectangular LEDs with either 2 or 4 individual LED dies inside. I think I'll print very small mask labels to go over them to actually mark APOAPSIS, PERIAPSIS, TIME TO:, Incl, ECNT. I have a super tiny 7 segment display (also green) that I think will make a perfect indicator for the "TIME TO:" function. I can display "A" for Apoapsis, "P" for Periapsis, "S" for SoI, and "n" for Maneuver node. I can cycle through those displays, and have the tiny LED indicate what I'm actually looking at. Adding these indicators will ad FURTHER height to my display, but at this point, I figure it's well worth it just to have it look nice. I think it'd only add about half an inch so (just over a cm). These indicators will mimic the "Noun", "Verb", "Prog" indicators on the original DSKY. I just really like how it looks! I can tuck the little LED display in, if I either order a 3 digit 7 segment display, or better, I can just shift the LED displays one digit over and physically cover the last digit under the edge of the panel. It's wasteful, but it'll work. Already measured it, and it'll work!. I will just not wire in the last cathode, and wire in the little LED display in it's place! That way I can ALSO drive it using the same MAX7219 that runs the other 7 digits of the time display. Turns out, with 7 digits, I can do the following time formats very easily:

[99y365d]

[9999d6h]

[999d 6h]

[99d6h59]

[9d 6h59] or [9d 6-59]

[6-59-59]

This allows long scale time displays up to 99 years and 365 days. I guess I could have a years only mode to cover longer times. I can dynamically change it to suit the scale of time needed. I suppose I could have a years and days mode. When I get to times less than one day, I can switch over to an H-MM-SS format for the final countdown*

*Admit... Europe started playing in your head, didn't it... If it didn't, it did now! :sticktongue:

So, here is a mockup of how I will try to arrange it. Like I said, to do it like this, I'll have to order a single 3 digit wide LED display. I'll delete this image once I have it actually built, and put up a post with the real deal. Gotta wait for those boards...

KerbalCM_DSKYmockupLED.jpg

Oh yeah... ECCN or ECNT for Eccentricity??? I can't decide! :confused:

Edited by richfiles
Link to comment
Share on other sites

KerbalCM_DSKY_LED_module.jpg

I got my PC boards in today, and soldered my DSKY display. It's all green LEDs, except for the half width rectangular bar LED next to the Periapsis indicator. It's red. I want it to light up on any flight where the Periapsis us negative (It will be labeled "LOW"). If the plugin outputs a state for sub orbital flight status... I might consider having it light for that too, to indicate that a trajectory will eventually bring the craft down. I could also have a table of minimum safe altitudes and have it light it if the Pe goes below the minimum safe altitude of the current SoI. Haven't exactly decided what the exact behavior will be used in the last display. If I order more of those long bar type LEDs, I could toggle display on it.

The bar LEDs will have text overlays over them to display the function of each display. Top will be APOAPSIS, followed by PERIAPSIS, LOW, TIME TO: followed by the small display generating A, P, S, or n for the time to mode, INCL, ECCN, and then the last display.

There will be three displays above and or below the vertical velocity meter. The top will always display altitude, and will essentially sit right of Apoapsis, but on a different "panel" segment than the DSKY. The DSKY will be bordered by some type of plate made to resemble the frame of the Apollo DSKY. The annunciator panel is not made yet, as I don't have the LEDs I need yet. I also need to assemble the controllers to the LED board. As of right now, it's just the LED displays. As crude as it will be, I'll just be desoldering the sockets from my MAX7219 boards, and wiring jumpers from board to LED, mounting them directly not he back of the LED board. I know it's not as elegant as some of the amazing custom displays I've seen here, but I ain't mass producing these, and all the wiring will be strait forward, as the LED modules I got share the pinout of the modules that came with the MAX7219 modules. It'll be direct pin for pin wiring, with no crossed wires. Nice and simple. Three changes I'll make though... I'll install a small electrolytic capacitor onto each board, considering the Chinese manufacturer cheaped out on these things. I will bypass the incorrectly designed reverse polarity input protection diode (they should be in series with ONLY the power into each individual board circuit, but the power pass through that connects power tot he next board passes THROUGH the diode... meaning each board loses 0.6 volts... After 8 boards (the limit of the library, without defining a second SPI bus), you'd be looking at losing 4.8 volts out of 5 volts by the end of the chain... half the boards wouldn't even be able to power on if wired the way the manufacturer suggests! Finally, I'll alter the current set resistor. It's wired to literally pump the maximum current the chip is rated at. Sure it makes for a bright display, but I don't want the display to over drive anything. I honestly don't know if the current output was too high for the Chinese LED modules... Could that be why so many burned out? I don't know. Despite the high current, it was multiplexed, and the datasheet claimed the display ought to have handled that level of current twice over... Basically, I don't know. I don't wanna take chances though, and I don't wanna risk my LED modules. Doesn't help that it NEVER OCCURRED TO ME to desolder the SIP sockets not he MAX7219 modules and solder them to the LED board, so everything would be socketed... I know what they say about hindsight, but hindsight in KSP means the pointy end is aimed the wrong way. :rolleyes:

Anyway, the display that sticks out tot he side, I have a plan for that... It'll either be covered by the panel, so the time display will only be 7 digits, or I may consider adding a few 16 segment alphanumeric displays to the right of Ap, Pe, and the last display, and desolder the right short display and add a round LED (with a center mask) to form a degree symbol... That'll separate the two 4 digit numbers better. As much as I hate adding ANOTHER digit in width, one digit is not a significant amount, and I like the idea of going full alphanumeric display to display my units. I intentionally left room not he PC board for the addition of those, should I choose to add them.

KerbalCM_DSKY_LED_KeypadMasked.jpg

Here is how it looks with the keypad, with the narrow arrangement where I mask the extended digit... I'll probably just add the extra digit anyway... I really like the idea of more informative displays. The ° symbol for inclination will be super simple. Take 1 green LED, file the top flat. paint an opaque dot in the center, and boom... Degree symbol! :confused: That will also serve as a good separator. It does mean pulling out the Hakko 808, to desolder that one LED module so i can slide it on down... I guess I gotta slide down the one short bar LED to align with the new spot as well. I'll figure it out. It's a good quality PCB, so if I ever do blow an LED module, I have no fear desoldering it and replacing it. The board will hold up. Full plated through hole proto board!

I just wish I'd have gotten one a bit bigger, I had to really... Puzzle together the top row. Didn't quite fit. It would have almost worked vertically, had I abandoned the possibility of doing the alphanumeric magnitude portion of the display (Almost, cause I'd have had to run a snippet of PC board not he right side to accommodate the last three or four pins of the offset displays). What I really needed was the next size up, but that was the size I could get ordered from the USA, and not have to wait nearly a month for Chinese shipments... Of course I still bought a stack of boards from China... i just bought a few local, to get them fast. :P

KerbalCM_DSKY_LED_KeypadHeight.jpg

The last issue, is the size. It'll work, i'm sure, but I was aiming for that meter not he left being the height definition of my panel. I wanted that to BE the defining trait. Now I'll have a bunch of dead space between he meters and the horizontal segment of the control panel. It means instead of being about 6-6.5 inches tall, it'll be about 7.5-8 inches tall. and extra 1-1.5 inch in height. Not terrible. Mostly an aesthetic thing, and not wanting this to close to the edge of my monitor. Regardless, I am looking forward to putting it to good use!

Link to comment
Share on other sites

  • 2 weeks 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...