I’ve been captivated by magnetism, as I suspect many are, for a long time. My discovery of core memory at the Computer History museum in Mountain View, CA triggered the idea to create a core memory module that is interactive.
I discovered Jussi Kilpelainen’s Arduino Core Memory Shield on Tindie and that was the kick I needed. I added an LED array behind the cores to illuminate each core in real time and so I can selectively flip a bit one direction with a stylus (a small screwdriver with a magnet attached). I suspect the presence of the permanent magnet is inhibiting the “destructive read” and/or the follow-up write. The result is only being able to clear the bits at this time. The next step is to create an active stylus to allow me to choose whether I want to set or clear a bit. This will effectively enabled drawing AND erasing, to make the project more interactive. Pursuing this next step is going to bring along more learning about magnets and core memory, which is the real goal behind this project.
Here's video link showing the concept in action. It's surprisingly interactive and satisfying to use. I was happy with the result and was going to stop there. But I look forward to seeing what I learn with an active stylus.
The first step was this proof of concept:
Then I found a close physical match for the 4x8 core bits with a Neopixel 4x8 RGB Matrix FeatherWing and I made a 3D printed plastic adapter to "guide" the light from the LEDs to the cores since they don't line up perfectly.
Close up the passive "stylus" and a single affected core:
I like the blue glow with the blue plastic. Now, I'll move on to the electromagnet experiments. One challenge I'll likely face is the fact the cores are not all arranged in the same orientation. They are placed in an alternating pattern to make the wiring & drive circuitry layout more efficient. If my solution ends up relying on orientation of the stylus relative to the core, I'll have to get extra-clever.
MARCH 15th UPDATE:
I've been trying to come up with a way to make a stylus work, and be able to selectively set a bit. As I investigate the signals in the sense wire, it has occurred to me that since the sense wire is shared with all cores. So it will be critical to falsely trigger the sense wire through interaction with a specific core. I can't just influence the sense wire with the stylus because the firmware would not be able to discern which bit was to be affected. This makes the challenge a little harder.
I've discovered the effect of the permanent magnet is to reduce the time the sense wire signal is above the trigger threshold for indicating that a core state has flipped. This effect is through and local to the core being affected, and results in the ability to block the sense wire from seeing a core state flip, so the logic dictates that the core must have already been set. Thus, no further action is required. And since this is a permanent magnet, and not moving, there is no influence on the copper sense wire.
I'm attempting to create a single pulse in a small coil of wire that is timed (by the same firmware doing all of the rest of the work, i.e. checking core state and controlling LEDs) to occur when a core is being read (which is actually a write... are you confused yet?) in an effort to force a pulse in the sense wire through the core.
The capture shown above shows the [styl] signal that is being sent out to trigger the stylus (which is nothing more than a 12K resistor to ground right now), the [writ] write pulse that is attempting to set the core and see if it changes state, and the [sens] sense pulse that occurs if the core is changing state. I think I will need to shorten that stylus pulse, and align it over the sense signal to have a chance of inducing the pulse in the write window of timing so the firmware will detect it as a core state change.
As I stated earlier, the sense pulse [sens] gets narrower when the permanent magnet is near the core. It is interesting that the RIGHT edge of the pulse moves towards the left. Although the left edge does move to the left ever-so-slightly, most of the movement is on the right edge, toward the left. That's an interesting observation on its own. I'm not sure what I expected, but it wasn't that. There is much to be learned around all of these details. And that's why I do this stuff!
Here's the state of the experiment:
I'm out of time for today, so I'll have to pick this work up later. If the contest closes tonight, then this represents the progress so far.