Arduino core memory shield is ready and for sale

Hi all,

after three hardware iterations my core memory shield is now finished. I am selling it as a kit on Tindie.
I sell on Tindie

coremem-shield

Here is all the material related to the kit:

coremem-shield-app

Thanks to Ben North and Oliver Nash at corememoryshield.com for the inspiration and encouragement!

23 thoughts on “Arduino core memory shield is ready and for sale”

    • Thanks for your kind words! It is nice to see that there are many people who have an interest in retro technology. I like it because they have the same concepts as modern technology but in a macroscopic and simplified way. To answer your question, yes, I program all the CPLDs prior to shipping.

  1. So, you are using big, chunky, cpld which have tons of registers and even more gates as interface to 32bit memory, whoa that waste of hardware is huge.

    • I wouldn’t call the CPLD big. The interface logic uses 21 of the 32 macrocells available. Compared to a solution with discrete logic chips it is cheaper, more interesting and takes way less space.

      • I know, but in discrete it would be more like original, this project goal is show vintage memory modules, so it should be as close to original card as possible, other way this project is non sense.

        • My intention is not to be period accurate but to help people experiment with this technology which is otherwise hard to approach.

  2. Received the kit, assembled it, and it worked the first time. Thanks!

    One idea for the future: put holes where the row and column magnet wires terminate on the board so they can be stretched tightly when you’re wiring the array. I tried to get my wires as straight as I could, but I still wasn’t satisfied.

    The separate power supply is understandable but annoying. I would love it if you had put a LD1117-3.3 (3.3V Linear Regulator) on the board so it and the Arduino could be powered from a single beefy 5V supply.

    • Thank you for reporting back. I have plenty of PCBs in stock but I am collecting improvement ideas for the next revision. The holes for stretching the wires are now definitely near the top of the list.

      The initial prototype of the shield did have a 5 V to 3.3 V regulator but given the variety of Arduino boards people have sourcing large currents from any rail is problematic. I think the best approach is to have the regulator, a footprint for a connector and a jumper or some circuitry for selection.

    • I recommend Uno R3 as it is pretty cheap and ubiquitous.

      By the way, I have not given up maintaining the document. It is just that the product has not changed in a while. If you spot something that raises questions, does not make sense or is out of date then please report.

      • Thank you! I’ve been programming since the 80’s but this is the first major hardware project I’ve undertaken. I’m sure there’ll be some cussing involved but I’m looking forward to playing with this during my Christmas break. 🤞🙂

  3. Great project!
    After the assembly it just started working, without any problems, great job Jussi!

    How did I assemble the core without tension holes, etc?
    1. Straighten a long enough part of a wire for a vertical line and cut it for a correct length. Solder one end, if needed use a help of tweezers and (what I recommend) kapton tape to hold a wire in place. Do it one by one, or solder all four lines.
    Do not use duct tape – it will melt. I recommend using tweezers with very sharp end for maintaining cores – then you can insert tweezers inside a core to grab it firmly, and insert a wire at a same time.
    2. Insert 8 cores on each line, and then, again with help of tweezers and kapton tape, solder other end. It should result in 4 nearly perfect straight lines without tension – it will be helpful with next steps.
    3. Make a sufficient part of the wire straight, but do not cut it. Holding one end in hand, and using tweezers position cores and insert the horizontal wire one by one (recommend starting from right side, where the board is not limiting access). Then, after making sure that all cores are positioned correctly, place the wire in the exact place, cut it for a correct length and solder both sides.
    4. Using rest of the wire put one end through 4 cores, so the end meets lower sense wire pad. Use tweezers, sometimes it is helpful to hold the board upside-down and push cores a little using fingers. Solder it.
    5. Put another end according to the drawing. Making curves is a little bit tricky.
    6. Done ;)

    A few comments/suggestions for new versions:
    1. A test point for GND would be useful
    2. Additional test points would be nice: for a sense line, and for resistors limiting wire current, so one can attach oscilloscope and see memory in action
    3. Maybe an SMD version could be considered? For me it is much easier to solder SMD, than THT and trimming excess legs. Or a combo-version, with SMD pads under THT footprints?
    4. A description of which core stores which bit as well as some identification of memory pads (where the wire is soldered) would be nice (to make it easier to identify the current path when reading a schematic.
    5. An explanation of commands would be handy:
    case ‘c’:// pulse core by core (write 0, write 1) until any input
    case ‘#’:// prints text in the console until \r reached
    case ‘e’:// extended test core by core
    case ‘v’:// toggle displaying actions on each core access
    case ‘f’:// toggle error reporting in some modes (T mode and corewise test)
    case ‘m’:// exchange (read-write) data 120000 times (for time measurement)
    case ‘R’:// read word
    case ‘s’:// pulse core with address set by A and a commands (write 0, write 0, write 1, write 1)
    case ‘a’:// increase core address for pulse
    case ‘A’:// decrease core address for pulse
    case ‘W’:// write word
    case ‘X’:// exchange word
    case ‘r’:// read bit
    case ‘w’:// write bit
    case ‘t’:// test bit-wise
    case ‘T’:// test word-wise
    case ‘U’:// random test until any input
    case ‘z’:// reset error counter

    • Thank you very much for the assembly tips and improvement ideas Piotr. I would like to address your comments

      1. I agree.
      2. I agree. I wanted to build the kit in a way that would allow people to experiment with the technology (hence the JTAG headers and the existing test points), but it could be improved.
      3. I also think that SMD is easier, and it would definitely allow for some interesting design choices. All the address decoding logic would fit on board as SMD devices. Alternatively the amount of programmable logic chips to choose from would be much larger. However, most people prefer THT so that is what it is going to be.
      4. I agree, and I drew a figure which is now in the appendices part of the document.
      5. I have though that checking the commands from the source code is good enough but on second thought you do have a point. I will have to do some thinking about rewriting chapter 4.

Leave a Comment