A free, easily customizable software program for automating test equipment via GPIB or RS232 bus may sound too good to be true, especially for smaller companies, graduate students, and hobbyists or for day-to-day laboratory work. But that's exactly what Kurt Pernstich of the PML's Semiconductor and Dimensional Metrology Division has created.
Instrument Control (iC) is an open-source software program that can perform many of the same functions as the widely used licensed software systems currently available. iC has the added benefit of being easily extended, with users able to define new commands in simple text files; no programming knowledge is required. Pernstich has made iC available on-line, and a full description of the software will be published in an upcoming issue of the Journal of Research of NIST.
In the research, development, and production community, virtually everyone uses some type of data-acquisition software because measurements are made faster—measuring 10 datapoints manually can take longer than 200 using data-acquisition software—and can be performed while the researcher is back at his/her desk or home for the weekend. In short, data-acquisition software is essential in today's laboratories, and the availability of a free version of a customizable program could be a tremendous benefit.
The origin of iC can be traced to an earlier, less refined and non-customizable, version of the software that Pernstich created while attending graduate school at ETH Zurich. Wanting an inexpensive and easy-to-program alternative to the commonly used data acquisition software systems, Pernstich built his own software to help carry out his research. Although the coding in iC is completely different from the original program, the knowledge gained from the earlier program was invaluable. "I saw the shortcomings of the old software and turned them into advantages in the new," Pernstich says.
In its current form, Instrument Control (iC) is an open-source Java program that processes a series of text-based commands that define the measurement sequence of an experiment (see Listing below). For example, a researcher using iC can have the temperature of a sample automatically adjusted, a measurement taken, and the cycle repeated for various other temperatures. While these are very routine tasks for any data-acquisition software, iC is unique in that the researcher can add new commands to the sequence by simply inserting another line in the script. A graphical user interface (see Figure Above) helps the user to build these scripts, but any text editor will suffice. Besides iC-specific script-commands, the integrated support for the Python programming language complements iC's scripting capabilities (see Listing below).
A distinguishing feature of Instrument Control (iC) is the possibility of writing drivers for new pieces of equipment with no programming at all: "By just adding a line in a text file, you can add support for a piece of equipment," Pernstich explains. Because iC is open-source, the user has full control over every aspect of the program, and "extending the functionality of iC in Java is kept very easy and this process is well described in the documentation accompanying iC," Pernstich states. To round out the program, the open-source software package JFreeChart is integrated into iC, making it very easy to display and save data in high-quality graphs. iC also integrates Apache's Common Math package for advanced data manipulations such as Spline interpolation of data points, statistical analysis, numerical integration, and much more.
Pernstich uses iC in his own laboratory at NIST on a regular basis, currently developing a platform to measure thermo-magneto-electrical properties of thermoelectric materials and carbon-based semiconductors. He plans to continue enhancing the software and releasing new updates as his research—and the iC community—demands. "For the moment, I don't see an end to that," he says of continuing to update iC. "I will keep adding the drivers that I need personally. I plan to continually use it."
Now, everyone else can too.