Open Source DSKY

Modernization of the Apollo Guidance Computer

Similar projects worth following
The scope of this project is to modernize the computer that landed man on the moon. The goal of this project is to gather all the information available to the public regarding the Apollo Guidance Computer (AGC) and create a working prototype.

The original software that DSKY were all written in a assembler called YUL (“Yuletide”). Although the source code for DSKY are available on line, not everyone understand the language itself. Because of this, I plan on converting the programming language to something modern such as C. The intention was to get the functionality of DSKY itself, not recreating DSKY to it's finest details.

The main platform for this project is based on the ARM Cortex M0+ Core. The specific platform is the KL25Z MCU. This platform was specifically chosen because of it's low cost, Online IDE, and community backers. All documentations pertaining this project will be available online for anyone who want to build their own DSKY.

The Open Source DSKY (OSDSKY) will drive the indicator lights and the 7-segments. Additionally, the OSDSKY will have a keypad for inputting data and acceessing programs. Lastly, The OSDSKY will send and receive data from the Real Time Clock.

Future add-on will include communication between a computer (Desktop, Laptop, SBC) via USB, Wifi, or Zigbee. A easy to follow user guide, and a professionally made PCB (both kit and built).

System Design:

Proof of Concept Video:

  • 21 × TDSG3150 Displays and Inverters / LED Displays
  • 12 × SN74LS595 Logic ICs / Flip-Flops, Latches, Registers
  • 147 × 100 ohm resistors Resistance is Futile!
  • 21 × SN74LS47N Logic ICs / Decoders, Encoders, Multiplexers, Demultiplexers
  • 1 × FRDM-KL25Z Freescale Microcontroller

View all 11 components

  • 7-Segment Controller Board PCB

    Viva Penguinos08/23/2015 at 18:21 2 comments

    yI finally bit the bullet after verifying me design and went and ordered them from Oshpark. The reason why it took so long is because is because it costs me $80 per board (Display Driver, 7 Segment Display), and then $40 for the micro controller Board. I haven't even accounted the parts to populate the board. In all it would cost me 200$ just for the PCB and another $70-80 for the parts just to see whether or not the device works or not. Anyways, Enough of the Text, Here's some pictures of the Display Driver board.

    Just note that this project is at a snail crawl because of school and the cost of having them produce but if anyone is interested in buying this board in particular, Let me know in the comments or message me and I'll work something out with you.

  • PCB Render

    Viva Penguinos05/04/2015 at 22:49 0 comments

    Here's the rendered version of the PCB's, I have yet to send it to the Oshpark but when I do, I'm going send the smallest one (Which is the Micro-controller) first to verify that my Layers are done correctly. There is 3 PCB in total, One is the micro-controller, the second is the display drivers, and the last is the 7 segment display. The images will show both front and back for each PCB.

  • Status Update

    Viva Penguinos03/27/2015 at 22:06 0 comments

    I apologize that I haven't been updating the Open Source DSKY. School started back in August and I've been bombarded with classwork. As of now, the project is currently on hiatus. I've been working on and off on the project when I am on break, or when I have free time. So hope is still there! My last update was 8 months ago and some changes (Even though small) has been made.


    PCB layout completed This includes the Display Drivers, The seven segment LED, and the Micro controller board. Had to do 4-5 revision before I was finally satisfied (I am also a newbie so it took much longer than normal). Waiting to save enough money to be sent to the Oshpark.


    New programs has been added to the software, but those has yet to be tested.


    Thanks to my university, The library has papers and books regarding the Apollo System including navigation, power, resource management, and data obtained regarding the CSM.

    I'm currently taking a class regarding objective programming in C++ which also includes programming GUI interfaces. The goal is to absorb as much information I can get in that class and apply those skills and create a GUI interface which would allow users to communicate with the device with little to no background knowledge (Which would be great for educational purposes.).

    Thanks for hanging in there, I know some wondered what was the current status of the project and whether it was abandoned or not.

  • First Official Video, DSKY Program Breakdown

    Viva Penguinos07/24/2014 at 19:48 0 comments

    Now with the hardware aspect completed, it’s time to move onto the programming portion. The video below is the current status of the DSKY. If this goes well, I may consider uploading more video update logs.

    For people who don't know what is happening on the video, at the start of the video, the micro controllers tells the shift registers to display 8 on their entire screen. It's more for presentation rather than function. After the initialization is completed, the first thing I program into the device is Verb (V) 35. This tells the DSKY to test all the lights to verify that it is in working order. Following V35, The next thing I programmed is Verb 16 Noun (N) 36. This informs the DSKY to display the Ground Elapse Time (GET). The last program is V25N36. This is used to configure GET. Once initiated, the computer notifies the use with code V21N36. This informs the user to input the values for the hour portion of the GET. After the hour has been inputted, V22N36 ask the user to input the minutes. Lastly V23N36 ask the user to program the seconds. Once programmed, it goes back to displaying GET with the new information. The following section is going to cover the programming aspect of the project.

    Read more »

  • Wire-Wrapping Milestone!

    Viva Penguinos07/12/2014 at 07:27 0 comments

    Many things have been accomplished since the last project log. Because of this, I'm going to split this into two project logs. A week after I posted my last project log, I finally received my shipment of 30 gauge wire from china. The order was divided into two packages; the first package just had just a spool of red wire (Not the color I wanted at the time). Unfortunately, the spool was damaged during transit, but I'm not going to complain about it. The 2nd package contained the other 3 wire-wrapping spools I needed. Here’s a picture of the entire spool together (Yes. That is a CD/DVD spool.)

    Read more »

  • Wire Wrapping Zen, AutoCAD-Inventor, and CNC fun!

    Viva Penguinos06/08/2014 at 05:59 0 comments

    Package Arrives!

    So I received my package from Newark on March 25th. Here are the new goodies that I got:

    One thing which I did not expect was the reel of resistors. Previous packages came only in a cardboard box with some foam. No matter since I can always reuse it to spool some wire onto it. This is my third purchase I made since started this project. Hopefully that is the final purchase I have to make to Newark for electronic parts.

    Read more »

  • Wire Wrapping Adventures, Hackaday's Space Contest

    Viva Penguinos04/29/2014 at 05:54 0 comments

    Sorry for the Long pause in my project logs. To make it up, I’ll post a long project log from then until the day of this project log so you can catch up.

    Seeing that I'm running out of space on my breadboard, I’ve decided to take a look into wire wrapping. Interestingly, The DSKY on the Apollo mission also used wire wrap for the back panel. Wire wrapping this project would be a pay a great tribute to the DSKY. I've considered producing a one off custom PCB but wasn't viable in its current situation because of its early stage. After going to a ham fest in Orlando, I picked up one of these babies for $20.

    Read more »

  • DSKY - The Beginning

    Viva Penguinos03/17/2014 at 23:55 1 comment

    DSKY - the Beginning

    So that everyone is on the same knowledge level, this section will cover basic knowledge of the DSKY. The image below is the front interface of the DSKY. (Source: The Apollo Operations Handbook)

    As you can see, the DSKY consist of three data displays. From this point and on, I’m going to refer the data displays as R1, R2, and R3. Furthermore, the DSKY consist of two 7 segment referred to as Noun and Verb. And lastly, the DSKY also contain program number allowing astronaut to know what program the astronauts are on.

    Additionally, the DSKY consist of 19 buttons. Labeled as 0-9, Verb, Noun, CLR, PRO, KEY REL, ENTER, RESET. Most of these buttons are self-explanatory but I’ll cover that in future topic. In the upper left there are activity lights letting astronauts some additional information should they need it.

    In total the DSKY contains 21 - 7 segment LED's, and 19 buttons. There is much more to explain that aren’t present in this project log. Should more information be explained, I'll be glad to dedicate a log just for the hardware and software of the DSKY.

    Read more »

  • DSKY - An Introduction

    Viva Penguinos03/06/2014 at 00:48 0 comments

    Hello HaD members!

    I'm no writer nor professional commenter/blogger/vlogger/<Insert Terminology here>. But the goal of this project is to create a working model of DSKY. For people who aren’t familiar with the DSKY, The DSKY is a front interface that astronauts used to communicate with the Apollo Guidance Computer (AGC). Essentially, it’s the keyboard and monitor to the AGC.

    How the project got started:

    The project started as an inspiration from a website a friend had sent me. Source: wanting to get into electronics and microcontrollers, I thought this would be a nice project to tackle.

    Information regarding DSKY

    After researching for countless hours, I stumbled upon several sources of information that will be the basis of this project. The first source comes from NASA directly (Go NASA!). Source: The PDF cited is basically the “manual” to the DSKY. It provides all the Programs, Sub Routines, Verb, and anything related to DSKY itself. The second source is from Ibibio. Source: if you have spare time, I highly recommend you spend some reading time on this particular website. It provides all information for DSKY, AGC, AGS,and the LVDC. Additionally, The author is still looking for more information and documentations to add into the website.

    And so the adventure begins…

    Actually the project started back in November immediately after completing my last college course in Networking and Communications Management. The first order was actually placed on November 13 2013. As I progressed on with my project, HaD project was released to the beta testers. Seeing this as a project that some tinkerer hacker would enjoy reading or contributing, I decided to hop on the list. Today I received that email and signed up immediately. And now this project is availiable for any readers of HaD. I apologize for the lack of pictures but I’ll guarantee the next post will contain more picture of my project.

    Feel free to comment and add any contribution to this project.

View all 9 project logs

Enjoy this project?



tmdav wrote 06/04/2016 at 14:44 point

Have you seen the book "The Apollo Guidance Computer -- Architecture and Operation" by Frank O'Brien? It has everything you could possibly want to know, and then some, about the AGC and the DSKY unit.  Check it out!!

  Are you sure? yes | no

Jasmine Brackett wrote 08/06/2014 at 23:02 point
Viva Penguinos, now is the time to add a few more details to your project to give it the best chance of going through to the next round of The Hackaday Prize.

By August 20th you must have the following:
- A video. It should be less than 2 minutes long describing your project. Put it on YouTube (or Youku), and add a link to it on your project page. This is done by editing your project (edit link is at the top of your project page) and adding it as an "External Link"
- At least 4 Project Logs (you got this)
- A system design document
- Links to code repositories, and remember to mention any licenses or permissions needed for your project. For example, if you are using software libraries you need to document that information.

You should also try to highlight how your project is 'Connected' and 'Open' in the details and video.

There are a couple of tutorial video's with more info about meeting the requirements here:

Good luck!

  Are you sure? yes | no

TheNorminator wrote 06/17/2014 at 00:02 point
I made an emulated AGC a few years back, I don't know if I finished it

  Are you sure? yes | no

Viva Penguinos wrote 06/17/2014 at 05:01 point
What was your inspiration/story to wanting to emulate the AGC? I always love to hear the story behind people's projects.

  Are you sure? yes | no

TheNorminator wrote 06/17/2014 at 05:06 point
I went though a phase where I was often bored and restless, so I started brainstorming project ideas with my cousin. We did some intensive research and couldn't come up with anything. A few months later he comes across the AGC emulator that another person was writing, which had been left to die, it was in a language I wasn't too familiar with at the time (this is roughly 4 years ago), so I converted it all into C#.

I was very interested with the moon landing at the time, it really motivated the project too.

  Are you sure? yes | no

Jasmine Brackett wrote 06/12/2014 at 00:07 point
Wow Viva Penguinos, great project and we love your passion for openness.

I noticed that you've tagged your project for The Hackaday Prize. We've updated the submission process, so if you want to officially enter this project - login and use the 'submit to' under your project images on the left hand side.

Also, we're starting community judging soon, so now is the time to give your project page a once over, and check you've added all the details to give it the best chance of winning. It would probably be a good idea to update the project description to give a bit more of an overview and highlight how your device is connected.

I realise you are busy, but frequent and often for updating the project logs works better as your project will show up in the feeds more and get more attention.

Got any questions? Give me a shout. Good luck

  Are you sure? yes | no

pgcudahy wrote 03/06/2014 at 05:21 point
Sounds good. I just read Digital Apollo (ISBN 9780262516105) which has some good background on the development of the DSKY but not much on technical details. Might want to check it out. Please keep us posted.

  Are you sure? yes | no

Viva Penguinos wrote 03/06/2014 at 06:12 point
Thanks for following this project! I saw the book on amazon and contemplating on purchasing the book but decided not to since I felt most of the resources I needed were availiable from Ibiblio and on NASA Archive. I'll have more project logs in the upcomming days so stay tune!

  Are you sure? yes | no

Does this project spark your interest?

Become a member to follow this project and never miss any updates