Building a simple CNC microscope (part 1)

Simple != cheap. Just FYI.

Since I've been really enjoying reverse-engineering the Unisonic 21 CPU chip, I've resolved to get into decapping, photographing, reverse-engineering and archiving dies of older 1970s and 1980s chips. I went to a bunch of surplus stores here in the Bay Area to pick up boards and individual chips in the [5400 and 7400] logic family. Primarily [Excess Solutions] and to a lesser extent [Weird Stuff Warehouse], while [Halted] wasn't a very good source (and their chips are all behind the counter WTF).

These are very simple logic chips. Perhaps the most complicated is the ['181 4-bit ALU]. But, they're simple enough to level up on TTL with, and there are many variations and manufacturers of the same chip to compare.

Following in [John McMaster's footsteps], I hit the eBay to find a metallurgical microscope, a motorized XY stage, and a 20x planar apochromatic objective with long working distance.

For the metallurgical microscope, I found this awesome [Olympus BHMJ microscope] (US $1600 shipped). It is important to get a BHMJ, which means that the head is clamped onto a 22mm shaft, allowing you to adjust the height of the head. You will also need the right illuminator, the [BH2 UMA]. My microscope is bolted to an optical breadboard, came with four objectives plus an objective adapter thing ("Mitutoyo-to-RMS adapter"), and a bunch of other measurement things that I didn't really need. But it is awesome because I can add whatever I need to the base.

The BHMJ is also infinity-corrected, meaning that you can use infinity-corrected objectives with it, which are plentiful. The microscopes that aren't infinity-corrected have a fixed tube length, and you need to use the same tube-length designated objectives. That is really limiting. See [this Olympus article] about objectives for some useful information about what tube length is, and [this article] for other objective terminology.

At first, I found what seemed like the perfect XY stage. It was actually an XYZ stage made by Newport Klinger Micro-Controle. It uses variable reluctance stepper motors, which sucks because they are noisy and controllers are hard to come by. And when I got it, it turned out to be a YZ stage because the X axis was broken, and taking it apart is proving unreasonably difficult.

So I gave that up as a bad job, and searched for more motorized XY stages, and found this awesome thing, called "MMT 80x80 XY axis Motorized Stage Cross Roller Precision VEXTA PK544-NB MRS-I-10" in the listing (US $400 shipped from Korea). It was apparently pulled from equipment.

A bit of digging showed that it used [Oriental Motor PK-544] 5-phase stepper motors with some optical limit switches, and the recommended drivers were Oriental Motor Vexta DFC1507 modules which I found at a local place (US $140 each). And there's very clear [documentation] for it!

So I ordered all that stuff and mechanically, at least, the stage works fantastically. It has lots of holes in it for breadboarding. Very customizable, and the step size seems nice and small.

I already had a [BeagleBone Black] which I wanted to use because it has [MachineKit] available for it, basically a CNC controller, and that uses the BBB's PRUs (Programmable Real-time Units) meaning that it's far less likely to stutter since the control signals are offloaded to a dedicated processor. All I really needed was pulse output (and later, limit switch input), so I chose the simplest configuration I could find,  CRAMPS. This refers to a hardware driver, but I didn't need one because I already had a driver, the Vexta units.

The only problem was that the Vexta units take a CW/CCW pulse while the PRU configurations in MachineKit can only output STEP/DIR pulses. The CW/CCW or UP/DOWN config is [not implemented], but there's [a placeholder] for it, as if I don't have enough projects :( .

So I doodled for a little while and rooted around in my surplus chip box and came up with a 74139 (dual 2-4 decoder with inverted outputs) which could be configured to convert two STEP/DIR pairs into two UP/DOWN pairs.

Finally, I needed the objective. Apparently Mitutoyo is the best, and you really want an objective that is not likely to screw you over. Something plano (so no distortion around the edges) and apochromatic (so no to little chromatic distortion) and long working depth (because I'll want to image dies that are still in their packages, so at least 2mm). Also infinity-corrected. The Mitutoyo MPLAN APO 20x is perfect, but you [really don't want to buy one new] if you don't have to (eBay, US $800 shipped from Korea). Get one with a money-back return policy.

It's pretty huge, and luckily I had that objective adapter thing. That's why infinity-correction is important. I could whack that adapter in there and it wouldn't matter much how long it was, since the rays inside are parallel.

I later learned that the adapter is called a Mitutoyo-to-RMS adapter. RMS stands for Royal Microscopical Society, and the Olympus scopes use RMS threads, which are 0.8 inches in diameter (20.2mm). Mitutoyo objectives, however, use M26 threads, so you need an adapter: male RMS end, female Mitutoyo end. Search eBay for RMS to Mitutoyo!

Next, I need to put everything together and put a camera on it. But first, a test image. This was not taken with the 20x objective. It is a 74245 die. The reticle in the photo is from the eyepiece.

Total so far: US $3080. As I said, it's not cheap.