Open Apollo Guidance Computer DSKY

46K19671

Intro: Open Apollo Guidance Computer DSKY

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

Kickstarter campaign was a super success!

Open DSKY Kickstarter

Our Open DSKY is currently live on Backerkit (https://opendsky.backerkit.com/hosted_preorders) and available from our e-commerce site.

Bill Walker (creator of the Apollo Educational Experience Project), has written an amazing custom software (with nearly 50 functions) with a Command Reference modeled after the Apollo Flight Plan for his 2 Open DSKYs and is making it available exclusively to all via his GoFundMe page. Please consider supporting him.

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 https://www.gofundme.com/apollo-dsky-display-project) , 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!).

STEP 3: PROTOTYPING

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. This was a success. We then briefly attempted to build the device on a project board and very quickly found that the circuit density would not allow the machine to be fabricated in that. You just can't get 21 7 segments + 3 3 Segments (and the 4 Maxim to control them) plus 18 LEDs + 19 Buttons to fit on the project board not to mention the micro-controller, the IMU, the RTC, the GPS, etc. So we had to proceed directly to designing the PCB which we felt was the best way to produce a reliable, faithful replica. Sorry.

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

Schematics now available 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. The third schematic shows the IMU & RTC connections.

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 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 5 required stl files to make a complete Open DSKY Replica.

Please note that while the Bezel and Battery Box Lid 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, Mid Ring and Bottom which requires a 3D Printer that can at least print 180mm by 200mm.

We print the Bezel, Top Plate and Mid Ring on Grey material, while the Bottom and Battery Door are printed in Black.

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.

STEP 7: BILL OF MATERIAL

1 PCB v1.0D

1 3D Printed parts

1 Arduino Nano

1 VA RTC

1 IMU

1 Buck StepDown

1 SKM53 GPS

1 Line Leveler

1 Reed Switch

1 DFPlayer Mini

1 MicroSD Card 2Gig

1 1" 16 Ohms 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!

STEP 9: FUNCTIONALITY

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.

STEP 11: ASSEMBLY INSTRUCTIONS - Enclosure

BILL OF MATERIALS

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!

STEP 12: SOFTWARE


Please visit our other Open DSKY Instructable titled "PROGRAMMING THE OPEN DSKY"

for more detailed programming information and videos on programming your Open 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 www.OpenDSKY.com as we continue to develop and streamline the feature set. This current prototype code tests all the 7 Segments/Maxim shift registers, all Neopixels, the Very Accurate Real Time Clock, the 6 DOF IMU, the GPS and the MP3 player.

All this functionality in 3 authentic Verbs and 3 authentic nouns and 3 Programs we added for demo purpose.

VERB LIST NOUN LIST PROGRAM LIST

16 MONITOR DECIMAL 17 IMU 62 “We choose to go to the Moon”

21 LOAD DATA 36 TIME 69 “The Eagle has Landed”

35 TEST LITES 43 GPS 70 “Houston we’ve had a Problem”

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

STEP 13: KICKSTARTER


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

Our Kickstarter is currently LIVE!

Open DSKY Kickstarter

Please visit https://opendsky.com for more info.

Please visit www.stgeotronics.com to order your PCB or Kit.

48 Comments

Does anyone know where I can get a copy of the +/- Display 3D Model STL File mentioned in the Instructable?
Thank you for your inquiry.
I just added the file to Step 8.

Does it sometimes fall over with a 1202 Alarm? :-)
Yes. With the new included code, created by Bill, from Apollo Experience (http://apolloexperience.com/), you get close to 50 combinations of Verbs , Nouns and Programs, including 2 full simulations (A11 Launch, A11 Moon landing) and even an A13 (Main Bus b undervolt).
Hi. Have the PCB files become available? I can't seem to locate them. Thanks!
Hi! I'm brand new to all of this but a friend and I are first year engineering students and we though this would be a cool project to take on. I may have missed this in the reading but will this be able to run both the Lunar module code and the command module code or will I have to pick one? Thanks in advance
Hi - The openDSKY is an open project that emulates the DSKY from the Apollo missions. You could Program it to emulate either DSKY but it is not running the real code. I hope that helps. I'm currently working on a Arduino IDE on a Pi W attached to the Arduino Nano in the OpenDSKY so it can be updated on the fly.

Hi Again,

I think James doing the coding on the videos is really cool. I decided to actually de-solder the IMU, MP3, RTC and GPS then breadboard them to run separate test scripts with each of them separately. You can really learn a lot by referencing the datasheets and looking at the example code and the associated output. It also shows if they are actually working (my MP3 was not!).

After finshing the build I was thinking a few things that in hindsight may help future builders.

I would like to send in some high-res macro images of some of the finer detailed assembly areas that are not all that clear on the existing instructions. Reading some of the other user comments this may be useful for someone?

I also think ordered component testing such as

1. Keyboard test (described in James' video)

2. 7 segment LED test (described in James' video)

3. Neopixel test (already in the instructions but optional)

4. MP3 (breadboard test)

5. RTC (breadboard test - will need breakout board due to pin spacing)

6. IMU (breadboard test)

7. GPS (breadboard test - will need additional breakout board due to pin spacing)

should all be advised in the assembly instructions as it is a real pain to debug after everything is on the board (especially if non-socketed).

Other little details were missing such as having to bend the RTC pins should be mentioned and the orientation of the custom +- LEDs - but hey Marc and James are busy guys and some things just required a bit of common sense.

IMPORTANT

Please that the adjustable Buck Convertor output is outputting ~5V as mine was set at 9V from the factory. Bye bye the odd neopixel (and possibly the MP3 player) by the time I found out!

Marc/James let me know if you want me to send some of my assembly photos.

Cheers

Richard

Hi

Do you have a time frame for the AGC interface project?

Cheers

I'm a high school computer science teacher and love what you've made! It's a bit out of scope for my class, but I'm going to see if I've got some enterprising students who'd like to tackle it. I must say, your kickstarter video is incredible! Did you use some sort of template for this (a la renderforest), or did you do all the raw production?

Thank You for the nice feedback, the Kickstarter video was professionally created by one of our backers in LA.

I sent you a message regarding your school.

Thanks!. I received your message and thought I had responded, but I'm not seeing any sort of 'sent' box. Let me know if you didn't get it and I'll send it again.

I can't seem to find the 7-Segment listed in the BOM. Searching for 820501G yields no results. Can you send a link to a supplier who carries these, or verify the model number?

Beautiful unit.

I have a prototype pre-assmbled unit. It has travelled from Vancouver, Canada to London, England and back on the flight deck of a 787.

GPS functioned on the flight deck and gave excellent results. Of course the GMT time also was spot on.

Can’t wait until more functions are added.

Best regards and best of luck with the Kickstarter.

Geoff in Vancouver.

Will include pictures of it on the flight deck on my next London trip where I will introduce it to my fellow HPPC members (HP handheld computer club) in London.

This is a fantastic project. Great work! I feel this is a more authentic unit that that other non-DSKY project that has been mentioned. Can't beat real 7-segment displays. And on ebay that other unit (front + back) is listed for $1,500 - which makes for an expensive desk ornament; pretty though it is.

One thing it has, though, which I wish your DSKY had, is real mechanical keys, as opposed to clicky buttons. I realize that would have meant 2 PCBs, a cable, different mounting, etc, etc... but I think it would be worth it. Version 2 maybe? :-)

One actual question: It looks like the unit runs on 4 AA batteries (please correct me if I'm wrong). Can you give an idea of how long a set lasts, or if there's a power connector that I'm not seeing?

Thanks for doing this. This is wonderful. A great homage to Apollo.

Thanks for the quick response. Can't fault your choice to use tried and tested keys - especially for a kickstarter with other people's money on the line. One week of power sounds good. Didn't realize there was a screw terminal too. Very useful.

Thank you for the compliments and feedback.

We did consider using Cherry keys, but we have been using similar buttons in our Open Enigma for 4 years and have never had issues so we elected for the simplicity and ease of use of these integrated lighted buttons.

Our Open DSKY runs on 6 AA batteries (9 volts) and although we did not leave a unit on until batteries are dead (yet), we believe that depending on battery quality, user selected brightness of Neopixels and 7 segments, number of lights turned on... the 6 AA should work for a whole week or more... The screw terminal can be used to directly hookup any 9 volt power brick if desired.

How does this compare to the one that Telemetrics is making? I've seen their DSKY and it actually looks like the real thing and for about the same amount you guys are asking. They have a larger case that looks identical to the one they used on Apollo and they said theirs does everything the original one did and more. Instead of the EL screen they use a digital screen that can also be used as a full computer. Their DSKY is fully networked with WiFi, and GPS and even has Bluetooth that plays every single mission recording and telemetry script. They said they are making a FDAI that will connect to the DSKY and eventually full instrument panels and the whole thing can be used with space simulator software like Kerbal and its almost the same amount of money. I was trying to see what this other DSKY does and it's not very specific. Can you go over what the differences are?
More Comments