Image Thief

A Digital Capture System for Scanning Electron Microscopy (or other Slow-Scan Video)

Note: ImageThief was developed in the mid/late 90's. Much has changed. DOS and DMA cards are mostly history. It should be possible to port this to a USB interface and some development is in progress to this end. See note.

Download ZipFile of code, schematics, and notes.

Image Thief is a "passive-mode" image capture system that digitizes and captures to the computer a slow-scan image in route to the standard Polaroid camera system. It was developed for the JEOL JSM-5400 scanning electron microscope, but it is a versatile design that should be easily adaptable for similar image systems on other makes and models of microscopes.

Sample Images:

Passive-mode capture means that the microscope completely controls the scan, using whatever parameters of scan speed and exposure are set by the user at the console. A slow-scan of the sample is typically used in photography, and this "Slow-scan" signal is sent to the Polaroid camera along with horizontal and vertical timing signals. The "Image Thief" non-intrusively taps these signals to collect the image: 8 bit data, written to file as a TIFF image. On the JEOL JSM-5400, the High Resolution Photo Mode ('>') scans approximately 1440 lines per field, and this is digitized at 1920 pixels per line to provide proper aspect in the image. By using the exposure setting mode of the microscope, the "standard" exposure setting is repeatably achieved, and this is matched to the input range of the data convertor so that the 8-bit data range is fully and optimally used.

The system consists of a small circuit board ("SEM interface card") that is placed in the microscope console. This board provides a high-impedance analog input to an amplifier system that buffers, offsets, and amplifies the slow-scan-video (SSV) signal so that it matches the input range of the Analog-to-Digital (A/D) convertor. The board also inputs and buffers the Horizontal and Vertical Blanking signals from the microscope. The digital signals function both directly on the circuit board and also at the Direct Memory Access (DMA) board in the computer. The DMA board has a 0.1 microsecond resolution pixel clock time base. This is programmed appropriately as the pixel clock, and this signal, gated by the Horizontal Unblank interval, triggers pixel conversions and the generation of the DMA transfer following conversion. The DMA board, and the system board DMA registers are programmed to point the transfers to a data buffer. The Horizontal Blanking signal at the end of each line gates the pixel clock off and generates an interrupt in the computer. The computer interrupt routine resets the DMA parameters, points the DMA destination to an alternate buffer, and sets a flag for the (interrupted) main routine. The main routine, finding the flag set initiates the transfer of the full data buffer to an XMS block. If the horizontal blanking should end (starting the next line) the pixel clock is again automatically "un-gated" and DMA transfers will occur with no program attention, allowing the XMS transfer of data from the first buffer to complete even as the "other" buffer is being filled with new data. The DMA process essentially allows the computer to use the horizontal blanking time and all of the next line time (60ms) to complete the XMS transfer. This is necessary since the image size exceeds the real memory available under DOS.

Image Thief runs on a "PC" with MS-DOS 6.22. It is a DOS-mode program, but also runs nicely under Windows 3.1x by using a 'PIF' to tell Windows what resources are required. It should be possible to run it from Win95/98 also (although I have not actually done this yet). Image Thief requires an XMS allocation of 2.8Mb for the collection of 1920x1440 pixel images. It uses INTR5 during execution, restoring the previous vector following execution. It requires about 128kb of free memory (regular memory, in the lower 640Kb) to function: although the program is only about 22kb in size, it needs an even segment boundary because of the way the DMA buffers are allocated. This memory requirement is not usually a problem.

Image Thief is not an image viewer although this could be added. It simply "steals" an image, saves as TIFF, and lets you use another program; several good freeware/shareware programs exist to view or edit your image. Considerable effort was made to make the TIFF images fully compliant with the TIFF 5.0 standards. They can be imported into Microsoft Word for Windows 6.0 for example. ImageJ and other applications have no trouble reading the images.

The JEOL JSM-5400 has "Option" connectors already in place that are probably unused on systems without digital imaging accessories added. Even if these connectors are used, they could be "tapped" since the "Image Thief" provides negligible circuit loading. These connections provide the Slow-Scan video and timing signals.

The "Image Thief" program is a DOS-mode program for "passive-mode" image capture from the JEOL 5X00 series instruments. It can be run from the DOS command prompt or launched via it's icon and PIF file from Windows. It is expected that running from Windows will normally be used to allow access to more user-friendly programs to view and edit the images that have been captured by Image Thief.

It is my intention that the information for this application should be available to the public at "no charge". I am not in a position to support this as a product although I will continue to work on improvements as time allows, and make any enhancements available. Persons or companies that provide "value-added" service by providing turn-key systems, setup or installations are providing services that the user can expect to pay for. By making the concepts and technology public, I hope that there will be sufficient competition to keep the prices reasonable for those who need these services. For those who can do the installations themselves, the costs can be minimal. I urge anyone who enhances the performance or finds and corrects problems with my method to share the information with the microscopy community.

The SEM interface card and a DMA cable, items not available off-the-shelf, are a dilemma for me. These items are relativley low-tech and could be easily produced by a competent small electronics shop: I built the prototype using point-to-point wiring in a cellar workshop. A simple printed circuit board would be a big heIp. I am not sure what time I will have available to work on this.

This is but one method for getting the image into a computer. It should be possible to use the parallel port of recent vintage PCs, in EPP mode (as used by parallel port ZIP drives), to move the image data into the computer. This approach would require shifting a few of the functions from the DMA card to the SEM interface card, but would eliminate the requirement for the DMA card.

Note added 2008 02 16: Since this project (mid-to-late 90's), the world moves on and it now seems that USB is the most portable way to extend this interface. There are now some chips available that will make this a much simpler thing to do. The FTDI FT245R chip handles much of the USB interface for you and the manufacturer supplies drivers for the operating system side of things. The interface at the SEM would have to be changed to include a microcontroller to sort out the frame timing signals and generate a pixel clock. With a small modification, the MAX165 A/D converter will directly interface to the FT245R FIFO interface signals. This leaves the PC with only the task of sending a command byte (for acquire_hi_resolution, or acquire_lo_resolution, etc.) and then it reads the returned data from the “port” created by the supplied driver code (there are a couple of driver methods supplied...), writing it to a file, displaying, etc.

Please contact me if you are interested in this application. Please use "ImageThief" in the Subject line.

Dale Callaham