Open Apollo Guidance Computer DSKY





Introduction: Open Apollo Guidance Computer DSKY

This is an entry in the
Arduino Contest 2017

This is an entry in the
Epilog Challenge 9

Proud to be a Featured Instructable since 1/10/18. Please Vote for us and give us a Like!

While this is certainly not the first re-creation of the Iconic AGC (Apollo Guidance Computer) DSKY (Display/Keyboard) used in all Apollo missions of the 1960s, and you can expect even more to appear this year and next year because of the upcoming 50th anniversary of the first moon landing, we decided a few years ago to create our own version that would meet a minimum number of pre-requisites.

This project came about from the suggestion of one of our Open Enigma backer/contributor and we would like to acknowledge Rob for his suggestion/contribution. Thank You Rob!

Pre-requisites specifications:

- Has to be built with an Arduino and offer Open Source software.

- Needs to look and feel like the real thing. A faithful replica obviously WITHOUT Core Memory…

- Needs to emulate function/behavior of the Apollo flown units.

- Needs to use components that allows someone to build it as a kit.

Step 1: RESEARCH, Original Specs Gathering.

While we did NOT personally have access to a physical device, we are fortunate that other people who have (or had) access have documented their findings (Fran Blanche for instance - whether you support our Kickstarter or not, please consider supporting her Crowdfunding campaign , some have allowed us to benefit from this knowledge. As Isaac Newton wrote, “We do stand on the shoulder of giants.”

Using the excellent paper kit from EduCraft ™ for exact dimensions, the free iPad app from AirSpayce Pty Ltd for minimum viability features, and the very detailed book from Frank O’Brien “The Apollo Guidance Computer – Architecture and Operation” along with numerous NASA resources including the full original code on GitHub, we were able to determine and replicate many of the exact hardware and software specifications.

The Original Electroluminescent displays used in Apollo were a very short lived technology which has long been gone. It went the way of obsolescence early in the 1970s so we very quickly decided to use LEDs in the form of 7 segments to emulate them. This also allowed us to NOT have to use the High Voltage and the 156 mechanical relays to drive the EL displays. Finding the right size was a challenge but little did we know that finding a +/- 3 Segment would be Mission Impossible! (even in this day & age…) We did find in Israel some 3 segments +/- integrated with a 7 segment unit and decided to give them a try for our earliest prototypes…

Step 2: A Little Bit of History…

It should be noted that the first thing that really resembled a modern microcontroller would probably be the Apollo AGC. This was the first real flight computer, plus, the first major use of integrated circuits. But you have to go forward another decade before all the basic functionality of a computer was brought together on a single LSI chip; such as the Intel 8080 or the Zilog Z80. And even then, memory, clock, and many of the I/O functions were external. It wasn't terribly convenient for the hobby user.

It is the ARM, AVR and similar chips that bring the next important step; with the inclusion of non-volatile flash RAM, it became possible to construct a computer with practically no external components. The AVR series of chips (with which we are most familiar) have buffered I/O lines, serial UARTs, A/D converters and PWM generators, watchdog timers, and even internal oscillators if wanted. In the format of the Arduino and similar boards, these chips are surrounded with a proper clock crystal or resonator, a regulated power supply, some power supply and other critical-pin de-coupling capacitors, and a few blinking lights for status monitoring.

It is ironic that 50 years later, the platform of choice for a DIY project offers basically the same functionality (Ram/Rom/Processing) at a minuscule fraction of the cost (and weight!).


We decided that we first needed to make a proof of concept on breadboard of 3 Maxim chips controlling 15 7 segments LEDs to make sure they would behave as expected. We knew we did not want to solder from scratch a project board with every single 7 segment, LED, and buttons as this would be tedious and would slow us down from designing the PCB which we felt was required to produce a reliable, faithful replica.

We also tested the MP3 player on breadboard AND… we created a prototype of a 3D printed 3 Segment to produce the elusive desired +/- LED unit.

Step 4: Schematics

Schematic design currently in progress to help everyone who wants to build a DSKY without our PCB or Kit.

The first schematic (NeoPixels) shows how we connected the 18 Neopixels to the Arduino Nano Pin 6. The second schematic shows how we wired (all the 18) Neopixels and the 5Volt Buck, Reed Relay, Line Leveler and SKM53 GPSr along with the 19 buttons.

We used Surface mount 5050 NeoPixels which required a ballast resistor of 470 Ohms before the first pixel and we used a 10 uF Capacitor for every other pixel.

If you use the NeoPixel on Adafruit (Breadboard friendly) Breakout board as pictured above, then you don't need any resistor or capacitors as these are built-in on the Adafruit breakout PCB.

The last schematic (Maxim 7219 Shift Register driven 7 segments) will be appearing in the next few days as time permits.

The GPS circuit explanation: Most Arduino GPS devices will operate on 5 volt supply. That being said, the logic level on these same devices is 3.3 volts. Most of the time, the Arduino will read on it's RX pin 3.3V as high, as it is greater than half of 5V. The problem lies in the hardware serial... We are not sure why but we have better results using the logic leveler. Not using it seems to hinge on using software serial. The software serial library and the version incorporated into newer versions of IDE modify the timers and ports on the Atmel 328 chip. This in turn disables the ability to use the Maxim library that we need/use to drive the shift registers for the seven segment displays. So we use the good old hardware serial.

The reed relay is used to switch the hardware serial on and off so that the Arduino may still be programmed while installed. It can be omitted, however the Arduino device would need to be removed from the main board for programming as the serial will be stolen by the GPS. The way this works is: when reading GPS, pin 7 is pulled high closing the reed. The GPS then starts filling the serial buffer (GPS will never shut up once he has a fix.) The serial buffer is polled and when a sufficient amount of data is detected, it is read and parsed. Then pin 7 is written low disconnecting the GPS, allowing the Arduino to resume it's normal behavior.

Step 5: 3D Printing

Below are the Top Plate stl and the Bezel stl files.

Please note that while the Bezel can be printed on pretty much any 3D printer, the real DSKY was 7" wide by almost 8" high so those are the dimensions of our top plate which requires a 3D Printer that can at least print 180mm by 200mm.

Step 6: Laser Cutting/Engraving

Below are the ButtonCaps Laser cut/engraved file and the Lampfield frosted window Laser printed, then Laser cut/engraved, file.

We use Rowmark (Johnson Plastics) Lasermax Black/White 2ply 1/16" (LM922-402) to cut and engrave the 19 button keycaps. As with all files submitted to a laser cutter, you may need to tweek the file size until you obtain 19mm by 19mm keycaps. On our 60Watt Water cooled CO2 machine, we use 40% power and 300mm/s speed to engrave and 50% power and 20mm/s speed to cut the acrylic sheet.

The frosted window is created by printing the above image on aptly "Apollo" named transparency (why use any other brand?) with any laser printer and then feeding it to the laser cutter/engraver to "etch" horizontally, then vertically, using 20% power and 500mm/s speed which we feel creates an ideal "frosted" look.


1 PCB v1.0D

1 3D Printed parts

1 Arduino Nano



1 Buck StepDown


1 Line Leveler

1 Reed Switch

1 DFPlayer Mini

1 MicroSD Card 2Gig

1 2" 8Ohms Speaker

1 6AA Battery Holder

6 AA Batteries

1 Wire Terminal

1 On/Off Switch

4 Maxim7219

4 Sockets 24pins

1 40 Female Pins

1 10uF Capacitors

1 15 Ohms Resistor

1 100 Ohms Resistor

20 470 Ohms Resistors

22 1K Ohms Resistors

4 10K Ohms Resistors

3 100K Ohms Resistors

18 NeoPixel RGB

19 LED PushButtons

19 Laser Cut Button Caps

21 7 Segments 820501G

3 3 Segments STG

2 Frosted Windows

Most components above are easily found on eBay or Amazon and are reasonably priced.

The exceptions are of course our very own PCB (which integrates all of these components together, our laser cut Button Caps which look really good and allow the light to go through the button, the frosted windows which after trying numerous alternatives, James had a stroke of genius (more on that later) and finally, the !@#$%^ 3-Segment +/- display which we had to create from scratch. Add to this our very own 3D printed enclosure and you have all the ingredients.

If someone is ready to accept the lack of “+” sign in front of the appropriate numerical data displayed, then you can simply add 3 more 7 segments and call it a day. This was simply NOT an option for us and this is why we created our very own 3 Segment.

Step 8: 3 SEGMENT

You would think that in 2018, with all the Worldwide resources available to us, one can simply order a 3Segment +/- LED unit… Well, it is not the case!

So, we realized that in order to remain faithful to the original Apollo DSKY, we would have to create from scratch our very own 3Segment +/- LED.

After numerous designs, we finally had a 3D printed unit with integrated shadow box.

Then, we sourced the appropriate SMT (Surface Mounted) LEDs and tested them.

We were now ready to design the tiny PCB that would fit inside our 3D printed 3Segment shell.

Putting all this together was a bit of a challenge considering we can hardly see the tiny LEDs, but the result is Fantastic!


Then came the point to decide the minimum functionality of our Replica, along with production goals and what our wish list was.

After a little research, we found a free app on iTunes that could be useful, so we bought an iPad specifically for this purpose.

The Free iPad app from AirSpayce Pty Ltd gave us an idea of our MVP (Minimum Viable Product).

After writing the code to perform a Full Lamp test, we immediately implemented the Time set/display, IMU monitoring and GPS monitoring.

The code was frozen until we decided to add one of our crazy wish list item which was to playback the famous JFK speech from 1962 in the Rice Stadium “We choose to go to the Moon…”. Then we added a couple other iconic sound tracks.

Step 10: ASSEMBLY INSTRUCTIONS - Electronics

First, make sure you have all the required components.

Read through the following instructions once completely
before starting the assembly.

1. Solder all 20 470 Ohms Resistors.

2. Solder all 22 1K Resistors.

3. Solder all 4 10K Resistors.

4. Solder all 3 100K Resistors.

5. Solder the 15 Ohms Resistor.

6. Solder the 100 Ohms Resistor.

7. Optional: To help with soldering the tiny Surface Mount 5050 RGB NeoPixels, I drop a bit of solder on each of the 4 pads for each of the 18 RGB LEDs.

8. Cut 2 strips of female pin connectors and solder them to Arduino Nano location on back of PCB.

9. Carefully solder all 18 Surface Mounted NeoPixels in the proper sequence, making sure to not short with nearby vias. After assembling many units, we have discovered that it is more efficient to solder 1 Neopixel, power the Arduino (via its USB port) with the strandtest.ino to verify that it lights up, power off Arduino, solder the next Neopixel in the sequence, test it and repeat for all 18 Neopixels. As you troubleshoot issues, keep in mind that a problem with a Neopixel can be a result of the prior Neopixel NOT being soldered properly (Output pin). I found that 680 degrees is too hot (and kills red & or green sometimes), 518 degrees seems much better.

10. Cut a strip of 4 female pins and solder it to Buck Converter location.

11. Insert Arduino Nano and Buck Converter now if you want to test the RGB LEDs using strandtest.INO

12. Flush cut both black spacers under each of the 19 lighted pushbuttons to allow the buttons to fully rest on PCB.

13. Insert, then solder all 13 Lighted push buttons, making sure all the red dots (Cathode) are on the left side. Once all buttons are inserted, I power up the Arduino via its USB port to test that all 19 button LEDs turn on BEFORE I solder them…

14. Solder all 4 Maxim sockets, making sure to respect orientation.

15. Prepare the IMU by soldering his male pins and jumping his ADO pin to his VCC.

16. Prepare the Line Leveler by soldering his male pins on Low side and High side.

17. Cut and Solder the female pins to receive the IMU, the VA RTC and the Line Leveler.

18. Solder all 10 caps respecting polarity. The longer pin is positive.

19. Solder the Reed Relay, making sure to respect orientation.

20. Solder the wire terminal.

21. Solder all 21 7 Segments, making sure the dots (decimal point) are on the bottom right.

22. Solder all 3 S&T GeoTronics 3Segments (Custom Plus/Minus).

23. Insert all 4 Maxim 7219 Chips in their sockets, again, making sure to respect orientation.

24. Insert the IMU, RTC, Buck, Arduino Nano and Line Leveler.

25. Solder the Speaker and MP3 Player/SD card making sure to respect orientation AND keeping as high up on the PCB because the GPS on the other side will need to be flush with PCB to fit properly.

26. Solder the GPS after applying a layer of electric tape underneath to prevent potential shorting of pins..

27. Connect the 9Volt battery pack and test the completed electronics assembly.

CONGRATULATIONS! You are done with the electronics assembly.



Qty Item

1 3D Printed Bezel

1 3D Printed Top Plate

1 3D Printed Mid Section

1 3D Printed Bottom

1 3D Printed Battery Door

1 Printed Frosted Window

1 Acrylic Window

19 Laser Cut Button Caps

15 Socket Head Wood Screws (M3-6mm)

6 Tiny wood screws

Once electronics assembly is fully tested, please proceed with the following steps:

1. Position all 19 Button caps at their proper location following picture above.

2. Carefully insert assembled PCB in Top Plate. It may be a tight fit and may require a little sanding of the 3D printed component.

3. Using 6 Tiny copper screws, screw the PCB to the Top plate. Do NOT Overtighten.

4. Using 2 of the Socket Head screws, mount the Speaker and then the On/Off switch to the 3D Printed Mid Section by pushing it in.

5. Using 8 of the Socket Head screws, screw the assembled Top Plate to the Mid Section, making sure that the On/Off switch and speaker hole is in front.

6. Solder a jumper wire to each side of the speaker, jumping them to each Audio Out hole next to SD Card.

7. Using double sided tape, mount the battery box inside the battery compartment, making sure that both red and black wires are inserted in the hole.

8. Screw the Black wire from battery box in the Gnd position of Blue Screw Terminal and Solder the Red wire from battery box to either pins on On/off Rocker switch.

9. Screw a Jumper wire to 9V side of Blue Screw Terminal and solder the other end to the available pin on On/Off Rocker switch.

10. Close Back cover and Using 8 of the Socket Head screws, screw the assembled Back Cover to the Mid Section. Do NOT Overtighten.

CONGRATULATIONS! You are done with the enclosure assembly and you now have a complete DSKY!


Because we make extensive use of Neopixels, you will require to visit the Adafruit Web Site and download their wonderful library. This library comes with some fine examples like "standtest.ino" that Limor and her team also wrote.

Also, because we use Shift Registers to drive the 7 Segments, the Maxim library is needed for the Max7219 chip.

Get it here: LedControl Library

Attached is our current code as of 1/9/2018. This is a prototype with limited functionality. Please check with as we continue to develop and streamline the feature set.

Enjoy the video clip for a short demo of some of the functionality currently implemented.


Following our successful formula used for our Open Enigma project, we are offering on Kickstarter various kits, assembled/tested units and an Ultimate 50th Anniversary Limited Edition (Make 100) Replica.

We are offering:

- The PCB alone

- The Barebones Kit

- The DIY Electronics Kit

- The Complete Kit (with 3D Printed and Laser Cut components)

- The Assembled/Tested Unit

- The Limited 50th Anniversary Edition with Serial Number and Certificate of Authenticity

Please visit for more info.

Please visit to order your PCB or Kit.


  • gizmologist made it!


  • Remote Control Contest 2017

    Remote Control Contest 2017
  • Arduino Contest 2017

    Arduino Contest 2017
  • LED Contest 2017

    LED Contest 2017

We have a be nice policy.
Please be positive and constructive.


Questions & Answers


It is wonderful to see the attention to detail in many aspects of this project. But why dismiss electroluminescent displays as a short lived obsolete technology when EL products and materials are actually more available than ever? There are shops that can screenprint custom segmented EL arrays, and highly dedicated enthusiasts like Fran Blanche who are working hard to do exactly this for the DSKY EL display. Substituting modern LED displays not only fails to match the distinctive color spectrum of EL green, but also misses the area & shape of the original display segments, the horizontal bars and more. For the cost of a handful of your kits you could help fund an authentic reproduction display for enthusiasts everywhere.


Normally the "S" of S&T is silent, that being said... Both the S and the T admire Fran Blanche. We would love to do EL, however after tinkering with past projects involving high voltages (Tube Amps, Nixie clocks and our first project: an Electric pickup truck conversion -, It became obvious that we do Not and can Not be responsible for the electrocution of anyone making our kits, not to exclude the "S" or for that matter the "T" of S&T. Should our Kickstarter campaign be very successful, we intend to substantially fund Fran's Endeavor. Should Fran successfully reproduce DSKY EL in the near future, and agree to let us collaborate, we will consider producing a commercial solid state (no relays) kit that could drive such a device. Also Open Source.

S&T GeoTronics does not copy anyone's work without prior permission period.

That sounds like a good plan. Here's hoping it all works out someday! Regarding the high voltage concerns though, I've done a fair amount of work with commercial EL drivers/inverters and they are all power limited to such an extent (and driven by low voltage DC) that it's practically impossible to get more than an annoying sting from accidental contact. They have a high frequency AC output that's limited to a few milliamps before the voltage sags or shuts down entirely, and no bulk capacitors storing high voltage energy. Also the "skin effect" at those frequencies directs the current through the skin and away from any vital organs, unlike DC and household AC. Just saying, it's nothing like an electric vehicle or even the plate supply of a tube amp in terms of potential for danger from electrocution.

starphire, thank you for bringing up the excellent effort from Fran Blanche. We have been following her progress closely, support her and truly believe that when she is done, she will have a DSKY that could fool Astronauts into thinking it was a real one. #no shortcuts. However, we first and foremost did not want to subject our kit makers to the high voltages required by authentic EL displays, did not have the ability or time to raise the capital required (~ $10,000) and also were not interested in figuring out how to fit 156 mechanical relays required to turn each segment on.

Perhaps it can be an option for rev. 2 then. For the ultra realism enthusiasts :)

Adding circuitry to drive EL displays would admittedly add parts and some costs. However, as Fran noted there was a fundamental lack of semiconductors that could switch the necessary voltage at the time, while microrelays were available and reliable. That issue has long since been solved! Just as an Arduino can easily replace the discrete logic circuitry of the original DSKY, today we have integrated circuits suitable for switching the necessary AC voltages.

Mostly I think it's a rare opportunity to bring together a small but dedicated group of enthusiasts and the critical economy-of-scale necessary to make a custom run of EL displays cost effective for everyone's benefit. Setup costs are high for custom displays, but only by pooling together enough buyers can the unit cost be made reasonable. It's something to think about, anyway.

Because we are using Open Source software on Linux for our CAD Schematic drawing, we are currently working to draw the footprints for the components we used. There are no Arduino Nano, Maxim, etc, built-in. Sorry for any delay, we hope to have these schematics finalized soon.

I used the Edu-Kit model and installed displays and lighting. The 3 lines of the display read time, date, and temperature. Pressing one of the buttons plays the Apollo 11 lunar landing broadcast.

We are very impressed by both your patience/precision on assembling the paper kit and your skills in adapting it for lighting and button action. We bought the paper kit (and tools) with intention to assemble but I quickly (first night) realized I did not have the patience and time to accomplish the task.

It took me several months, and I couldn't have done it without access to a laser cutter. I finished it on July 20, 2015, the 46th anniversary of the Apollo 11 landing.

Oscarbravo35, evbeurdn, Insonicbloom, vitalisam, camohat

You are all correct on both points. It is an expansive kit and we also feel an Instructable is NOT an Instructable unless the software code (INO in this case) and STL (if 3D Printed files involved) and schematic (if electronic circuits involved) and PCB layout are provided. We are really sorry about the 24 hour delay in providing these files, while we made sure the source code what available from day 0, we have just started added the other files to the instructable tonight. Step 4 (Schematic) will continue to grow in the next few days) but the neopixels wiring is posted, Step 5 (3D Printing) contains the Top plate and Bezel. Step 6 (Laser Cutting/Engraving) contains the Button Caps and Lampfield. Sorry about the delay.