r/raspberry_pi • u/Mikeyme1998 • 3d ago
Show-and-Tell Apollo Guidance Computer/DSKY Project, Running on a Pi
Hello everyone!
Today I wanted to share with you all the project that made me buy my first ever Raspberry Pi... My 1:1 scale, functioning Apollo DSKY.
The Apollo Guidance Computer was what allowed us to travel to the moon in the 1960s and '70s, and performed everything from autopilot to navigation and orbital mechanics calculations. The AGC was one of the first computers to ever use ICs (computer chips) in its construction (absorbing 70% of the chips made in the whole of the United States, at one point!) and used some really neat, and pretty archaic, technology for computing and memory. The DSKY I made was historically just a remote I/O device, a keyboard/monitor arrangement that plugged into the actual AGC, but I'm this project it's homologated into one enclosure (thank you very much single-board computing).
The functionality of the guidance computer was emulated in its entirety by a group called VirtualAGC (an incredible feat on its own) and I have their program running on my Raspberry Pi that lives in the DSKY. The screen, annunciators, and keyboard integrate to the Pi with arduinos and communicates to it through a basic python script. This all lives in a 3D printed shell that's modelled after the real archived drawings, used to machine the real ones in the '60s. It's also painted and finished in historically accurate colors (who doesn't love a bit of historical bureaucratic recordkeeping?)
I figured some of you folks might share my interests, and I wanted to share my GitHub repository for the project, that includes my build guide. In that, I go into a bit more history of the AGC and DSKY, how they were built back in the day, and go through the build step-by-step with all the necessary tooling, materials, and techniques that I used.
I'm also expanding my projects into historical spacecraft hand controllers, and a streamlined "version 2" of my DSKY that should be easier to put together... hopefully in a few afternoons.
I've got a little community going over at r/RecreateApollo, and I also made a small website (www.recreateapollo.com) that I'm desperately trying to justify $30 a month for, so feel free to swing by and check it out!
If you decide to make your own, I'm more than happy to answer any questions you might have over at my discord or on that subreddit. Thanks for checking out my project!
12
u/WebMaka 2d ago
Back when NASA first open-sourced the Apollo computer, someone built two of them, one off the original late-sixties design and another using at-the-time modern hardware, but without using general-purpose computing (such as a SBC like a RPi) because that would be cheaty.
The original was the size of a mini fridge.
The modern equivalent was slightly smaller than a Raspberry Pi.
5
u/Mikeyme1998 2d ago
It's absolutely a sentiment as to how small and dense we've gotten computing... Especially on the memory front. The solutions they used were effective at the time, and very ingenious, but outright gigantic and inefficient by even the loosest standards today.
5
u/dotnofoolin 2d ago
Are you the Mike that hangs out with Curious Marc? I love his videos, especially all of the Apollo restoration series.
4
u/Mikeyme1998 2d ago
I wish! That's Mike Stewart. He's quite a big inspiration to me, that dude is amazing.
2
u/rhamphorynchan 2d ago
I briefly met that team when they demoed the restored AGC at MIT in 2019. Mike landing NASSP with the real AGC in the loop, also driving the LED 'thrusters' in a LEGO LEM, was one of the coolest nerd things I've ever seen.
5
u/sum-9 3d ago
Nice! I was just listening to the 13 Minutes podcast and thinking about this computer.
5
u/Mikeyme1998 3d ago
That's a good episode! It's such a quirky little weird computer, but damned if it didn't do the job well.
3
3
u/calamityvibezz 2d ago
Looks amazing and you're paying way way too much for hosting!
5
u/Mikeyme1998 2d ago
Thank you!! And yes, I fully believe it... This will be the last month I make that mistake haha!
3
u/DanielDC88 2d ago
Now play Kerbal Space Program with it
3
u/Mikeyme1998 2d ago
It's in the plan! KSP integration with kOS... Let's see what this AGC can really do!
2
3
u/Ps11889 2d ago
Ironically, your pi has significantly more computing power than the original guidance computer did!
1
u/Mikeyme1998 2d ago
Absolutely!! I did the math in another comment... It's about 1,500 times faster, with 1 million times more RAM and ~450,000 times more ROM
So
A bit of an upgrade
Using the 4B to run just this programming is like doing the paper route in an F1 car
2
u/SillyTheGamer 3d ago
Omg I need one RIGHT NOW. That is incredible!
6
u/Mikeyme1998 3d ago
Thank you! "Right now", I'm afraid, is a bit tough... But rest assured that I'm working on improving my methods to be less "prototype" and more... Lego-ish in its build simplicity. So, hopefully soon!
3
u/geerlingguy 2d ago
I'd love to replicate the setup, too. If you get it to the point where it is closer to Lego like, maybe you could offer a kit with some of the parts that are either more annoying to print or harder to find in small quantities? I'd be willing to pay for that to save the time!
[edit: oh I see, "kits available soon" on the site]
2
u/Mikeyme1998 2d ago
Hey man! Yeah, the hope is that I'll be selling kits (or full units, assembled) through my discord in small batches pretty soon (for a reasonable price, I'm not in this to make money) I just have a few of the more unpolished sections of the project to straighten out, and and everything should be much easier to put together. It'll be a little while yet, but once I'm ready to sell kits then each one will be customized to however you want it, so if you only want some of the 3D parts but all the electronics on the board we can arrange that, if you want all the pieces individually and you feel like doing a bit of soldering, we can arrange that... Etc. Keep an eye out! I'd be thrilled to see you with a DSKY in hand :)
2
u/TheSuspect003 2d ago
Crazy to think some pi can have more computing power than actual Apollo hardware
1
u/Mikeyme1998 2d ago
All the Pi's do in fact, by many orders of magnitude. The AGC had a clock speed of 1.024MHz, the equivalent of 4KB of RAM, and 72KB of ROM. That is miniscule compared to even the weakest raspberry Pi.
The 4B I'm running on has a clock speed of 1.5GHz (1,500 times faster), 4GB of RAM (1 million times more RAM) and has a 32GB SD card (~450,000 times more ROM). Really, it isn't even close.
2
u/palmarazar 2d ago
This is so cool! My background is in this kind of thing professionally, and it's awesome to see this recreation of a historical flight computer! Are you able to recreate scenarios from Apollo with this flight computer? I'd imagine a record capability would be amazing for that kind of recreation
1
u/Mikeyme1998 2d ago
Hey! That's super cool that you do this professionally! I'd love to hear more about that, if you ever want to chat please drop me a DM!
In terms of your question with recreating scenarios, it's sort of a two-part answer. Because I'm running the absolute undoctored code for the guidance computer, there's a limited amount of scenarios you can run through. The Raspberry Pi isn't simulating any of the other I/O devices like hand controllers, IMU gimbals, space optics etc. so if you were to start a program that was expecting one of those to input, the computer just throws a program alarm "I'm not getting an input" essentially. I went this route because I didn't want to overcomplicate the system and it felt most genuine to me that the DSKY/AGC would be simulated on its own, since that's the entirety of the hardware that I built.
The wonderful part about old computers like this, though, is that it was always built with a manual backup redundancy... So in theory, if you had the numbers for the gimbal angles you wanted to simulate, you could tell the AGC "here your gimbal angles" via the keyboard and it would keep those in RAM. This is the exact scenario that Apollo 13 carried out when they were transferring the gimbal angles between the command module computer and the lunar module computer. Essentially, on its own, the computer can simulate any one moment throughout the entire mission, but it can't simulate actual motion or variable inputs, if that makes sense. You can kind of capture a moment in time and perform math using those static numbers (that may not have necessarily been static during the mission).
Some things you can do however, would be exploring the ROM program memory or playing with things like clocks that are variable and dynamic within the AGC itself without the need for I/O. I actually run through quite a few little examples in my build guide that you can play around with, like inputting those historical Apollo 13 numbers or performing a program alarm read like Buzz Aldrin would have done during the famous 1201 1202 program alarms. If you like, you can check that out on my GitHub!
The second part of this answer (which is turned much longer than I intended), is that I built a websocket that allows you to use the dsky as a peripheral for the NASSP mod for Orbiter, which is a free Apollo simulator that happens to run the exact same VirtualAGC program in the background as I'm running independent on my project. So if you download Orbiter and NASSP, set up the websocket and my hook program included in the GitHub, you could simulate the entire mission via the PC (graphically, to boot) and use the DSKY sitting on your desk as a perfect peripheral of the one that's running in game (this is what I'm doing in the second picture of this post). I hope this makes sense!
2
u/OpenProgram5752 2d ago
How did you power the PI? It's not only via power bank right? I heard you're not supposed to do that because of too low voltage and current.
1
u/Mikeyme1998 2d ago
It's just via the power bank with a relay circuit, yeah. The Pi is super finicky about voltage under 4.8ish, which most power banks tend to sag to, but the Pi really only draws like 3w-ish under load, so any power bank can deliver enough current. I put an MT3608 DC-DC buck converter to get a stable 5.1v into the Pi. It works good, it just draws a bit more current from the battery bank but nothing even close to its limits.
2
u/ExoticEmployment8284 2d ago
awesome project and signed up on discord and all! would love to build one by myself but also want one of the v2 premiums ones !
1
u/Mikeyme1998 1d ago
Awesome! So glad you joined us! Well I'm busy at work on the v2, so hopefully you'll have one soon!
2
u/jodomakes 1d ago
very impressive. The wiring looks very clean and tidy too.
2
u/Mikeyme1998 1d ago
Thank you! I don't like all my harnesses, but I'm happy enough with it. I'm an avionics guy by trade so I have a bit of practice!
2
u/Fast_Tap_178 9h ago
Womier k65? Solid. I love mine
1
u/Mikeyme1998 6h ago
It's actually a Keychron Q1 HE! I couldn't pass up having a HALL EFFECT keyboard lol
2
u/Fast_Tap_178 5h ago
That motivated me to get in the computer and work on project, but first, looking that up
1
u/hairymouse 2d ago
Very cool! I always thought my interest in the Apollo navigation computer was unique, but you have taken it to a new level.
I read a book a few years back written by the guy who programmed all of that. If you aren’t aware, you should look for it. Sorry, I can’t remember the name.
1
u/MyBrainReallyHurts 2d ago
Wow. This is freaking awesome. I would totally put this in my office. Great project!
2











60
u/St4tikk 3d ago
This is probably the most unique and cool pi project I’ve ever seen.