Low Level UD User's Guide
This guide provides information about the low-level functions used to control LabJack UD devices. We support a higher level interface on Windows called the UD Library, so these functions are typically only used (directly) on macOS and Linux.
USB Interface Details
USB interface information such as the device ID and which endpoints are used can be found in the USB section of your device datasheet.
Exodriver
The Exodriver library / API is used to communicate over USB with the LabJack U3, U6, UE9 and U12 in Mac OS X and Linux environments. The Exodriver provides USB functionality necessary to send and receive data for the low-level functions. See our Exodriver Downloads page for further information.
General Protocol
All low-level UD functions follow a custom protocol we made to frame command data. All Low-level functions use the command formats defined by the general protocol. See the General Protocol section for additional information.
Low-level Functions
See our definitions for the Low-level functions. These functions provide access to all available UD device functionality. All low-level functions use the command formats defined by the general protocol.
Feedback Functions
Feedback functions are special low level functions. They are used to control most functionality relevant to the device I/O such as digital I/O, analog inputs, and analog outputs. On the U6 and U3, a feedback function can combine multiple control actions into a single command by defining different control IOType
and Data
in the Data Words
section (bytes 6 and beyond) of the command frame. Similarly, the UE9 feedback function provides a mechanism to read and write most device features such as digital I/O and analog inputs in a single command. See the following sections.
U3 and U6 Feedback
UE9 Feedback
Comm Functions (UE9 only)
The UE9 has two processors, with one dedicated for handling device to host computer communications. The comm functions provide controls for the comm processor such as functions to flush the stream buffer or set the device Ethernet IP.
Error Codes
Our error codes page documents the errors that can be returned from UD devices. Note that other errors can be propogated from other interfaces. For example, USB and checksum errors from the Exodriver.
Example Code
Most of our Windows programming examples use our high-level UD library software. We recommend using the UD library if you are programming on Windows. For examples that use our low-level functions, see the entries in our UD Example Code Table that are supported on macOS and Linux.