Setting up our new Raspberry Pi0-based Flip Chip Tester (FCT)

 

Today's task: get our Flip Chip Tester (FCT) up and running. For those who don't know, Flip Chips (in DEC parlance) are small circuit boards with a handle opposite an edge connector, about the size of a 3x5 card, that have a small number of discrete components on it.

Each Flip Chip provides a specific set of components to a machine. The one pictured here is an M617, which provides six four-input NAND gates (two per IC). The Flip Chip would be inserted into a slot, and a wire-wrap backplane would connect it to power, ground, and upstream and downstream components.

One of my favorite things to explain to students is how the PDP-12's CPU can quite literally be repaired. When FCs go bad, it's usually because some IC on the FC has failed. Of course, you can just swap out the whole FC (if you have a spare). However, they can also be easily repaired if you know what to replace and you have equivalent IC packages.

Enter the Flip Chip Tester. Before he died, Warren Stearns prototyped a device that, given a set of test vectors for a particular FC, could tell you which ICs were failing. His tester worked for most of the single- and double-width discrete logic boards.

After Warren's death, several folks worked to make Warren's tester more robust and replicable. Vince Slyngstad made a PCB, a bill of materials, and build instructions based on information collected by Doug Ingraham from Warren's prototype and Warren's laptop, and with the assistance of Mike Thompson at RICM who worked closely with Warren. You can see Warren's prototype here.

Previously, we built a tester using Mike's modifications for FTDI/USB use, but for a variety of reasons that one failed (none Mike's fault). So now, we're setting up one with Vince's modifications that enable control using a Raspberry Pi 0. Vince did the complex assembly for us, which frankly was a huge lifesaver.

Friends Neale Pickett and Brian Hicks donated Pi 0 Ws (saving this unsupported project almost $200!), and I had the time between semesters to get try to get the assembled FCT up and running.


This is a small circuit board, about the size of a 3x5 card. It has a purple handle on one end and gold card-edge connectors on the other end. Metal letters read "FLIP CHIP." In the middle, there are three FJH141 ICs, along with two orange drop capacitors and four resistors. Solder traces connect the components to the card edge connector on both sides of the card (visible through the translucent card).   A USB stick is also visible as a size comparison.
And M617 Flip Chip with USB stick for reference.

The Pi0 of the FCT needs a set of 90-degree GPIO pins, which I soldered on yesterday. Not my best work -- or my worst. The Pi is mounted upside-down in the base with the GPIO pins pointing inward, so the pins should be on the "chip side" of the Pi (as shown in the picture). I tested the continuity between the pins and the vias (the little metal cylinders the pins are soldered into) and everything works, so that's a delightful surprise (and who cares how it looks... right?).

An RPi0 is visible through a magnifier on an electronics workbench. 90-degree GPIO pins have been soldered into the board, and the solderwork is decidedly amateurish but looks complete.
The Raspberry Pi 0 W in it's natural habitat.

Next up, assembly.

Here is a picture of the Pi0 bolted into the base. The base was designed by Vince and 3D-printed by a colleague here at UMD, Tom Buck. (The STL file can be found on Vince's site.) Tom specifically bought this "PDP Green" filament for this purpose, and refused remuneration! 

This is square box, about 6 inches by 6 inches and one inch tall. There are screwholes in the corners and two standoffs with screwholes in the middle. The box is a bright green, similar to the colors of our PDP-12.  There is a slot on one side of the box; next to the slot are four half-height standoffs just the right size for an RPi0. An RPi0 is placed on the standoffs component-side down so that the peripheral connectors on the Pi are accessible via the slot and so the GPIO pins point into the interior of the box.
The FCT base with RPi0 in place.

Here's a picture of the upper...

This board is about 6 inches square with many components on top. Two large card slots for flip chips are in a line along one edge so that single or double-wide FCs can be inserted. Rows of jumped jumpers lie between the FC slots and a set of IO expanders used for interfacing between the FCT and the computer controlling it. (The jumpers are there to allow probing of signals if desired). A set of status "gumdrop" style LEDs dot the board, along with a set of single pin connectors used for probing. A power switch is in one corner.  Lithographed text reads "M-Series Flip Chip Tester Design by Warren Stearns.

 ... and lower sides of the FCT as assembled by Vince: 

This is the underside of the FCT described in the other picture. It is mostly free of components. A set of 90-degree pins sticks out from the bottom. Attached to it is a custom cable that will interface with the GPIO pins on the RPi0.
 

Flip Chips are inserted into the card slots (the rightmost one for single-width, both for double-width). The ICs are expanders for interfacing between the testing computer (originally from Windows 95 over parallel, but in this version between an Rpi0 and the FCT over GPIO pins). Single pins are for attaching probes if desired, and LEDs provide some status information. (Most of the information is provided by the application that interfaces with the FCT).

 

Here, the previously mentioned FCT is screwed onto the 3D-printed base. It fits perfectly. The slot on the side that exposes the peripheral connections for the RPi0 is shown.
The FCT board mounted on the base. You can see the peripheral slot on the side.
 

I thought about waiting to assemble the whole thing until I knew that everything worked, but it all seemed correct, so I thought, "live a little!" I screwed everything together using some tiny wood screws I bought at the local hardware store (shout out to Denny's ACE in Woodland) and took this picture.

Seconds later, I had to take the whole thing apart once I realized that I assembled it without an SD card in the Pi. After loading and plugging in the SD card, and plugging the Pi into the powered USB I had purchased for this purpose, I had a few tense minutes thinking the Pi was broken, until I realized the hub just wasn't plugged in. Then, after a few more tense minutes thinking the powered USB hub I bought for this machine was broken, I realized that it was plugged into the wrong port on the Pi -- one port (POWER) is only for power (it will boot but USB devices connected to it will not work), while the other port (USB) can be used to both power the unit and connect USB peripherals. Üffda! 

Once I solved these tricky problems (very grateful for that CS PhD in moments like these), NOOBS installed Raspbian, which booted easily, if not quickly. (Nothing graphical seems to happen quickly on the RPi0, but as you'll see, the terminal / ssh work great.) I updated Rasbian.

Next, I went to Vince's FCT site and followed Vince's Pi-specific instructions. I installed svn to get the FCT software from Vince's repo, ran make, and it compiled! Then, I reassembled the whole shebang and decided to try testing the first chip, that M617 shown up above. We use that one since it is a spare of an FC that is present in the PDP-12. (See our spreadsheet of our PDP-12's complement of FCs.) Vince's instructions have you test the FCT without an FC inserted, which I did. So far, so good.

I inserted the M617 into the right hand FC slot (labeled AA). A picture of the card inserted is visible below. If you look closely, you'll see that the FC slot has a raised tab on the left hand side, which is intended to discourage you from inserting the FCs backwards. Originally, Vince only had EDAC slots without the orientation tab, and which required manual centering of the FCs (I think aided by some 3D printed guides that Vince also provided). However, Julian had previously purchased "proper" slots from Todd Goodman for $10 each, and they were high-quality, so Vince used those on our tester.

 

A picture of the FCT in the foreground with an M617 inserted. The background is blurred, but you can see a lamp and a Yoda "READ and the Force is with you" poster.
An M617 inserted properly into the FCT. A vintage Yoda "READ" poster that I acquired from my college library is visible in the soft-focus background.

Next, I tried running the logic tests for the M617... and they worked! I had an odd experience where it passed all but one test the first time, so I reseated the M617, and after that, it consistently passed all tests. This is amazing to me, since this particular M617 gets handled by a lot of people in demos, etc.

he assembled FCT is in the foreground. The M617 flip chip is plugged into the "A" slot (on the right). The peripheral cables leave the FCT base into a powered USB hub and an LCD.   In the background, a screen shows the result of a successful test -- test case data is in the scrollback followed by the message "total fails 0, total passes 6" and a menu of options for running additional tests, quitting, etc.
The FCT with an M617 inserted. In the background, a successful test is visible on a screen.

The testing software is very easy to use. Among other options, you can run one test, or have it run tests until it fails (or you interrupt it). Here's a short (~6s) video of the M617 test running (and passing) multiple times. It's fast!

 
A short video showing a looping test.

Finally, here's a shot of one of our M706 Teletype Receiver cards. As you can see, this is a double-wide card, and uses both slots at once.

This shows the FCT in front of a screen running a test. The FC inserted is a "double-wide" M706 (rev. K) teletype receiver card. It is double-wide in the sense that it is one large circuit board with many components and two card-edge connectors that plugs into both FC slots on the tester at the same time.
A "double-wide" M706 Teletype Receiver card being tested.

We've been having issues with our teletype and os8diskserver serial connections, so I tested all four of our teletype cards (two M706 Receivers and two M707 Transmitters). They all passed with flying colors! So, I guess the next step is to make new serial cables, since ours are old and have probably been rolled over by a PDP-12 a few times.

I think that's it! Thanks for joining me on today's project! Special thanks again to Neale and Brian for the hardware donation. Major thanks to everyone who brought Warren's prototype into production, especially Vince Slyngstad for producing the PCBs, making it RPi-compatible, designing a 3D-printed base, and selling kits -- not to mention selling me this one pre-assembled -- this is a pretty sweet package and will go a long way towards helping us keep the our PDP-12 up and running for years to come.

Comments

Popular posts from this blog

Power Supply: The Mystery Continues