microPID (μPID) is a computer program for real-time proportional + integral + derivative (PID) control of a translation stage in a Fourier-transform ultraviolet spectrometer. μPID implements a PID control loop over a position profile at sampling rate of 8 kHz (sampling period 125 μs). The software runs in a stripped-down Linux operating system on a VersaModule Eurocard (VME) computer operating in real-time priority queue using an embedded controller, a 16-bit digital-to-analog converter (D/A) board, and a laser-positioning board (LPB).

μPID consists of three main parts: (1) VME device-driver routines, (2) software that administers a custom protocol for serial communication with a control computer, and (3) a loop section that obtains the current position from an LPB-driver routine, calculates the ideal position from the profile, and calculates a new voltage command by use of an embedded PID routine — all within each sampling period. The voltage command is sent to the D/A board to control the stage. μPID uses special kernel headers to obtain microsecond timing resolution. Inasmuch as μPID implements a single-threaded process and all other processes are disabled, the Linux operating system acts as a soft real-time system.

This program was written by Vahag Karayan, Stanley Sander, and Richard Cageao of Caltech for NASA's Jet Propulsion Laboratory.

This software is available for commercial licensing. Please contact Karina Edmonds of the California Institute of Technology at (626) 395-2322. Refer to NPO-41107.