The previous work with the proof-of-concept is posted here and runs with 32 cores. The badge version of this project is taking shape on this project page and has 64 cores. The project name is a nod to my favorite 8-bit computer, the Commodore 64.
What does it do?
It allows you to draw in core memory with a magnet like this...
Here is a video demo. In its simplest form, the badge allows you to draw on the RGB LED matrix "screen" with a magnetic stylus. In this first mode, you are directly interacting with the cores which are acting as static screen RAM. It is that simple but it ends up being very engaging on its own. When I share this with people, this is where I start to hear, "Oh, this is cool. Now I get it." At this point you are only seeing a monochrome drawing mode.
There is another mode of operation that enables a much wider range of interaction. In the second mode, the cores are acting as a touch overlay on the RGB LED screen. The cores are effectively acting as "touch RAM." By refreshing and checking the state of the cores, the whole array comes alive and can sense which core (or cores) are being affected by a magnet at a given moment. By decoupling the cores from the screen RAM, the creative juices can be unleashed. Instead of a monochrome drawing mode, full color drawing can come alive. The core array turns into a mesmerizing magnetic flux detector. I have even implemented a simple game of snake that is fun to play.
I need to make a technical clarification for those who know the intricacies of core memory operation. In the present implementation, as far as I can tell, the magnetic stylus is not changing the core polarity to a specific direction. Instead, it works by inhibiting the first write in the read process by holding the core in a fixed polarity so the sense wire doesn't see the effect of a polarity change when the core is written too. This is because the strength of the magnetic field in the wires is not enough to overcome the presence of the stylus magnet. That fixed polarity could be either CCW or CW. I need to do some more testing to clearly understand how it works. For now, it works very well in this mode of operation, but it requires constant scanning of the core array to see the stylus. This makes me think more about an active stylus add-on, or stylus with each end having an opposite magnetic polarity.
Beyond the "core memory + LEDs" party trick, I have several other goals for this project. Here they are, along with the reasoning behind why I think they are valuable:
My aim is to keep the badge clean looking from the front so the focus is entirely on the cores and LEDs themselves. That is, after all, the focal point of this project. Everything will be accessible from a mechanical/electrical/programming perspective which leaves the door open for your creativity to be expressed.
Full Control of the Cores
I made a conscious decision to use a microcontroller to discretely drive the core wiring matrix with transistors. This allows you to develop your own control algorithms and have complete control of each wire in the core matrix to really learn about what is happening. I have seen other projects which decouple the addressing logic through hardware which makes it easier to interface with the cores, but the point of this project is to get you as close to the cores as possible. You can choose to abstract the interface as much or as little on the software side.
Hidden [Magnetic] Tricks
In order to open the door even wider to your creativity, and sticking with the spirit of a project which revolves around magnetism, there will be a few more goodies on the backside of the board. I anticipate these items to be:
- Several Hall-Effect switches to act as user assignable hot buttons.
- A reed switch; just 'cause it is magnetic
- Communication ability. I would like the badges to be able to interact with other badges. The obvious choice is with Near Field Magnetic Induction (NFMI)....