UD Software Installers - U3, U6, UE9 | LabJack
« Close

Datasheets and User Guides

App Notes

Software & Driver


UD Software Installers - U3, U6, UE9


The UD library is the Windows library for the U3, U6, and UE9. The Exodriver is the Linux and macOS library for U3, U6 and UE9, and can also be found in the below installation packages.

After running the installer, try out the quickstart for your device:

U3 Quickstart
U6 Quickstart
UE9 Quickstart

LJM and UD Software Stack Installer Windows (Software Platform)

This is the installer for Windows Vista through Windows 11*. Support for both 32-bit and 64-bit. More details are on the Windows installer info page.

*The latest release installer was initially built and tested on Windows 10. We have performed basic operation testing on Windows 11, and there are no known issues on Windows 11 as of writing.


This installer requires an internet connection if .NET 2.0 is not already installed. To install without internet access and without having .NET 2.0 already installed, first install the Microsoft .NET Framework 3.5 Service pack 1 (Full Package). Alternatively, the Basic installer may be used without .NET. See the Example installer to create a custom installer to deploy your code in a single installer alongside LabJack dependencies.


Exodriver Native USB Mac Installer (Software Platform)

Installation package for Mac OS X for the U3, U6, UE9.

See Exodriver for installation instructions.


Exodriver Linux Installer (Software Platform)

Installation package for Linux for the U3, U6, UE9.

See Exodriver for installation instructions.


Support - LJM Installer Location Reminder

Looking for software for the T7, T4 or Digit?


How about Perl support for the UE9 ?  UE9 has a serial port-- could I run RS-232 to it and retrieve via ethernet ?

My environment is Debian Linux.  We love Perl as a test language. Python not so much.

Is LJFuse up and running for this project ?



At the moment we do not provide any Perl wrappers or interfaces for the UD devices, though I can look into that.  Currently if you want to get working in Perl you can look into using the low-level function or Modbus protocols and communicating through ethernet.  There is also the option of using LJFuse or LJSocket (both support Linux and Mac OS X), which provide a file IO or TCP socket interface which should be accessible through Perl.

To provide more information on serial communication low-level functions, refer to the sections 5.3.17 - 5.3.19 in the UE9 User's Guide.

This may seem left field, but I am working on a custom application.  I have need to access a Com Port resource that is registered in Windows as an COM asset.  Ex. the program talks to UUT through COM1.  What I would like to do is talk to UUT through ethernet as "COMX" asset, X being 3-16.  Is there "canned" installer to do such?  This would would be awesome, if not no problem I will write it myself.  The UE9 is a great little product .

Are you saying you want to use Windows COM port drivers (serial port) to communicate with a UE9?  That would require a special virtual com port driver.  We have not developed one or used one, but there might be one available that work work.

Yes, that is the jist.  I am accessing an executable that creates a "server" to the COM ports and using the Window com drivers would allow me seemless access through this software.  The end goal is to have a DAC and serial port on the ethernet bus, without having to and maintain a PC.  Its been done in industrial applications for sure, not sure if its been done like using this method.

I believe from the way Windows handles ethernet devices, as long as you can get that COM port to list itself under windows as a valid ethernet connection with valid TCP settings.  I know this is commonly done with USB -> ethernet devices, so it is possible.  I'm not aware of an existing method of doing this for a COM port but it wouldn't surprise me if there is one out there.

I like the capabilities of the LJ devices, however my programming skills need work and this is kinda my point, I'd like to see an app that you can configure the input IO channels using a drop down menu to choose the applicable function required for each channel and the ability to create a new channel and apply formula's from other channels, something like the picolog sw from picotech.


We are working on a new application, so your feedback is welcome.  I would suggest you start with LJLogUD, and let us know what it does not do for you or does not do well.  This topic does not really have to do with programming, so please continue with a comment on the LJLogUD page, a forum post, or email [email protected].  You also might consider DAQFactory.

natural log is not supported.  Pretty useful to back convert a thermistor value to temp.

Yes, sorry about that.  I was talking about the original thread.  LJLogUD does not support LN as far as I can tell.  There is the equation column where you can do some math on the reading.  Is this just basic math (+-*/) or is there more to it?  Thanks,


The LJLogUD has a link to a Scaling Equations sub-page, and on that page there is a link to a list of functions supported by the LabVIEW Formula Node.  Functions on the list designed for integers usually do not work, but functions designed for floating point numbers usually do work.  I do see natural log on the list so I just tested using y=ln(2) and get 0.69, so it does seem to work.

Is it not possible to use LJ with Matlab in Ubuntu or is it just that LJ didnt give examples of how to use it.

It should be possible to use a LabJack with MATLAB on Linux, but we have no examples for it. We currently only provide Windows MATLAB examples.

If you would like to use MATLAB in Linux, to get started take a look at the MATLAB documentation on calling functions in a shared library:


For additional helpful information, take a look at these comments:


Note that the comment is referring to Mac OS X usage, but the same applies to Linux and the Exodriver shared library file on Linux is liblabjackusb.so instead of .dylib.


sjurovich's picture

I am updating a LabVIEW project from LV 8 to LV 2015 that uses the labjackud.dll. What is the latest version of that .dll to use, or should I update to the LabJack-2015-11-19.exe shown on the website?

labjack support's picture

The latest version of the LabJackUD.dll is 3.47, and the LabJack-2015-11-19.exe (and the current beta) install that version. That version of the dll should work fine under LabVIEW 2015, and we recommend using the latest version of our drivers for the latest fixes and features.

Also, if you click on the Details of the installer download, it provides a list of of the applications and drivers along with their version numbers.

ElectroLund's picture

The C header file that is included in the UD Driver (LabJackUD.h) is very difficult to work with.  On large C projects, it's very easy to get "multiply defined symbol" compiler errors.  This is due to the header containing all the variable definitions, rather than in a source file.  The header should really only contain declarations via the extern keyword.

One workaround I've used is to convert all those definitions into mere macros:



#define LJE_NOERROR   0

But this is a huge effort and must be maintained every time you guys update your drivers.

Alternatively, with the file intact, I must be extremely careful to only include the LabJackUD.h file once ever in the entire project.

Any chance there's an alternate version available?

labjack support's picture

Currently there is no alternative version of the header file available. In our next release we are considering changing "const" to "static const" like in the newer LJM library's header file, which would help with C's "multiply defined symbol" compiler errors.

Try doing a "replace all" with "const" to "static const" in the current header file, which will be faster than replacing with "#define".

ElectroLund's picture

Yes, that is a much easier fix.  Thanks for the recommendation.  I would love if LabJack made that fix in future releases. Then, an update on my end won't break my code.


labjack support's picture

We released a new version of the UD driver, v3.51, in the latest beta installer. The header file's constants were changed to "static const" to help prevent "multiply defined symbol" errors in C.

rademacherryan's picture



I'm probably doing something wrong here but when I download the Software I recieve all the applications but the UD Libraries are missing. 

labjack support's picture

So the installer seems to run fine but then something goes wrong?  What suggests that the UD library is not installed?

Try searching your entire hard drive for labjackud.dll and see if it is found anywhere.

ElectroLund's picture

Is it just me or are the links above on this page showing:


and the details for this file show "UD Library - Version: 3.50"

labjack support's picture

The Release is still LabJack-2019-05-20.exe with UD 3.50. The new Beta is LabJack-2020-03-30-beta.exe with UD 3.51, and is below the Release download. If you are not seeing the Beta, try refreshing the page in your browser.

ElectroLund's picture

Any idea when the stable release will be updated?  

labjack support's picture

The beta release has proven to be stable so far. We'll officially move it to release at probably the end of the month.

Based on our previous conversations, note that UD v3.51 with the "constants to static const for C" update in the header file will only be available in beta installer LabJack-2020-03-30-beta.exe and it will not make a stable release. We ended up reverting that change in UD v3.52 due to backwards compatibility issues (the only change in v3.52), and that is the version that will be in the stable release. So in the future you will want to keep and use the UD v3.51 beta header file for your C code.

ElectroLund's picture

Oh, I see. That's unfortunate, but thanks for the update.  Downloading now.

ElectroLund's picture

So I downloaded the beta.  The LabJackUD.h file installed is now DRIVER_VERSION 3.52.  But all the const variables are remain non-static.  The timestamp of this file is 7/28/2020 

labjack support's picture

Yes, in 3.52 they were changed back to non-static due to compatibility issues as mentioned in my previous post. 3.51 was the only version to have the static const in the header file, and is only available in LabJack-2020-03-30-beta.exe.