Skip to main content
U.S. flag

An official website of the United States government

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

PML's Pernstich Develops Open-Source Software to Automate Test Equipment

Screenshot of the iC user interface.

Graphical user interface of Instrument Control (iC).

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).

Sample listing of text-based commands in iC.
An exemplary script that measures a diode characteristic at different temperatures using iC-specific script-commands and Python commands.

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.

Kurt Pernstich of the PML's Semiconductor and Dimensional Metrology Division
Kurt Pernstich of the PML's Semiconductor and Dimensional Metrology Division
Although the software has been freely available since August 2010, only a small community of users has discovered iC, which has been downloaded ≈100 times so far. "Releasing Instrument Control (iC) is a big stepping stone," Pernstich states. And, because iC is open-source, Pernstich fully expects the growing community of users to begin customizing it to meet their own specific needs.  "People are already beginning to want to add new functionality. The community is in the process of extending it," he explains. Early feedback on iC is encouraging, with users excited about its availability and potential. "iC" looks great," one user stated on the download site's public forum. Another user contacted Pernstich directly, stating "I tend to use older (GPIB controlled) test equipment and this allows me to create controls for that equipment."

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.

Released February 6, 2012, Updated June 19, 2018