U3 Quickstart Tutorial | LabJack
« Close

Datasheets and User Guides

App Notes

Software & Driver


U3 Quickstart Tutorial

U3 Quickstart for Windows Overview

1. Install the appropriate LabJack driver and software bundle.
The utility application referenced in the following steps (LJControlPanel) is only available in the Windows Installer. The package for Linux and Mac will allow communication to the U3, but no similar application is available for Mac and Linux at this time.

The installer covers UD devices (U3, U6, UE9) and LJM devices (T-series, Digit), so not all installed applications will work with the U3.  The following applications work with the U3:

  • LJControlPanel,
  • LJSelfUpgrade,
  • LJLogUD, and
  • LJStreamUD.

Only run 1 application at a time.

If there is an installation problem, see the Windows Installer Troubleshooting (App Note)

2. Connect the U3 to the computer or hub.
The status LED should blink at power up and then stay solid on. If Windows asks about installing new hardware accept the defaults.
3. Run LJControlPanel.
LJControlPanel is a free application installed along with the driver. You should be able to find it in the Start Menu links.
4. Click "Find Devices".
5. Select the connection (i.e. "USB - 1").
The right hand side of the screen will change.
6. Click "Test".
 This brings up the test panel where you can read all inputs and write all outputs. This test panel is a great tool to use often and lets you check out basic hardware operation before trying more complex software.
7. Connect jumper wire from DAC0 to AIN0/FIO0.

DAC stands for "Digital to Analog Converter", AIN stands for "Analog Input", FIO stands for "Flexible I/O". On the U3, Flexible I/O lines can be configured as either analog inputs, or digital I/O.

For a guaranteed valid connection, a conductor must be clamped in the screw-terminal, not just touching some part of the screw-terminal.

8. Control Panel will read the voltage level of AIN0.
Adjust the DAC0 analog output voltage, you will see AIN0 follow DAC0 if the jumper wire is secured.
9. Connect one end of the jumper wire to GND, touching the other end inside the FIO4 terminal.
GND stands for Ground. Try connecting and disconnecting the FIO4 end of the jumper wire.
10. Control Panel will read the digital input as changing.
The FIO4 checkbox will change from selected to unselected showing that there is a voltage change.

Moving forward from here...

Basic Functionality Examples:

Software Options:

See the U3 Software Options.

Getting Support:





This landing page could really do with having some information added for Linux and OS X users - you guys have great "other" OS support yet a first time user can't see that on this page at all!

We are not ready to make a quickstart for Mac & Linux yet (we are refining some things so that makes sense), but I did add some useful links to the top of this page to at least point in the right direction.

i need to write a sequence that will use time in programming an output based on input and time intervals

What OS and language are you wanting to use?  Your best bet is probably to post on the appropriate board of the LabJack forum, or if you are asking about DAQFactory scripting post on the Azeotech forum.


I can't seem to find the installed library drivers for labview. I had no problem installing a U12, but now with a U3, I can't see the sub vi's for controlling the U3 under LabView's addons. Does anyone have any idea why those weren't installed or how to put them in the right place if they are installed elsewhere?

Did you see the related info in the readme file in the LabVIEW_LJUD archive?  If not, see if that helps.

please how do i use my labjack to read input voltage more than 2.44V may be up to 10V

The U3-HV has 4 high-voltage channels that have a range of +/-10 volts or +20/-10 volts.  For low-voltage channels on a U3, a good solution is the LJTick-Divider.  See Section of the U3 User's Guide.

>>> import u3
<class 'LabJackPython.LabJackException'>: Could not load labjackud driver. Ethernet connectivity availability only.

I get this when I try to import u3.

It works fine in LJControlPanel.

Any Ideas?


My first guess would be that the version of Python and UD driver are not both 32-bits or 64-bits on your computer.  They both need to match up or else Python will not search in the correct directory for the UD driver and there will be conflicts in general.  On the UD driver's page there are downloads for both 32 and 64-bit versions of the driver.

Let us know if this does not help resolve the issue.

Hi, is there an easy in house option to have 0-10V analog output?

You can buy the LJTick-DAC.  Also see Section of the U3 User's Guide.

We have a Labjack U3-Lv. How can we measure +/- 12v with this device? We tried but we measured 2.44v every trying.

I would start by looking at Section of the U3 User's Guide and the LJTick-Divider datasheet.  If you use your own voltage divider without a buffer, keep the resistors to 10k or less (or 200k if you use LongSettling).  If you go with the LJTD, you could get the stock UNI10V version (attenuates 14V down to 3.5V) and use the 0-3.6V special range on the U3-LV.  Or you get the custom LJTD-UNI21V which attenuates 20.5V down to 2.5V.

Is it possible to connect the U3 to a router for wireless data acquisition?

You need to convert USB to Ethernet, using a USB Server (also called USB over IP device), then the Ethernet can connect to a normal WiFi router, access point, or bridge.  Or use something like the SX-2000WG which is a USB hub with a WiFi link.  See the USB via other app note.

How would I approach hooking up a camera to the labjack?  The camera in question is a Marlin AVT F033b.  Once hooked up how would I get the LJ software to recognize the camera hardware?


Are you wanting to just send some control commands to the camera, or actually try to acquire an image from the camera?  Does you camera have some sort of serial interface?  I would continue this discussion on the LabJack Forum.


The camera is actually just one part of the project.  I need the LabJack to generate an arbitrary waveform (say a 10Hz triangle wave with 10V peak-peak).  Is this possible?  

I'm also trying to syncrhonize the camera's acquisition with this waveform such that the camera captures a picture at the rise edge of the Labjack output.  

I'm extremely new to LabJack as well.  Thanks!


See the Waveform Generation App Note.  You can get enough updates from a DAC on the U3 to make a 0-5V triangle wave, but with the 16Hz filter I suspect it will wind up a little rounded looking.

If there is some sort of signal the U3 can send to tell your camera to capture an image, then sending that signal at any point of the waveform should be no problem (depending on the nature of the signal that needs to be sent).

To get into more details about this particular application, I would use the LabJack Forum, rather than page comments here.

Hi all, 

I'm developing with a labjack U3-HV and profilab expert 4 a software to control my home brewing system. Now i have a 4-20 mA thermocouple that intercept the wort temperature. If the wort Temp is lower than the input set temp for that step open an electrovalve that heat the wort with vapour. The electrovalve is driven (in my plan) by theLJTick-RelayDriver Datasheet. I have connected the relais driver to FIO6/7 and would like to replicate the connections according to Figure 4 of the relais datasheet.

Now if i connect VS+Ra to positive and GND to negative i should get a switch closed/open according to the state of FIO6 (correct?)
The problem is that if i apply a+5V or 0V to the FIO6  nothing change. How can i turn "output-high" to close the switch?

So you have a 5 volt relay?  Can you provide a link to technical details for it?

I don't follow your description of the connections.  Figure 4 shows VS to the positive of the relay, negative of the relay to RA, and GNDR to GND (plus the optional VS to VR connection that you should add later).

Use the test panel in LJControlPanel to test operation.  Set the line to output-high to activate the relay, and set the line to output-low to disable the relay.

To continue this topic, please post on the LJTRD datasheet or on our forum.


I want a very low bandwidth approach to reading 16 AI Channels from the U3.  This need results from the fact that my customer wants to use a USB cable length that is more than 10 feet, so the signal degrades and I get errors.   Is there a way to setup the U3 to asynchronously spit out voltage levels of data once every second?  If not, what method is the lowest overhead approach to getting data from 16 channels once or twice a second?  Thanks, Brad  480-489-4111

USB spec says that cables to 5m are fine.

Whether you collect data every 10 milliseconds, or every 10 seconds, the data is still transferred at 12 Mb/s.  The difference is how much idle time there is between transfers.

If you are having trouble collecting data once per second for a long period of time, I suggest you start a discussion on our forum.

Hello I am using the U3 and want to power a relay with DAC0, what is the max mA the U3 will put out at 3V? The relay I have will not switch, I guess because its not getting enough current, the voltage drops from 3V to 0.9V. I'll have to find a different relay but need to know the max current.

Section has great information about controlling relays.  Also see note #13 and the related DIO specs in Appendix A.  For the DAC it is specified as having a short-circuit current of 45mA, but the more important spec is the 50 ohms of source impedance which tells you how much voltage you will lose as you draw more current.

Hi everybody. I'm a PLC programmer. I've installed a industrial machine controlled by a PLC Siemens S7-200 and now, my customer wants to get acquisition data from the PLC. This morning he gave me a Labjack U3-LV to do the acquisition data. He told me that they used this device in the past for acquisition data from PLCs. As I knew nothing about this device, I've been looking for information about it. It's important to tell that this is the first time I see this device, but I think it is impossible to do acquisition data from a PLC with Labjack U3, Am I on the right? My apologies if this is a silly question.

I think that's a fairly complicated question. The answer will depend on what data you want to collect and what data interfaces have been set up on the PLC.

The U3 is capable of asynchronous and synchronous serial communication so if the PLC will serially output data the U3 should be able to read that. Or if you simply want to monitor some analog or digital lines the U3 should be able to handle that as well.


I wonder what the recommended range for temperature and humidity for the U3 is


From Appendix A of the U3 User's Guide the operating temperature range is -40 to +85 degrees C.  Any humidty is fine but you can't have condensation.

Hello friends,

i'm using Labjack U3 LV for a project at university in germany. I use it as a counter for an interferometer. I hope you know what i mean?

I take the FIO4 and FIO5 inputs and GND and connect them to my interferometer ("Euchner" Laser interferometer).

I operate the Labjack with Matlab 2010 or 2011b. It run's an shows the distance, who has been measured. For example: "188987nm" (it run's only in 16nm steps)

My problem is: to reset the counter i need to close the matlab-display-window and open it again.

I think it's possible to do this with a Matlab command and one of the FIO6 or FIO7 inputs. I tried that, but it didn't run's.

Maybe you've an idea?

If you want to see my matlab programming, i will sent it to you by email.

Thank you for helping,

best regards, George



Section 4.3.6 of the U3 User's Guide would be a good place for this discussion.  At the end of that page the pseudocode shows a command to reset the counter value.


       Anyone pls help me to connect my LABJACK U3 with my system which has LABVIEW. Pls give the connection procedures.

If you search labjack.com for "labview", you should find the LabVIEW Examples (Windows UD) page.  See steps 1-6 on that page.

Is there a simple LabView virtual instrument already created for the U3 that will allow me to stream in analog data from only one channel of the U3? Looking at the front panel of the vi called "U3 Stream Simple Example.vi" I can see a Scan list, but no matter what values I select for those 4 numeric settings, the program always seems to sample all 4 analog inputs. Any instructions on how to make the program sample only 1 analog input? Thanks.

Some LabVIEW examples have a control to specify how many channels to stream, while others such as "U3 Stream Simple Example.vi" just look at how many elements are in the scan list array.  The array "Scan List (+)" has 4 elements by default so remove some elements to scan less channels.  If you are not real familiar with arrays in LabVIEW, see the tips on the front panel of "U3 easy Stream Example.vi".

Is there a method (in terms of code) to check the status of the device? Whether the device is on/off or something like that?

My PC is Win 7 system and I'm using labjackud.lib to control the labjack in C++ program.

My question is: does Labjack support multi-labjack control?  Multi-labjack means I connect two labjack through USB cable to my Win7 PC. They both show up in the windows device manager. But it looks I can only control (for example, power on/off) one Labjack. Can I control two Labjack? And how to do that?

Thank you!


Yes you can talk to multiple U3s.  See Section 4.3.1 of the U3 User's Guide.

hello all,

It`s possible to use the LabJack U3-HV autonomoic, without a PC?

Thanks in advance.

No, the U3 does not do anything without a host talking to it.  If you are comfortable with Linux, you can use a Raspberry Pi with the U3 for an autonomous system.

hi i need know about u3-hv lab jack support android drivers or u have sample program for android 

We do not have any Android support at this time.  The best option for Android right now is to use the UE9 or T7, as you can speak to them directly using Modbus TCP over Ethernet or WiFi, and no driver or library is needed.  You just need to be able to write and read TCP packets.

Can the U3 or U6 be set up as a pulse generator with selectable On time and Off times? The On time range is from .5 microseconds to 1800 microseconds, the Off time range about the same.



Perhaps PWM output would do what you want.  With PWM output you configure the frequency/period of the rectangular waveform output, and then by specifying the duty cycle you are controlling the on and off time.  Here are links to 16-bit PWM and 8-bit PWM from the U6 User's Guide.  You can do similar on the U3, U6, UE9, and T7, but note that on the U3 the clock is only 1.5% accurate, whereas the other devices use a quartz based clock and are 30 ppm or better.

Hi Giuys,

I'm new to LabJack - my simple requirements are to produce a single TTL out put from , say FI06, for which in MatLab I have:


ljud_LoadDriver; % Loads LabJack UD Function Library

ljud_Constants; % Loads LabJack UD constant file

[Error1 ljHandle] = ljud_OpenLabJack(LJ_dtU3,LJ_ctUSB,'1',1); % Returns ljHandle for open LabJack

Error_Message(Error1); % Check for and display any Errors


Error2 = ljud_ePut(ljHandle,LJ_ioPUT_DIGITAL_BIT,6,0,0); % set to 0V



Error3 = ljud_ePut(ljHandle,LJ_ioPUT_DIGITAL_BIT,6,1,0); % Raise FI06 to nominal 5V

Error4 = ljud_ePut(ljHandle,LJ_ioPUT_DIGITAL_BIT,6,0,0); % Lower FI06 to nominal 0V


How do I control the pulse duration? Is there are more elegant way to do this (its timing critical, to be sent with a screen refresh command) and finally, how do I extend this code (or an improved version) to send strobed words?





Here are a few methods.  To get into more detail I suggest you post on our forum.

1.  Software timing.  Toggle line ... software delay ... toggle line.  This is what you are doing, except you need to add some sort of matlab command to pause or delay the desired time.  The limitation is the command-response times over USB, as shown in Section 3.1 of the U3 User's Guide, so I would say the resolution of this method will be 1 ms at best and you should expect jitter of at least +/-1ms.

2.  Single packet with WAIT iotype, as mentioned in Section 4.3.14.

3.  PWM output, perhaps using a stop timer if you only want 1 pulse.  See Sections,, and


We are using LabJack to connect to harddisk to control the power on or off, and before we only using one harddisk and one LabJack connected, there is no issue as there is only one labjack to match one drive, but now we need to add 2 more harddisks and 2 labjacks, and using ListAll we can see all 3 labjacks information like serial numbers, but how do I know which labjack to connect which harddisk?



Take a look at Section 4.3.1 of the U3 User's Guide.  At the end of that section it talks about opening multiple devices.  If you need further help, post a comment there or start a topic on our forum to get into more details.

I saw that this device supports the SPI interface.  I am seeking a depth gauge that has an interface the U3 and its software can understand. 

I am guessing that the letters "SPI" refer to "Swiss Precision Instruments".  And I can find dial indicator depth gauges from SPI that have digital outputs.  However, the information pages from the sources always refers to the data as being "SPC".  Here is one of them;


Is this compatible with your "SPI" input format?