Products Overview

Processor Modules

I/O Expansion Modules

Ruggedized Systems

Enclosures & Accessories


Custom Products

Board Level Solutions

System Level Solutions


Custom Ruggedization





Industrial Automation




Support Overview

Technical Resources

Contact Technical Support

Request an RMA

About Diamond Systems

The Diamond Advantage

Markets & Applications


Career Opportunities

you are not logged in:
login | signup
lost password?

Conduction Cooling for Stackable SBCs

COM-based SBC Benefits

Benefits of Autocalibration

EmbeddedXpress Form Factor

Application Articles

Train Controller
Wind Instrument
Lung Simulator
Gas Analyzer
Weapon System

Visit our Markets & Applications page.

Products   >   Software   >   DSC Universal Driver

Universal Driver Software

C-based Software Toolkit for Data Acquisition Circuits

The Diamond Systems' Universal Driver is a software toolkit that provides flexible C programming language support for most Diamond products having on-board data acquisition functions. It contains a comprehensive set of functions for controlling the analog I/O, digital I/O, counter/timer, and interrupt features of the underlying hardware.

The Universal Driver toolkit, included free with our hardware products, provides a high level C language interface for DOS, Windows, Windows CE, and Linux. Multiple libraries are provided to support each operating system. Additionally, example programs and projects are provided for use with Borland, Microsoft, and the GNU C compilers.

No other embedded computing solution vendor provides this level of software functionality for embedded data acquisition.

Key Features

Key features of Diamond's Universal Driver are described in the table below.

Multi-board Operation

Control up to 16 I/O boards simultaneously, including multiple units of the same board type.

Consistent API

The Universal Driver's command syntax is consistent from board to board and across operating systems. You can re-target your application for a different board or operating system with a minimum of re-engineering.


The Universal Driver provides full support for the advanced autocalibration features of Diamond's line of analog I/O boards. Calibrate your board as often as you want with simple software commands.

User Interrupts

Write your own interrupt routine and have it execute each time your board generates an interrupt. Your own code can run together with, or instead of, the standard interrupt routines. For example, you can provide real-time FFT calculations on analog data as it is acquired, or you can synchronize your code to run at a programmed interval or in response to an external event.

Extensive Programming Examples

Each board has its own set of example programs for most or all of the applicable functions. The programs are provided both in source code and pre-compiled for each supported operating system. The programs are extensively commented, so you can get familiar with the Universal Driver quickly. In addition, the example programs are provided with project files with all the necessary settings, so you can use it as a starting point and recompile it with a minimum of hassle.

Counter/Timer & Watchdog Support

The Universal Driver includes advanced counting/timing functions such as frequency/period measurement and pulse width modulation. It also has support for the watchdog timer circuit on our single board computers.

Low-Level Read/Write Support

The Universal Driver also provides low-level functions to enable read/write operations directly to the board registers for custom applications. This is useful in some operating systems where direct I/O access to hardware is normally prohibited.

Online Universal Driver Reference Manual

The Universal Driver is provided by Diamond Systems free of charge to owners of relevant Diamond products, and is included with every order. It may also be downloaded from the company's website. Complete details on the Universal Driver are available from Diamond's online Universal Driver Reference Manual.

Multi-board operation
Consistent API
User interrupts
Extensive programming examples
Counter/timer & watchdog support
Low-level read/write support
See Universal Driver Software Technical Resources
Request Product information
Request Technical Support
Universal Driver 6.02 Release Notes
(.pdf, 141.3 kb)
Universal Driver 6.02 for DOS
(.zip, 176.5 kb)
Universal Driver 6.02 for Windows CE
(.zip, 106.7 kb)
Universal Driver 6.02 for Windows XP
(.zip, 331.8 kb)
Universal Driver 6.02 for Linux
(.bz2, 148.7 kb)
Universal Driver 5.92.2 for Win2000/XP
(.zip, 308.4 kb)
Universal Driver 5.92.2 for Linux tarfile
(.gz, 177.2 kb)
Universal Driver 5.92.2 for DOS
(.zip, 163.4 kb)
Universal Driver 5.92 for WinCE
(.zip, 97.4 kb)