Megapixel images from an analog SEM
I recently posted my first batch of photos from Milly. While I am happy with her beam performance, I was dissatisfied with the digital photo quality.
The inset NTSC image was taken with a USB frame grabber on the CRT port. The bigger image was taken not with a $1k data acquisition module, but with an audio cable, a resistor, and a sound card.
Milly is a JEOL JSM-6320F, an instrument from another era. That F is important. It means she uses a field emission gun rather than a thermionic filament (like Meryl). This gives you significantly more control over the beam current, and ultimately, brighter pictures at deeper magnification.
But Milly is predominantly an analog device. While she sports “digital storage”, the on-board memory can only hold four frames, which are lost when the scope is powered off. There is a SCSI option for a 30MB hard drive, but I haven’t had any luck getting it to recognize a drive. According to one forum post I found from 1993, the files would be in an “obscure and difficult” format even if I could read them.
So to get digital photos from her, I could either take crappy pictures of the screen, or put a cheap NTSC frame grabber on her CRT mirror port (tip of the hat to Glen MacDonald from that same post for pointing out which port to use!) This makes taking photos really easy, but it limits the resolution to NTSC (about 500 lines).
At first I took the second route, and ended up with a bunch of pretty (but tiny) screen captures. There had to be a better way.
Her intended output device is a Polaroid camera attached to a CRT. You put in a sheet of film and set the scope to do a time exposure, and it scans the film one line at a time. The Polaroid adapter is the little black box on the right of the main console:
Even if I could find the proper film, I would end up with a useless hard copy. I would then need to scan it right back in so I can share it online. That way lies madness.
While the NTSC frame grabber can’t cope with the signal on the photo CRT, I could always sample it with a ”scientific” data acquisition device. These modules are designed to minimize latency and artifacts, to produce the most accurate possible representation. This is critical for manufacturing and scientific applications, where a difference of a few nanometers can make or break a project. But if I just want nicer photos, the cost of these beasts ($1k and up) is out of the question.
According to the manual, the film is scanned at up to 1940 lines of resolution, in a programmable period of up to 320 seconds. What would it take to sample that directly, assuming a 4:3 aspect ratio? Let’s do some pixel math:
1940 lines * 4/3 = 2587 pixels wide 1940 * 2587 * 1/320 fps = 15,684 pixels/second
Only 15.6 kHz? Really? A sound card can sample that a couple of times over at 24 bpp without breaking a sweat. Contrast that with NTSC and its 30 Hz refresh rate:
525 lines * 4/3 = 700 pixels wide 525 * 700 * 30 fps = 11,025,000 pixels/second
Even though it’s a much smaller frame, the 30 Hz refresh rate pushes the pixel clock up over 11 MHz. No way a sound card can keep up with that, which is why faster ADCs exist for video sampling.
So I dug into the old box of audio cables and found a 3.5mm to RCA cable. I had a bunch left over from my bullet time camera rig project (one came free with each camera).
I connected the photo signal to the left channel and the horizontal sync signal to the right. I also added a couple of high-value resistors to limit the current and hopefully avoid damaging the scope. Then I hit the PHOTO button, and made a WAV file recording at 48 kHz.
I ended up with a 50MB WAV file full of data.