Tuesday, May 15, 2018

Built core memory Arduino shield, which isn't working correctly yet

BUILDING CORE MEMORY SHIELD FOR ARDUINO

I bought a fun kit from  which implements 32 bits of core memory on a shield, a board that plugs onto the top of an Arduino. It arrived yesterday and I began assembly today. The totally frustrating part of the kit is wiring up the core array. This took me much of the day to get right.

First problem, but easily managed, is the very tiny core rings. These are hard to see and to pick up and manipulate. Threading 32 gauge magnet wire through these three times, for the X, Y and sense wires, is quite challenging but bright light, tweezers and superhuman eyesight is all it takes.

Core rings next to a standard transistor for size comparison
Second problem and more frustrating, was the instructions telling me that the enamel insulation on the magnet wire would burn right off with heat. 180 seconds of heat applied by a soldering tool did nothing. With the insulation on, the wires barely soldered onto the board and made poor contact.

I wasted an hour attempting the 'burn off' method before I cranked up the soldering temperature from my usual 630F up to 750F at which point it does a better job of burning off the enamel and soldering. Not perfect but better. Will have to drop the temp down when I go back to soldering sensitive components onto the PCB.

Key to a good looking core plane is tension on the wires to create an even grid of X and Y lines at right angles. Eight cores are threaded onto the vertical (X) wires, after one end is soldered to the PCB. Then, each of the horizontal (Y) wires is threaded through a core such that cores alternate vertically either 45 degrees to the left of vertical or 45 degrees to the right. This pattern is essential to make the coincident current method work properly with the sense wire.

Vertical wires installed with 8 cores on each
My four vertical wires were in place with eight cores on each. The next step is to thread the horizontal wires through one core on each vertical, alternating the angle of the cores, and solder down both ends of the horizontal wire. This had to be done eight times, once for each of the horizontal wires. Tedious work, at the limits of eyesight, but eventually all 32 cores were suspended on the grid in their proper orientations.

The second of eight horizontal wires was threaded, but the core ring broke in two while I was manipulating the wire to the solder pad. That forced me to unsolder one of the verticals, add a ring and thread it appropriately. This can get quite tedious if things go wrong in the midst of the wiring.

Broken core ring
By four PM I had half the cores on the XY grid and needed a break to rest my back and eyes.

Half the cores in place - 16 of the 32 bits
After dinner, I completed the entire XY grid through the 32 core rings and began to feed the sense wire through the cores in a single run. The final step in assembling the core plane is to weave the single sense line through all 32 cores. As this is the third wire threaded through each core ring, it is a bit more mechanically complex.

This was quite, quite difficult. I completed the first 9 cores before I had to take a breather to recover eyesight and patience. The wire has to bend and swoop all through the plane with many reversals.. I made use of forceps to hold the end of the wire that I was threading, then to pull it through smoothly from the other side. Much easier said than done. However, eventually I completed it all.

Once the core plane was assembled, I turned to the rest of the shield PCB, installing four rectifiers, sixteen drive transistors, a dual op amp, a CPLD logic device, connectors and the remaining capacitors. After checking for solder bridges and appropriate connections, I prepared the Arduino with the demonstration software and pulled out a power supply to deliver 3.3V at over 1A to power the shield.

The results were poor - the LED on the shield never lit up, the software wasn't getting any data in or out of the core, nor are the other results from the demo software making any sense. Time to debug this more carefully - ensuring that the X and Y drive lines and sense wire have continuity, then checking connections on the board. In particular the four bridge rectifiers are surface mount and may not have good connections which would block any read or write.

MISCELLANEOUS

My PCBs for the Documation card reader interface were shipped today by OSHPARK. Early next week I will solder up one of them and install it into one of my card readers. Assuming all tests out well, the other reader will get a second and Marc will wire up the third board for his reader.

I am cleaning out items I don't need and came across a Tektronix 466 storage oscilloscope. It is going to a restoration team member who doesn't have a scope yet. Always happy to see these go to a good home. 

No comments:

Post a Comment