Sunday, 26 July 2015

Core Rope Memory - the story so far

This is an overview of the demo of Core Rope Memory as we presented it at yesterday's Dublin Maker. There are already design improvements in the planning stage so watch this tag.

Here's a photo of how the demo currently looks:




The green donut shaped magnets, and the red wires (let's call them rope-wires) woven through and around them, are the Core Rope Memory. Everything else you see is equipment for reading the values from it. If you take that piece of balsa wood out of all the other circuitry, it still contains the same data, because it is the weaving of the wires that stores data into the memory.

At the top left, plugged into the battery, is the pulse generator. This is a circuit based on the 555 timer chip that generates a square wave. The red wire coming from that circuit is a probe that can send that pulse through the horizontal wires in the memory, one at a time.

Each of the green cores has another wire (let's call it the core-wire) wrapped around it several times. Because of an effect called electromagnetic induction, we can induce a current in the core-wires. If a rope-wire goes through a particular core, and we send a pulse through it, a current starts to flow through that core-wire. If the rope-wire goes around the core, no current is induced. We can interpret this as 1 (where a current is induced) and 0 (where no current is induced). That means that we can encode a binary string for each rope-wire. That binary string's length with be equal to the number of cores. The wires in the photos encode T (10100), I (01001), M (01101), U (10101), I (01001).

When the Arduino senses new values in the core-wires, it interprets them according to a sort of truncated ASCII, and displays the character on the LED display. I knew I only wanted to display capital letters, and I had reasons for using 5 bits, so I pre-pended 010 to the values read from the memory, and display the resulting ASCII character.

It's a pity I had to include a multiplexer in this demo, because it makes it look more complicated than it is (I had simply run out of analog pins on the Arduino), but I'll be able to use it in future versions of the demo.

Thanks again to everyone who made Dublin Maker 2015 possible, and special thanks to the author of this Core Rope Memory tutorial.

Dublin Maker 2015

Wow! What a brilliant day. We got lovely weather, and so many enthusiastic and interested visitors.

Thanks to everyone who came to the stand. I hope you had as much fun as we did. Thanks to Cian and Róisín for all your hard work, and to the whole team who made Dublin Maker happen.




(I was too busy all day to take any more photos, but there are a couple here: https://twitter.com/jc_ie/status/624891357597954048
and here: https://twitter.com/GetScriba/status/625301119531622400)

Sunday, 19 July 2015

Demo photos

Here's what the main demo for Dublin Maker looks like:


I'm *really* happy with how it looks. The piece of memory is not fixed to the board, because I'm still hoping I'll get another piece made in time and I want to be able to swap it into the reading equipment. The second piece of memory will be modifiable by visitors, so they can encode a message and then see it printed to the display.


These are large wooden mockups of Core Rope Memory that illustrate the difference my Pretty Bits encoding makes. They both encode the same phrase "One small step", but the top one is 7-bit ASCII, while the lower one is Pretty Bits. I think it really shows the value of a custom encoding. It also pointed out to me that capital 'O' is currently encoded as all zeroes, which I think I'll fix in a future version.

Next step, a little more hot-gluing to make modifiable wooden mockups for visitors to try, and then hopefully the functional modifiable memory.

I also have to prepare my 5 minute talk for the day. Thanks to Róisín for the title "One small step and a bit".

Friday, 10 July 2015

OMG!

It's working!

I haven't posted progress shots in a couple of days, because my camera was a bit borked, but I put the effort into fixing it, because I have a working piece of Core Rope Memory that reads to my quad alphanumeric display!!!!





My camera would only record a few seconds, so it took three little videos to show me reading the 5 characters of TIMUI with my little probe. There's a lot of work to do on tidying up the code, and getting posters and things ready for the day, but I should at least have something to show!

I've never included a video in a blog post before, so I don't know if this is going to work well at all. Here's a photo in any case:



I picked a 5 letter word, and it's on a 4 character display, so the photo just shows it saying 'IMUI'. Oh well :)

I made Core Rope Memory you guys!

Wednesday, 1 July 2015

Mux prototype

I'm not sure if I mentioned the analog multiplexer I ordered, but it arrived, and I've just tidied away the first prototype using it:


My Arduino doesn't have enough analog pins for my purposes, but this little breakout board solves the problem nicely.

I'm looking forward to getting some more things soldered down and the final tidy-up done -- though I think the photos are finally starting to show the reduction in visual complexity.