UltraFast SDK's
Windows and Linux drivers


  • Supplied at no cost with each UF card
  • Windows 8, 7, Vista, XPin 32-bit or 64-bit versions
  • Susie, Redhat, Debian, Fedora and Ubuntu Linux
  • Linux source code available for different distro's
  • Free updates for product lifetime, inc. future OS releases

The UltraFast drivers consist of a set of functions to manipulate registers on the board and to transfer data from or to the board. The same driver is used for all of the UltraFast cards - making it easy to add a different card to your program at some later time.


Programming examples for .NET, Microsoft Visual C++, Borland Delphi, Microsoft Visual Basic and LabWindows/CVI are supplied with the driver. Due to the simple interface design of the driver, it is not a problem to integrate it with other programming languages or special measurement software.


In many areas Linux has proven itself as a high-quality alternative to Windows. We have seen an increasing demand for our Linux drivers from the instrumentation market.

The UltraFast cards are supplied with loadable Linux modules for most popular Linux distributions.  But we can also support less popular versions by supplying the source code of the driver module and the required makefiles. The user can then compile a perfectly matching version for their Linux installation.

Programming Example

// ----- Initialization ---------------------------------------- 
SpcInitPCIBoards (&Count, &PCIVersion);                                             // self detect PCI boards 
SpcGetParam (0, SPC_PCITYP, &Typ);                                                   

// ----- Set Parameters for Recording -------------------
SpcSetParam (0, SPC_SAMPLERATE, 100000000);                                // samplerate 100 MHz 
SpcSetParam (0, SPC_MEMSIZE, 2048);                                               // set memsize to 2k 
SpcSetParam (0, SPC_POSTTRIGGER, 1024);                                       // Set posttrigger to 1k 
SpcSetParam (0, SPC_AMP0, 1000);                                                    // input range ch 0 to 1000 mV 
SpcSetParam (0, SPC_AMP1, 1000);                                                    // input range ch 1 to 1000 mV 
SpcSetParam (0, SPC_TRIGGERMODE, TM_SOFTWARE);                      // Set trigger 

// ----- start the board -------------------------------------- 
SpcSetParam (0, SPC_COMMAND, SPC_START);                                  

// ----- wait for status ready ---------------------------------- 
do {SpcGetParam (0, SPC_STATUS, &Status);} 
    while (Status != SPC_READY); 

//----- read data --------------------------------------------- 
SpcGetData (0, 0, 0, 1024l, (dataptr) data0); SpcGetData (0, 1, 0, 1024l, (dataptr) data1);