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 on the planet who’ve woven as much core memory as he has over the last few years.
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 get a 128 GB SD card that’s a fraction of the size. But then, as Andy discovered, core memory is capable of some tricks that make it a bit more interesting.
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.
“[…]likely thanks to its close association with the Apollo Guidance Computer[…]”
Or, you know, just being that darned old.
Fascinating article. And, I get that the reference to the Apollo program helps people connect the technology to something that they recognize. But, the continued references to Apollo seem to give the impression that the tech was developed for Apollo. There’s nothing to indicate that core memory was already in use in the early 1950s.
Core magnetic memory was recent, but it was replacing relay memory as fast as they could find ways to install it, things were moving quickly.
From George Devol’s initial design in 1946, then An Wang for programming and Jay Forrester for impriovements1949-52. The functional system were immediately used in the new Whirlwind in 1951, which was installed in Lincoln Lab for DOD use, with some unclassified access. Seeburg’s V200 in 1953, IBM’s 704 in 1954, various robotics and automation control, telephony etc.
Core memory was also made available on the IBM 701 (which initially had Williams tubes). I wasn’t aware that the Whirlwind used core memory. Thanks.
Yet, the article gives the impression that core memory was a product of the Apollo program when, in fact, it was a mature technology by 1969.
Aside from the earlier work, what An Wang developed was a usable magnetic *shift register*. What Jay Forrester developed (with others) was a usable *coincident current* magnetic core memory, in the form of 2 dimensional planes that could be stacked up to form a large main memory, solving one of the major stumbling blocks to computer development and reliability. (Whirlwind started out using a *custom* MIT electrostatic vacuum tube memory.) The first computer to run with core memory was the Memory Test Computer (a/k/a Whirlwind 1-1/2 or Whirlwind 2). The MTC design was led by Ken Olsen who later founded Digital Equipment Corporation. The TX-0 computer at MIT-Lincoln Labs was a pioneering transistorized computer and was also used to test core memory. (And the DEC PDP-1 was a direct descendant of the TX-0.) At a time when other computer projects were developing number crunchers for math (or bomb design) problems, or machines for business data processing, it was the MIT-Lincoln Labs-DEC “School of Design” (there was a lot of overlap in people between these 3 places) that gave birth to real-time, interactive computing, exemplified by project Sage, Sketchpad, and embedded computing. IMHO. (By the way, Konrad Zuse’s Z22 machine also has a place in this history.)
p.s. An Wang’s work was for the Mark IV at Harvard. (The Mark I was not the last of Howard Aiken’s machines!)
Oops, sorry! I didn’t mean to respond to your post. I was just making a general comment.
Just watched your video brings back old memories. Back in the day I worked for Docutel the company that pioneered the ATM bank machines and the 16 bit mini computers we used to run the ATM used two 4K core memory boards and latter on we had some 8K core memory boards. Looking at them was like looking at a fine window screen. I can’t imagine how they managed to wire those tiny cores. Any way it was cool tech for the day. Glad to see someone breath a new life to this old tech.
Women with tiny hands, excellent dexterity, and perfect eyesight is how most magnetic core memory was made. A machine was invented to weave it, just in time to be made obsolete by integrated circuit chips.
I’ve been making 64 and 256 element cores, and keep thinking about making a ferrofluid or iron filing display so as the cores flip the display visibly changes, but I suspect having a low reluctivity medium adjacent to the core might end up affecting neighboring cores. It’s kind of a pity as it would be interesting to see a conway’s game of life operating in the memory of a small uC and seeing if there are any programs that would both have a usable output and also implement a standard CGOL pattern.
BTW the similarity of a memory core plane to a Befunge memory map is pretty tempting.
I’d like to see those 64 and 256 element cores – is there a project link? I do have in mind to connect 4x Core64c kits via wifi or BT to make a 16x16array specifically to implement in CGOL… and maybe even Battleship.
I’m pretty certain that there are still people alive who have made several hundred times more core memories than Geppert has. At its start Control Data had lots of gig workers hand weaving core memories in their spare rooms and garages for extra money.
In 1969 when I first starting working at Collins Radio in Cedar Rapids, Iowa, I was a component engineer responsible for the small ferrite cores that went into Collins’ disastrous attempts at making high reliability computers. The drivers for the core memory lines involved 16 small transformers wound on the ferrite cores and ultrasonically wire bonded to a ceramic substrate aluminum vapor deposited thin film circuit encased in a ceramic package. The result was so costly even the government couldn’t afford it. It was completely batshit crazy. Art Collins’ insistence on pursuing magnetic core based computers while constantly being behind the curve is what ultimately cost him the company. While I was there, and just before Rockwell bought it, Collins actually had to sell the three huge onsite diesel backup generators and then lease them back just to meet payroll.
I was thinking the same thing. There were a lot of young women who had the job of weaving core memory in the 1960s and into the 70s. Around the time of the moon landing I distinctly remember a trip to a Honeywell plant where my mother worked, and seeing rows of women sitting at tables behind arm-mounted magnifying glasses with circular fluorescent bulbs in the hoods, all threading tiny cores onto nearly invisible wires. I’m sure they were weaving up kilobytes per day, day after day, and selling to Big Serious Businesses. Andy may have wired a thousand kits but only 64 bits at a time, so it’s not an even comparison.
Everyone associates core memory with Apollo and mainframes but in the 80’s NCR (National Cash Register) produced the NCR 280 cash register/terminal which used a 4k or 8k core memory for a control program and totals storage. Offline functions were very limited. The register was online via a data multiplexor to a mainframe. Department stores such a Sears, Pennys, P. A. Bergners, and others used the NCR 280. The register printed receipts and validated checks using a Helical Printer (fixed type impact) that occupied half of the cabinet.
The first computer I worked on was an NCR Century mainframe and that had rod memory. Same principle but with the advantage that it could be manufactured by machine. As I recall, the coils were wound first, the the rods were tipped on and the whole plane vibrated until the rods fell into the coils.
Next level nerdery project would be fabricating magnetic core memory using standard integrated circuit chip methods, then adapting the chips to replace SRAM.
Problem there especially on that scale is just moving the chip would experience enough of the Earths magnetic field to flip the bits in the ultra mecha pico cores.
in my opinion better and cheapest will be thermal printer memory tan that
Here’s a link to the presentation so you can follow the slides more fully: https://github.com/ageppert/Core64/tree/master/Presentations
I used to work at an aerospace company (now defunct). We had two product lines with core memory. The apache helicopter and the saturn v launch computer. 10 to 20 Asian ladies did the weaving 3 shifts a day. All of my 16 years there 24/7 365. Amazing how after a launch abort and recovery our computer survived and said that an explosive bolt firing delay was the abort reason. We used the cafeteria dish washer and dryer to remove the salt water.
Our FORTRAN book for my (too long ago) freshman Engineering Fundamentals programming course explained core memory. But even I knew it was then years out of date…. Ah, memories!… … They’re fading fast 😁