Many Hackaday readers will be familiar with the term “core memory”, likely thanks to its close association with the Apollo Guidance Computer. But knowing that the technology existed at one point and actually understanding how it worked is another thing entirely. It’s a bit like electronic equivalent to the butter churn — you’ve heard of it, you could probably even identify an image of one — but should somebody hand you one and ask you to operate it, the result probably won’t be too appetizing.
That’s where Andy Geppert comes in. He’s turned his own personal interest into magnetic core memory into a quest to introduce this fascinating technology to a whole new generation thanks to some modern enhancements through his Core64 project. By mating the antiquated storage technology with a modern microcontroller and LEDs, it’s transformed into an interactive visual experience. Against all odds, he’s managed to turned a technology that helped put boots on the Moon half a century ago into a gadget that fascinates both young and old.
In this talk at the 2022 Hackaday Supercon, Andy first talks the audience through the basics of magnetic core memory as it was originally implemented. From there, he explains the chain of events that lead to the development of the Core64 project, and talks a bit about where he hopes it can go in the future.
The Core of Core Memory
So naturally the big question is: how does magnetic core memory actually work? If you’re familiar with the technology from the Apollo program, you probably know it involved weaving wires and was physically robust enough to make it to the Moon and back. But beyond that, it all seems a bit like magic, especially to modern eyes.
Yet in just a few minutes, Andy breaks down the basic principles in a remarkably approachable way. Of course, with his hand’s on experience, this shouldn’t come as much of a surprise. Given the number of Core64 units he’s personally assembled, there’s probably few people alive today on the entire planet that have woven as much core memory as he has.
As the name implies, core memory starts with ferrite cores…lots of them. Each core can be magnetized either clockwise or counterclockwise, which corresponds to either a zero or a one. Copper wires woven through the ferrites in the X and Y dimensions can flip the orientation of the core’s magnetic field when sufficiently energized, which allows “writing” to a specific bit in the array. A diagonally woven sense wire is used to detect when a core’s magnetic orientation has changed to read its value, but as this is a destructive operation, each read needs to be followed by a write if the data is to be preserved.
Scaling this concept up to increase the storage capacity of the array is easy, so long as you can address the number of wires required. In the 60s that could be a tall order, but luckily modern microcontrollers like the Raspberry Pi Pico offer plenty of GPIO, and transistors beefy enough to flip the magnetic orientation of each core come in SMD packages not much larger than the cores themselves.
In short, while the manual operation of weaving it is still just as much of a hassle as it was in the Apollo days, we now have the technology to shrink the support hardware down to the point where you can put 64 bits of core memory in the palm of your hand. Of course, that’s not terribly useful when you can a 128 GB SD card is a fraction of the size. But then, as Andy discovered, core memory is capable of some tricks that make it a bit more interesting than an SD card.
Adding an Interactive Twist
Andy found no shortage of information about magnetic core memory, and was even able to track down a few physical examples at different computer history museums. But none of that really compares to the experience of building it yourself, so he started looking for existing projects for inspiration.
That lead him to Magnetic Core Memory Reborn, a project from Ben North and Oliver Nash. Their work not only serves as a deep-dive into the process by which magnetic core memory works, but it also details the construction of a prototypical 32-bit memory array which can be accessed with a standard Arduino. While the duo didn’t seem interested in marketing the design themselves, they did provide all of the schematics and design files for others to build from.
Some more searching revealed that Jussi Kilpelainen had done just that, and produced a more compact version of their 32-bit Arduino array. Even better, he made it available on Tindie as a kit, which meant Andy could finally the hands-on experience with core memory he’d been searching for.
But as they say, anticipation is often more exciting than the final result. Once Andy had built Jussi’s core memory kit, he wasn’t quite sure what to do with it. Since the addition of LEDs makes everything better, he came up with the idea of placing them behind the array as a way to visualize the state of each core, and was even able to find an off-the-shelf LED module that was nearly the same dimensions and pitch as the weave.
After showing off this early version, the feedback he got was so positive he decided to take the plunge and design his own custom PCB that would bring these two very different technologies together in a larger 64-bit array.
According to Andy, it was simply by chance that he realized influencing the cores with a handheld magnet would allow you to “draw” on the LEDs behind them. That a magnet could flip the state of each core might seem obvious in retrospect, but if it wasn’t for the novel addition of the LED array behind them, it wouldn’t have had a practical application. What would have been considered a flaw in 1960 was now a feature.
Making Memory Fun
If you told one of the engineers behind the Apollo Guidance Computer that in 60 years, kids would actually be playing with the core memory they were currently working with, they would have thought you were nuts. But here we are.
By adding RGB LEDs to the back and putting a protective clear panel on the front, the Core64 turns an array of memory into a low resolution touch screen. From there the applications pretty much wrote themselves, such as a simple drawing application and versions of classic games like Snake. This interactive capability makes it a powerful educational tool, demonstrating early computing concepts in a way that’s relatable to modern audiences.
All told, it’s probably the most useful work anyone has ever managed to wring out of just 64-bits of RAM.