Thursday, January 17, 2019

DSKY substitute laser cutting and 3D printing sent to manufacturing


Keyboard construction

I drilled holes in the aluminum case and test fitted the keyboard stack for both orientation and height. The top of the honeycomb sidewalls touch the underside of the faceplate and they can be centered under the opening. I had previously tested the adhesive to install the keycaps on the plungers, using acrylic glue.

The only process uncertainty remaining is the way I will install shims in the honeycomb cells. This has to be done after I have snapped the plungers into place in the honeycomb since I can't insert the plungers unless the excess clearance exists. The shims minimize side to side rocking of the plungers to make the key movement smooth and accurate.

Display construction

I drilled holes in the aluminum case to test fit the display board for both orientation and height. The board fits well. I can't bolt it down yet because I have to build connectors and cable exits on the box, since those have to be connected to this PCB from the underneath.

The cover plates arrived today from the 3D printed service. These hold a frosted plastic panel atop the display board, as well as providing a more realistic appearance to the DSKY substitute. I tested their fit inside the aluminum case and made a slight modification required for fit.

The cover plates are a three piece construction, with the frosted plastic enclosed inside the cover which consists of a top plate and a bottom flat plate which get glued together. I have to trim one edge of the bottom plate and of course I have to wait for the frosted plates to be done before gluing this up.

Top plate covers, not yet glued together, awaiting frosted plate
The top plates are slightly distorted, one long side of the rectangular shape is bent inwards, but the frosted plate will force this out to shape.

Frosted plate and other light cosmetics

I have to build two plastic plates, one that simulates the electroluminescent display from a real DSKY and the other that simulates the 14 incandescent lamps of the indicator panel. These will be built of thin acrylic, with custom transfers and spray paint on the underside to complete the look.

The indicator panel is the easier of the two - it is simply divided into two columns of seven rows each, with white LEDs illuminating the left column and yellow LEDs for the right side. I need to install some light dams, material that will keep light from one of the fourteen sections from spilling over to adjacent areas. I am still designing this; it may be 3D printed plastic or I can go with foams or other materials I can shape and install myself.
Plastic light dam to separate lights on the indicator panel
The EL panel requires text and other features to be installed, plus light dams for all the areas that are illuminated by individual LEDs. What complicates this is the use of 21 seven-segment displays as their faces are up close to the panel while the individual LEDs are recessed down on the PCB.

I decided that I need some diffusers to even out the light from individual LEDs - for example the illuminated lines that separate the three register areas of the EL display. Another issue is the plus/minus sign, where I need the minus to be a continuous bar with the two spots above and below that convert it to a plus, but I formed it with just four discrete LEDs.

The diffuser has to channel the light from the two minus sign LEDs to form a continuous bar. I believe that I can build a sandwich of a black laser cut form with a thin frosted plastic on top, which will blur the light sufficiently to meet my artistic goal. This in turn is recessed below the top panel with its own diffusing coating.

A similar diffuser is needed for the rectangular lighted areas under the text for Noun, Verb, Program and Comp Acty, which should be as smooth and even as possible from a small number of point source LEDs. These will also need light dams to keep the illumination from any one rectangle from spilling over to the other areas.

Any remaining exposed areas of the PCB might be covered with flat black paper. The combination of the diffusers, black paper and other treatments underneath should render the best appearance up at the plastic panel.

I whipped up the light dams using Fusion 360 and submitted the designs to my 3D printing service provider. I then designed the diffuser plastic that will clean up the shape of the plus/minus sign, using
Inkscape, then submitted that to a lasercutting service provider.

Connector design and construction

The display board has all the external connections to the DSKY substitute - main 5V power, 31 input channels, 10 output channels, 'spacecraft' 28V power and switchable AGC 14V power. The connections on the underside of the board are set, based on the .100" spacing headers and barrel power connectors I built onto the PCB.

What needs to be determined is the way the wires run out of the aluminum case. I need openings to be cut, at a minimum. I believe it will be cleaner and more rugged to provide some form of connector in the wall of the case, thus allowing disconnect and connect of external cables as I move the DSKY substitute and hook it up to the AGC.

A related question is the placement of the opening or connectors on the case. Should the wires exit the bottom? If a side, which one? Using the bottom would allow the DSKY substitute to be fitted to a larger control panel structure for realism, but adds a need for rubber feet or other standoffs when the unit is sitting flat on a table in order to allow the cables to exit underneath.

Saturday, January 12, 2019

Assembling keyboard for DSKY substitute, resolving issues, and more checking on the memory module


Assembling plungers, springs and testing

After the batch of 19 printed plungers arrived, I put them all together and screwed together the switch stack. The plungers ride up and down in slots on the sidewalls of the honeycomb piece, giving them 1/4" travel. Coil springs sit inside the plunger and extend to the top of pushbuttons that are mounted on the printed circuit board. The honeycomb with its plungers and springs is screwed to the PCB and standoff legs to fit the stack at the proper height inside the DSKY enclosure.

The plungers had to be snapped into the honeycomb, which is a difficult procedure that is right on the edge of impossible, involving inserting the plungers at an angle and pressuring the sidewalls to allow the slider tang on the plunger to slip into a sidewall slot.

I did a test fit with the stack in the enclosure, the faceplate installed and keycaps placed on top of the plungers. It looks and works fairly well, but some issues still need to be addressed to finalize operation. These are excessive sidewall clearance and control of the spring position inside the stack.

Test fit, loose keycaps on switch stack
The clearance between the plungers and the honeycomb sidewalls is a bit too large, allowing the plunger to wobble as it rides up and down. This was essential to allow the plungers to be brute force installed in the honeycomb, but affects the operation of the plunger.

To fix this, I will be adding shims inside the gap between sidewall and plunger. About two thicknesses of construction paper in each gap led to excellent stability of the plunger as it moves up and down.

I need to work out a process that keeps adhesive only on one side of the shim while I insert it and press it sideways during the set time. I will experiment until I am confident in the method.

The coil springs are only about 1/4" diameter, considerably less than the rectangular solid cutout inside the plunger. This allows the spring to migrate to the sides of the cutout, thereby cocking the face of the plunger. In some cases, the spring can pop loose and rotate sideways so that it is jamming the operation.
Recess milled to hold coil spring in position
To resolve this, I am making two modifications to the stack. Marc milled circular depressions in the underside of the plunger to act as a cup, holding one end of the spring so that it can't shift from the center of the plunger to the sides. I will cut very short sections of a plastic rod and glue them to the top of the pushbottom, keeping the bottom of the coil spring from shifting off the face of the button.

Excessive sidewall gaps and spring shifting are visible here
Catastrophe and recovery

During the process of milling the cup inside the plungers, a freak accident occurred. The honeycomb fell off a table and partially shattered on the floor. The hard resin used to print the honeycomb is a bit brittle. It is not too bad, since I can bend it to force plungers into place, but it is brittle enough when dropped four feet to a hard lab floor.

This is a setback, since the nature of the broken areas of the honeycomb make repair infeasible. I need to order a new part, which adds weeks of delay and burns a bit more money. The part was immediately ordered and with luck I will have it before the end of the month.


We scheduled a visit to the Computer History Museum where we were given access to two artifacts that were listed in the records as a memory module and a cover. These were made available in the research facility, where we examined them with the hope of testing continuity of the pins as a cross check against the results with our defective module.

Alas, another small setback. The cover was indeed the proper part that fits onto the memory module, but the module itself was a partial assembly. It had the RCA built core stack with its foam potting, but the diode plate was not installed on the top so that this was not complete enough to test electrically.

More seriously, it was a block I memory module, not the block II type that we have. Block I was only 1K words in capacity and had a different configuration of pins across the base. The pins on the bottom would not have mated with a block II AGC even if the module were complete and working.

Since it was a different and incomplete module, we couldn't do any useful tests for comparison with our block II module. However, we are requesting access to the module that is on the wall, on display, in the main museum facility. We will have to remove it from the AGC and test it while the exhibition is closed to the public, but that is merely an inconvenience not a serious roadblock.

Tuesday, January 1, 2019

Planning out keyboard stack installation in DSKY substitute; work on repairing AGC memory module


Keyboard installation

I measured out the required height of the spacers to place the top of the honeycomb just under the faceplate - it must be 55/64" or almost 22mm. I will use a 20mm spacer and a washer or two to ensure that the honeycomb meets the faceplate. I ordered a supply of spacers, screws and nuts to do the assembly.

I still must wait to receive the 19 new plungers, install them in the honeycomb and put the stack together with coil springs inside. This will take almost two weeks due to the production timing at the 3D printing service I used.

The plan is to assemble the stack with the spacers, nuts on top and washers just under the PCB. When it is at the proper height, I will position in to align with the faceplate openings and wedge the board in place.

Checking heights of PCBs inside enclosure
This allows me to mark the bottoms of the spacers on the aluminum case. I will drill an oversize hole in the center of each spacer location, to allow me to screw the stack in place from the back of the DSKY enclosure.

I must complete the cable that will carry the power and signals between the keyboard stack and the display PCB. It has to be hooked to the stack before I screw it down in place.

After screwing down the stack and verifying the location under the faceplate. I will temporarily install the faceplate to use as a guide to glue down my 19 keycaps. Epoxy will be used to hold the cap to the plungers, with some small paper shims helping to center each keycap while the glue sets.


The Apollo Guidance Computer has a 2048 word erasable (RAM) memory that is contained in module B12. On our module, which is potted or sealed, we believe that one of the inhibit lines is broken somewhere inside. We determined this with a continuity test.

In the best case, we will repair the break and make use of the original module when running the AGC. This would require some very careful surgery, minimizing the risk of further damage and limiting the scope of any repair to the minimum area possible.

We hoped to find the broken lead using a very advanced micron resolution CAT scanner designed for connectors, which would have given us 3D images which could definitively identify the exact location of the break in the wire.

Unfortunately, the scanner we wanted to use has a maximum volume for samples which is smaller than the end of the B12 module. We had another scanner lined up here in Silicon Valley but it has the same restrictions.  A set of ordinary X-rays were taken but since they are both flat and low resolution, we couldn't spot the break.

An attempt to use Time Domain Reflectometry (TDR) was also inconclusive. TDR sends sharp but low power pulses down a wire. Any place where the impedance is not perfectly matched will impact the shape seen at the origin. An open circuit will cause a reflection to come back. The time between pulse transmission and reception of the reflection tells you the round trip travel time down the wire.

Our real world module has several places where impedance changes, complicating the use of TDR. Wire is connected to the input pin, producing one discontinuity. We are not sure how the small magnetic cores will affect the pulse, potentially producing some kind of distortion that might appear to be a reflection.

The first try with TDR gave a distance of approximately five inches, which is worrisome as it might be inside the core planes themselves where a repair would be extraordinarily harder than if it was in wire between the pins and the outside of the core planes.

At this point, we still don't have enough information to pin down the location and type of failure, nor can we plan a safe and minimal intervention to repair it.

We are working on a range of other solutions in case the module can't be repaired. More on these later, but first we will attempt to remove the metal cover over the module and see what is exposed and the exact potting we might be facing.

There is also the possibility, although slim, that the lack of connectivity is normal for these modules. We have arranged a chance to test a module at a local museum to cross check against our own.

Saturday, December 29, 2018

Keyboard testing completed, waiting on 3D printed parts before final assembly



I needed to experiment with illumination. All I have on hand are the green LEDs, but I installed two of them into one keyswitch position as a way of testing the light delivered to the underside of the keycap.

I was suspicious of the amount of light that can shine through the keycaps I received as a gift, but given the 0603 size I allocated for the twin LEDs for each key, I can't increase the light much. The actual LEDs to be installed provide twice the illumination of these that I temporarily soldered on.

The amount of light reaching the outer edges of the plunger was adequate, but none makes it to the center of the plunger where the keycap text opening will be placed. I need to think about any way I can get some illumination at the target location or these keycaps will not light up.

I also determined that the keycaps I was given are far, far too thick to pass light through the text shaped opening. It is possible I will have to make my own instead. Another option is to simply abandon the objective of backlighting keycaps. Unless I have a flash of inspiration, the backlighting will be dropped from my project.

I proceeded to load the firmware on the Arduino Nano, power up the board and test it out. I pressed each of the 19 keys, verifying the state of the 8 output lines for each such press:

  • Five of the outputs encode the key value
  • A sixth output tells the AGC that a key has been pressed (thus triggering an interrupt to run the PINBALL routine that handles user interaction)
  • A seventh line is active at the same time as the RSET key code is active on the first five lines
  • An eighth line is active when the PRO key is pressed, although this key does not send a keycode on the first five or report a press through the sixth output line. 
PRO is used for two purposes. First, it is pressed as a confirmation to the computer that the astronaut has approved some action that the computer is poised to accomplish. Second, if held for a relatively long time it commands the AGC to go into standby mode. 

The board had a minor problem which I corrected with a small rework, adding wire jumpers, otherwise it worked exactly to spec. This board is just waiting on the additional plungers to arrive from the 3D fab before I assemble it completely and mount it in place inside the aluminum DSKY case.

Mounting details

For both the keyboard and display PCBs, I have to plan the length of the standoffs needed to position the board at an appropriate height under the faceplate and other cover parts. These will then be attached to the bottom of the aluminum case through drilled holes and nylon screws will go through the PCB to the top of the standoff.

The holes in the case will be a bit larger than the screws to allow for some side to side and top to bottom shifting of each PCB, allowing me to fine tune the alignment. The faceplate also has a tiny bit of give around the bolts holding it to the rest of the case.

I expect to use a mix of plastic glue and epoxy to glue various parts of the panels together and to lock the coil springs onto the plungers.

Thursday, December 27, 2018

Plastic honeycomb arrived and test fit done with keyboard stack of DSKY substitute


Keyboard portion

My honeycomb part was finally on the truck ready for delivery today. I need to test fit the sample plunger into the honeycomb to ensure that the design is sound before I order the other 18 plungers. I can't insert the plunger without cutting out slots from the bottom of the honeycomb, except for the four end positions which might allow me to wrestle the plunger in.

At any case, after trying to get a plunger into the side as the part was produced, I discovered that the plunger can be snapped into any position. No need to cut the honeycomb, thus I get the target depth of movement I want to provide.

I tested the entire stack of PCB, coil spring, plunger, keycap and cover plate. It is important that the key press cleanly and return reliably. It is also important that I achieve the 1/4" travel and approximate resistance force to mimic the behavior of a real DSKY.

What I discovered were two issues. First, the pins that were soldered for the cable connector and for the Arduino Nano raise the honeycomb slightly; I need to relieve those portions of the honeycomb slightly to get a good solid fit. Second, the plunger doesn't come high enough in the faceplate opening; I want the surface of the keycap just below the level of the faceplate, but it is down too much.

To solve the problem with the plunger height, I have to add a sliver of material to the top of the plunger. I submitted the order for the 19 plungers at the new height, at the same time as the bottom and top covers for the display (see below).

I just need to fine-tune the coil spring - too light a resistance and it doesn't depress the pushbutton switch, too firm and it activates without the full 1/4" downward travel. I have some springs that seem to work reasonably, although I will need to test the switching action to be sure I don't need to tweak the spring type.

Three open issues with my keyboard design:

  1. I suspect a need to build additional supports under board to avoid cracking PCB from key presses.
  2. I believe light will leak around the outside of the keycap, since the plunger is translucent and the honeycomb walls are white. This should be minimized.
  3. It is possible that the LEDs and plunger won't deliver enough light through the text on the keycaps - the keycap is relatively thick and the plunger wasn't designed to focus light. 

Display portion

I swapped in 10K resistors for some of the white LEDs on the left side panel, which had been too bright with the 3K ohm resistors I had originally placed onto the board.The new values worked great, lowering the output of the white LEDs to perceptibly the same brightness as the yellow LEDs and the right hand side of the display.

The top of the display portion consists of two frosted plastic panels, containing text and other graphics, held in place by plastic covers. I did 3D modeling of the covers. These are built in two halves, which will be glued together with the frosted plastic panel inside. These were ordered from and will arrive within two weeks.

I need to get some clear acrylic 1/4" thick panels cut to size in order to begin adding the text, graphics and frosted color backing. I expect I will buy them from TAP Plastic which is nearby.

Wednesday, December 26, 2018

Assembling keyboard PCB for DSKY substitute


Keyboard mechanism

The PCB was delivered December 24th to Marc. I picked it up so I could work on it over the holidays,  before we all get back together.  Boards provided by to support the project.

Top of blank PCB
Underside of PCB
The translucent plunger part also arrived on the 24th. It looks perfect, but I can't verify the fit or the light dispersion characteristics until I receive the honeycomb part and build the PCB. Actually, I only expected translucent but this is closer to transparent.

Translucent plunger
I am also tracking the honeycomb plastic part from Shapeways, which is listed as due for delivery on December 26th. Since it was to be transferred by UPS to the USPS as part of their 'mail innovations' program, I suspected it is bottom rung priority for the post office and may not make it on that date.

Tracking the package on the 26th shows that UPS has not even physically handed it over to the USPS today, in spite of their misleading status message claiming that it had been. We shall see when it actually arrives.

The switches were soldered onto the board first. Next would be the LEDs and limiting resistors, allowing me to judge the light intensity through the plunger, although I don't have the actual components on hand yet. I could install the I/O extender chip and connectors while I wait.
Top of board, only missing LEDs and limiting resistors
Bottom of board is complete
Plunger atop a switch, but without coil spring that sits in between

Keycap not in correct place and honeycomb still missing, but cap across a plunger

Thursday, December 20, 2018

Progress completing the DSKY substitute to use with Apollo Guidance Computer


Keyboard mechanism components

My keyboard mechanism consists of four parts - a printed circuit board holding the 19 pushbutton switches with LED illumination, a honeycomb, translucent plungers that ride inside the honeycomb cells, an keycaps to fit over the plungers.

The plant has just completed fabrication of the printed circuit board for my project. It should be shipped soon. I have the pushbutton switches and most other parts on hand to allow me to finish its construction soon after it arrives. is a sponsor of our project and has produced and shipped this board for free.

The honeycomb was printed by Shapeways and is currently being shipped to me. Similarly, 3DHubs has finished printing the plunger which should arrive here on Sunday.

I have some modifications to make to the honeycomb to allow me to install the plungers, after which I can do a test fit of the mechanism. Full testing will require completion of the PCB. Overall I should be testing by early January.

This new PCB is supported by an Arduino Nano that will hang underneath. This PCB and the display PCB previously built are connected by a ribbon connector.

Illuminated panel designs

My display PCB has LEDs and 7-segment displays that are arranged to look like the real DSKY. I need to build a plastic panel which will be frosted and contain text legends that match the DSKY. These help diffuse the multiple LEDs on the PCB to produce a more even glow as well as holding the text legends.
Raytheon made DSKY
I intend to build this up in layers using a similar technique to that I used in my replica IBM 1130 light panel. The surface of the plastic panel must be matte. The legends and frosting will be applied to the underneath.

Legends are created using a laser printer on special paper then converted to run-on lettering. Once I create the images in the appropriate font and size, they are flipped to a mirror image. The converted output consists of text that is on a temporary plastic film carrier, with adhesive applied to the text. Rubbing this on transfers only the letters themselves.

Once these are on so they can be viewed from the top of the panel through the plastic, a thin layer of paint will be misted over the rear of the panel to create the proper frosting effect. The color used varies between the left and right side panels.

The left panel has white frosting. It will be illuminated from underneath by white LEDs for the leftmost column of cautions and by yellow LEDs under the rightmost column of warnings.

The right panel has white dots applied at the same time as the text legends. These are the places where the cathode connections are made on the real electroluminescent panels used by Raytheon. Next, a mask is placed over the rear of the panel and some paint is sprayed to form a rectangle around the legends VERB, NOUN and PROG. Finally, a gray paint is misted over the panel rear to form the frosting.

panel cover designs

The plastic panels are held just above the faceplate of the real DSKY by metal holders. I will design and 3D print parts to accomplish the same role. These will also have to go out for printing to 3DHub. Those plastic parts and the aluminum case I already own need to be sprayed with the military gray color of the real DSKY.
Cross section from side of the cover to hold plastic panel to faceplate