Tuesday, January 29, 2019

Great blog entry covering the erasable (core) memory from the Apollo Guidance Computer

Ken has written a great post in his blog covering the core memory used in the AGC. It covers the design , theory, and historical context in some detail. Well worth reading.

Monday, January 28, 2019

Working on cosmetics of the DSKY substitute


Keyboard assembly

The replacement honeycomb arrived from the 3D service bureau and I immediately began assembling the key plungers into place. They all fit just as with the original. I think that it is a good time to make and glue in the wedges that will constrain the key movement to be more vertical. The existing clearances around the plunger allow too much wobble.

My first trial for the wedges was to use some adhesive plastic sheets, but they were way too thin to provide much improvement. Too, they were difficult to get into position and force against the plunger sides.

I then looked into some heavier clear plastic material which does stabilize the plunger in its cell. The challenge here is how to glue it to the plunger (or to the face of the cell) without glue getting onto the other side and freezing the plunger in place. I will be fiddling with the process until I can work out a way that is safe but reliable.

Display assembly

I discovered that the EL wire segments can be fitted in place of the ten discrete LEDs that form each of three lines on the EL panel side of the DSKY. If I cut wire segments from my sample wire, route the inner electrodes through my light dam and solder them in parallel, I can run them all from the single driver module.

The EL wire has an inner wire, an insulating layer, and twin small corona wires on the outside, all of which is sandwiched in a vinyl tube. By cutting away the tube I can expose the wires. I would need to cut my EL wire into three sections, each the proper length to fit on the PCB. The inner wires stick out far enough to fit under the light dam.

I only have to wire together the three inner conductors, then hook it to one side of the driver. The six corona wires get wired together and those hook to the other side of the driver cable. I expect that I will need to use hot glue to position the EL segments, the wires and my connections.

The first problem I am having is finding a way to strip the outer insulation without breaking off the two corona wires. I needed to do some research as well as practice until I end up with three proper sized segments of EL wire with the interior wires tripped and ready for soldering. It was quite challenging to get the outer plastic to peel off without damaging the corona wires or the inner phosphor/insulation.

Once that was done, I had three segments the proper length. Wires were soldered to bridge them together, the result was tested with my driver before I epoxied them down to the PCB. Prior to the glue-down, I removed all the LEDs and resistors that previously formed the lines, since they appeared to be dotted lines instead of a continuous segment.

Testing three electroluminescent lines before epoxying
I picked up the acrylic panels that I will be decorating with text, various graphics and an undercoat of gray frosting. A test fit with the cover plates proved these were ready to be painted. I also need to paint the cover plates and the aluminum enclosure in the same gray paint. I have ordered paint to get ready for making the indicator and EL panels.

The only challenge to making the indicator panel text overlay is that the text must be in the correct position on the rectangle and it must be reversed so that I can adhere it to the underside of the acrylic pane. I used Inkscape to produce the images I wanted, suitably mirrored and created PDFs to print these on a laser printer on my special transfer paper.
Mirror image text needed to create dry rub transfer
For technical reasons, the Brother brand laser printer I own does not set the toner onto the paper strongly enough to work, a known issue when using their printers with the DecalPro fx system. I will use an HP printer at the CHM when I am there on Wednesday.

Wednesday, January 23, 2019

Testing light dams and EL wire for use with DSKY substitute


Light dams

The light dams were delivered today and fit well. They will block light from adjacent sections, sitting under the frosted plastic panels that have printed text and other markings. They are ready for use.
Light dam in place on right side (EL) panel
Light dams in place for left side (indicator) panel
Testing electroluminescent wire as DSKY line

I also received the test EL wire which I can use to create the three lit lines that separate the register display areas of the panel. The color and brightness looked acceptable. I will bend the wire to form the three lines, covering the portions of the wire that shouldn't be seen.

Test of EL wire as illuminated line
The supply for this wire is a small converter that takes 9-12V DC input, which I will supply from the 14V BPLUSSW switched power coming from the AGC. A zener diode is used to drop the voltage to 12, with an appropriate resistor isolating this from the rest of the AGC supply.

This adds a bit of mechanical complication for mounting and the need to form a Y on the incoming BPLUSSW wire to feed both the EL driver and the DSKY PCB. Given the superior appearance, I think it will be worth the effort.

Tuesday, January 22, 2019

Working on improved fidelity of lights on DSKY substitute


Light dams, alternative production

I originally designed the light dams which separate the illuminated sections of the indicator and electroluminescent panels to be produced by 3D printing. However, the price and turnaround times were just too large. I redesigned these to be laser cut from black acrylic, using the laser cutting service, which sharply reduced both expense and turnaround time - under $30 with rush production and priority mail delivery.

Converting discrete LEDs into solid lit line on EL panel

I implemented the lines that light up between the three register numbers on the EL panel using 10 small LEDs on the PCB. The problem is that the result is a dashed rather than continuous line. I am going to experiment with fresnel lenses as a possible way to make a more realistic line.

As a backup I am looking at electroluminescent wire which I could install in place of the LEDs. That would require an inverter to produce the high voltage AC needed to illuminate the wire, and a method of switching it on and off based on the 14V switched AGC power.

I ordered a kit from CoolNeon that includes a power supply set to run on 9-12V, thus a simple zener diode from the switched AGC power supply (14V) will turn on the lines as long as the AGC is on and not in standby.

Converting two sides of minus sign to a continuous line

I had a similar problem with the signs. These were built with four LEDs arranged in a cross pattern, so that with the two side ones lit we see a minus sign and with all four illuminated a plus is seen. However, they are really four points while the real display has a continuous horizontal line for the minus portion of the sign.

I lasercut a light dam, with a line for the minus that bridged the two side LEDs. I hoped that with a diffuser on top, the minus sign would appear to be more like the real DSKY.
Shaping the light of the plus.minus sign LEDs
My first experiment put some diffuser paper over the light dam for the signs. I was fully satisfied with the improvement brought by this combination. I will glue the paper down to the light dam and then mount that dam on the PCB.
Light dam plus diffuser paper to blend minus sign line across full width
The second experiment was targeted at the row of LEDs that should appear as a solid line to the user, but are instead discrete spots of light when viewed directly. I tried the diffuser paper, but that didn't improve things much.

Next, I experimented with some inexpensive fresnel lens to see if I can get some stretching of the light between LEDs. As you can see from the image below, I was able to get some evening out of the light, but this is not a clear win.

Experimental 'smearing' of the LED output with fresnel lens sections
I may or may not continue working the fresnel lens, but there is still the electroluminescent wire I have on order that could provide an improved illuminated line with less work than cutting up and fitting bits of fresnel lens.


I came across an advertisement for a Kenbak 1 replica and decided to build the kit. This, like many such kits today, is an evocative rather than a literal replica. It looks similar but is smaller and mainly aims to recreate the experience of operating the front panel and running code. It joins my PiDP-8, Altairduino and similar such evocative replicas. In a sense, my DSKY substitute is also an evocative replica.

The kit comes with a small 3D printed case, a printed front panel, a PCB that attaches behind the front panel and all the components. It was well made and soldered together cleanly and easily. It makes use of an Atmel processor on the PCB rather than using an Arduino board like many other e-replicas.

The only problem I had upon checkout was with the tinyRTC module that was included with the kit. Something was defective on that board, causing it to fail to properly provide the real time clock or the nonvolatile memory. A real Kenbak did not have either, so this would have been an add-on aftermarket feature.

After plenty of debugging, I was certain that I had connectivity through to the chips on the TinyRTC board but it was giving errors when I snooped the I2C link it used. I bought a replacement RTC module from Amazon and quickly had the full functionality of the kit. www.adwaterandstir.com has the details of the uKenbak 1 kit, for those interested.

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.