« Close

Datasheets and User Guides

App Notes

Software & Driver


U12 Datasheet

Stock: In Stock
Price: $139.00
LabJack U12 Low Cost USB DAQ Device Picture

The original LabJack multifunction DAQ.

This datasheet covers all U12 variants:  U12, U12-PH, and U12-NTH.

These HTML pages form the complete datasheet, manual, and user's guide for the U12.  Most information in this datasheet applies to all U12 variants.  There is an OEM section with information specific to the build of PH and NTH versions.  Specifications are in Appendix A.  Windows library documentation is in Section 4.

Searching The Datasheet

To search this datasheet you can just use the search box you find on every page, and to further refine your results include "u12" or "u12 datasheet" in your search term.  To specifically restrict your search to just this datasheet, include "site:labjack.com/support/datasheets/u12" in your search term.  For more information see the main Search Page.

Navigating the Datasheet using the Table of Contents

An efficient way to browse and navigate this online datasheet is using the floating blue "Table of Contents" control shown on the left side of every support page.

Offline Datasheet

If you are looking at a PDF, hardcopy, or other downloaded offline version of this datasheet, realize that it is possibly out-of-date as the original is an online document.  Also, this datasheet is designed as online documentation, so the formatting of an offline version might be less than perfect.

To make a PDF of this entire datasheet including all child pages, click "Save as PDF" towards the bottom-right of this page.  Doing so converts these pages to a PDF on-the-fly, using the latest content, and can take 20-30 seconds.  Make sure you have a current browser (we mostly test in Firefox and Chrome) and the current version of Acrobat Reader.  If it is not working for you, rather than a normal click of "Save as PDF" do a right-click and select "Save link as" or similar.  Then wait 20-30 seconds and a dialog box will pop up asking you where to save the PDF.  Then you can open it in the real Acrobat Reader rather than embedded in a browser.

Rather than downloading, though, we encourage you to use this web-based documentation.  Some advantages:

  • We can quickly improve and update content.
  • Click-able links to further or related details throughout the online document.
  • The site search includes the datasheet, forum, and all other resources at labjack.com.  When you are looking for something try using the site search.
  • For support, try going to the applicable datasheet page and post a comment.  When appropriate we can then immediately add/change content on that page to address the question.

Periodically we use the "Save as PDF" feature to export a PDF and attach it to this page (below).




How run  Lab Jack from Matlab?

If you have a U12, start with the U12 MATLAB examples. If you have a U3, U6, or UE9, start with the Windows UD MATLAB examples.

One the menu to the left you can go to U12 Example Code and find an entry for Matlab.  Start there, and I also suggest the forum where there are numerous posts about the U12 in Matlab.


hi, guys

I am use U12-PH OEM board. installed U12SetupV121.exe. installed LV8.6 deveolpment system. use only one USB cable to connect to my computer from U12-PH. LED's action is OK.

question 1.
beginning, I can detected this board and use LJtest(all pass) and labview examples to control DO, everything is fine and works well. but now, the same USB port can not detect U12-PH, just use LJtest and show some fails and cannot control DO.
my computer have three USB ports. and then I insert second USB port, computer shows out the detect message and of course I can control U12-PH, everything is fine again. but second time insert the same USB port, and cannot detect U12-PH, just like the first USB port situation again.
so I insert the third USB port, of course it will happen again the sam situation like USB port first and second.
I used out of all USB ports and try several times to detect just only use LJtest.exe for test, so far my computer cannot control U12-PH any more. I don't know what happened.

question 2.
just confirm a situation. I insert USB to computer. my computer device manager wouldn't assign a COM port number give to U12-PH. is that correct?

I will very appreciate your reply
Best Regards

Does the problem persist when you reset the computer?  Is anything connected to the U12? 

In the device manager you should see an entry added to the Human Interface Devices section when a U12 is connected.  Sometimes right clicking on that item and selecting 'scan for hardware changes" can fix that kind of issue.

Hi - I got a labjack U12 that came with an analog HP spectrum analyzer. I've never used a labjack and not familiar with it. Looking at your U12 user's manual, I"m still not sure how to hook this up to the analyzer; although I have installed the U12SetupV121, with the spectrum analyzer turned off, ran LJTest(result: AI NC SE test failed; all others passed). Would be interested to learn how to use it.


Make sure nothing is connected, except USB, when you run LJtest.

Do you have any more detail about the signal from your spectrum analyzer?  What wires do you get from the device, what is the voltage range on those wires, and how fast does the signal vary with time?

Short of that detail, you probably connect your positive signal to AI0 and negative to GND.  Then run LJlogger and the first row should display the voltage that the U12 measures on AI0 versus GND.  This can measure from -10 to +10 volts.



I am an under grad student scientist studying agriculture. I introduce myself that way to protect myself from high level computer/electrical engineeering talk. I have studied Python programming on my own, but would say my programming skill is at the level of beginner...or just slightly better than the famous "hello world" type program or "guess a number" text based game, and that I have no idea how to talk to my USB port, or handle all the 0's and 1's that it is spewing out.

I found your products searching on the web because I have a dream of making a machine that can record historical data within a green house as well as provide automated outputs to control things like temperature, lighting, and humidity (based on the recorded historical data). After searching through your web site, I believe your devices can help me achieve this......but I was wondering if you had an "idiots guide" to the U12, or could suggest a book that would help me make more sense of the example programms you have on the website, or an introductory lab manual to walks newbies step by step through small experiments to teach key principals. I ask this because most of the programming examples you have posted on the website still look like Greek to me despite my experience looking at simple code.

I do appreciate your help with this, and look forward to learning something new which I would consider out of my current comfort zone.

Have you considered our newer device the U3?  In comparison to a U12 it is generally faster, more flexible and less expensive.  Here's a webpage comparing the two devices:  http://labjack.com/products/comparison

We have a quickstart guide on the LabJackPython webpage.  That should help with installing the LabJackPython library and provides U3 examples.  For a U12 examples, I believe we only have 1 quick one that reads AI0.  That can be found here: http://labjack.com/support/u12/examples/python

To understand the examples you should do some reading on the Python language.  Perhaps get a beginners Python book, or go to the Python website and go through their tutorials.  What is helpful is learning about importing modules and learning how classes work.  Once you get an understanding on classes looking at our examples should hopefully be less "Greek".

I will point out our classes and class methods are documented in the code.  If you are using a u3, look at the u3 class (u3.py).  For a u12, look at the u12 class (u12.py).  If you need some clarification on something after reading up on classes and the examples, feel free to ask questions on our forums or send an email to [email protected].

Does U12 come with any kind of mounting. I need to mount the U12's inside the control panel. We use U12 quite frequently but its really cumbersome to mount it inside a  control panel. DIN Rail mounting facility would really be helpful.  I am attaching an image of U12' recently used 6 of them in one panel



Panel Inside



Vihang Patil (http://www.konem.com)

Thanks for the pictures.  Our newer devices (U3/U6/UE9) have mounting options (DIN rail or screws), but the U12 does not.  We see many people use stick-on velcro.


 I want to write a programme  using ms visual c++ through a labjack u12 to send an output to a heater on a pcb and when this heater gets to a particular temperature say 25degrees,the heating should stop and a fan to start to cool this heater . how do i start this programming.




All you need to do is pick a language that you want to use and grab our examples here. From the examples you should be able to get a feel for how the interface works pretty quickly.

Hi there. this is the first time im using a labjack and i own labjack u12. Im using it for my final year project in university. my question should be simple i guess. I tried to connect a potentiometer to the labjack. I connected the extreem ends of the potentiometer to +5V and ground and plugged the 3rd wire (the whipper) to AI0. i went through the PDF tutorial examples and step by step but at the end of the day, even the existance of the potentiometer is affecting the data being plotted on the graph and table on DAQ Factory. Is there a specific port i have to connect the wires? am i using the wrong port(AI0)? when i was setting it up in DAQ Factory, under I/O type i picked "A to D (SE 0-7 ; diff 8-11) ". is this telling me where im supposed to plug the wires of the potentiometer?

Thank you


What tutorial are you referring to?

Sounds like you have done as shown in Figure 2-4 of the U12 User's Guide.  I suggest you simply run LJlogger.exe and see if the voltage measured on AI0 varies from 0-5 volts as you turn the pot.

Note that as discussed in Section 2.1 if the overall resistance of your pot is too high you will get substantial error.  A 1k pot will only have about 1% error, so I suggest you try that.

Can I connect CNT of the U12 Labjack directly to a 24V industrial encoder? Thanks.

From Appendix A of the U12 User's Guide, the maximum allowable voltage on CNT is 15 volts, so if your encoder is driving 24 volts I would add a 4.7k resistor in series to limit current into the U12.  First, though, you need to determine if you actually have an open-collector signal which is very common.  Look at Sections and of the U3 User's Guide.


Can LabJack U12 be used for control and automation or it is just more of a DAQ system? For example I want to control the A O/P by counter or A I/Ps. That is o/p is disabled if the inputs exceed their pre set limit or counter reaches its preset value. 

From the literature I have read so far, I am not sure if it can do something like I have explained.

Please advise.



The U12 provides digital input, digital outputs, analog inputs and analog outputs. There are no restrictions on the order or reason being their triggering. You host application can poll inputs and set outputs as it sees fit. So yes, the U12 can be used for control.

When i hook up the U12 to my mac it starts blinking the way it should. Then when running the example program ("analog.c") from "ljacklm" i get the error this message: Driver version: 1.200 libusb error: LIBUSB_ERROR_ACCESS U12 Firmware version: 0.000 Setting AO0 to 2.000 V and AO1 to 3.500 V. libusb error: LIBUSB_ERROR_ACCESS EAnalogOut error 3: LabJack n not found What can I do about this? Cheers!

It looks like the examples cannot access the driver in the /usr/local/lib directory with the current user logged in. Usually this directory should have read/execute permissions for all users. Here's a response from the "Linux and Mac OS X driver" page's comments that should help out :

Check your /usr/local/lib directory and make sure both the directory and the library files (libusb, liblabjackusb and libljacklm) have read and execute permissions for all users and groups. Using a terminal you can check permissions with the following commands:

ls -l /usr/local/
ls -l /usr/local/lib

Permissions should look like "drwxr-xr-x" or "-rwxr-xr-x". To change the permissions in a terminal use the chmod command on the directory and files you want to change. For example, to add read and execute permissions to the /usr/local/lib directory for all users and groups use this command:

sudo chmod a+rx /usr/local/lib

Thanks for your fast answer. I do have all the permissions right, I think:


drwxr-xr-x  4 root  wheel     136 12 Mai  2012 ImageMagick-6.7.6

-rwxr-xr-x  1 root  wheel   31156 11 Feb 16:33 liblabjackusb.dylib

-rwxr-xr-x  1 root  wheel  104104 11 Feb 16:16 libljacklm.dylib

-rwxr-xr-x  1 root  wheel   87776 11 Feb 15:58 libusb-1.0.0.dylib

-rwxr-xr-x  1 root  wheel  309192 11 Feb 15:58 libusb-1.0.a

lrwxr-xr-x  1 root  wheel      18 11 Feb 15:58 libusb-1.0.dylib -> libusb-1.0.0.dylib

-rwxr-xr-x  1 root  wheel     936 11 Feb 15:58 libusb-1.0.la

drwxr-xr-x  3 root  wheel     102 11 Feb 15:58 pkgconfig

Maybe it's because of the symbolic link?


The files look fine permission-wise.  What are the permissions of the /usr/local/lib directory?  It needs to have "drwxr-xr-x" permissions as well.  You can check that with "ls -l /usr/local/".

Sorry I hadn't mentioned this earlier. Yes the permission for the /usr/local/ is correct.  I still get the same error message.

Try reinstalling with the installer then and follow this note on the Exodriver's page:

Use the “Customize install” option of the pre-built installer to add the LabJackHID kernel extension. This is a null kernel extension which prevents the OS’s HID driver from claiming a LabJack HID device. This is only required by U12 devices, otherwise it does not need to be installed.

Also, power cycle your U12 afterwards just in case.

Did someone fix this error?


>>> import u12

>>> d = u12.U12()


Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/Library/Python/2.7/site-packages/u12.py", line 408, in __init__

    self.open(id, serialNumber)

  File "/Library/Python/2.7/site-packages/u12.py", line 475, in open

    raise Exception("Couldn't open a U12. Check that one is connected and try again.")

Exception: Couldn't open a U12. Check that one is connected and try again.


I tried to set permissions, uninstalled/installed libusb, built it from source but no help. Can anybody help me with this error? Using Mac OS X 10.8.3 and also tried it on 10.7. Python version is 2.7.

Install Exodriver and the LabJackHID kernel extension from the latest Mac installer I uploaded today:


OS X 10.8 broke the LabJackHID kernel extension, but that is fixed now. That is probably the cause of your problem. 

It is working now, no errors. Thank you very much!



How can I synchronize the signals and the collection frequency of AI 0. The signals I would like to collect are controlled by a clock signal ( the frequecy is about 1kHz). 

The UE9 (and perhaps the T7 in the future) supports external clocking for stream mode.  The U3 does not support external clocking, but it can stream much faster than the U12, so perhaps you could stream the external clock and AIN0 at 25 kscans/second, and then in software do the processing to keep the AIN0 readings when you see the desired clock edge.


I connect a pressure transducer to the LabJack U12, but I have to much noise. May you tell me how can I reduce that?
If it's necessary to buy another LabJack model, please indicate the better model.

Pressure transducer specifications:

Excitation: 5 Vdc @15 mA

Output: 10 mV typical @ 5 Vdc

Sensitivity: 2 mV/V nominal

Input Impedance: 350 Ω min

Output Resistance: 350 Ω min

Insulation Resistance: 5 MΩ @ 75 Vdc

Accuracy: ±1% FS

(linearity and hysteresis combined)

Repeatability: ±0.1% FS

Zero Balance: ±3% FS

Operating Temperature Range: -54 to 121°C (-65 to 250°F)

Compensated Temperature Range: 16 to 71°C (60 to 160°F)

Thermal Zero Effect: <±0.018% full scale/°C

Thermal Sensitivity Effect: ±0.036% reading/°C

Proof Pressure: 150% range

Burst Pressure: 400% range



Your pressure transducer is a raw bridge circuit.  To measure it with the U12, you will need an EI-1040 amplifier.


The best devices to use with bridge circuits are the U6/U6-Pro or T7/T7-Pro.  They can connect to bridge circuits directly without needing an external amplifier.


I have 3 labjacks and i want to stream analog data from all 3 labjacks, simultaneously.

I have assigned 3 different device ids to these labjacks.

But when i run the labview app it then only one labjack sampled at a time.

I am using three sequential structure for each labjack and they are placed to work in parallel.

With the U12 driver, stream mode can only be used on 1 device at a time.  You will have to use command-response mode to acquire data from multiple U12s, or move to one of our newer devices.  For example, with a U6/T7 and Mux80 you can stream up to 84 analog inputs from a single device.

I am using Labjack U12 connected to a Solx2000 solenoid testing machine via the usb port. I get erratic measurements when using a Dell or HP PC running Windows XP.  If I use a Gateway laptop, it works just fine. I would like for it to work on a PC in the shop. What can I do to make this happen?

The U12 is supported on XP.  To get into details and troubleshoot your particular application I suggest you start a forum topic.  Include information about exactly what software you are using and what sort of trouble you see.  Also, does the behavior change if nothing is connected to the U12 except for USB?

I have a labjack U12 OEM

Is it possible to measure a value from a trasducer which has 0-10V as output?

Can i connect the output directly on AI0?

Transducer will be powered externally and i'll connect together GND of labjack and 0V of trasducer  

Sounds like you are asking about the current sourcing limit for the analog outputs.  See Appendix A.  The limit is 30 mA per analog output, and in addition you must consider that each output has 20 ohms of source impedance.


I have a U12 to measure amplified signals from a sensor and get problems with noise. So, when there is static state (no force on the sensor) the amplifier offers a signal about 12,8 mV (+-) AC (voltmeter). When I connect the signal line of the amplifier with Labjack A0 I measure about 80 mV AC with a frequency of 50 1/s. How could that difference be explained? When my amplified signal is about 250 mV (measured by U12) the 50 1/s noise is gone and the signal becomes more realistic. How can I fix this?

Thanks a lot

A voltmeter is not a good way to measure noise.  An oscilloscope sometimes works, but even then there are so many factors it is a difficult measurement.

To see the noise level of the U12 itself, remove your signals and instead just jumper the channel of interest to GND.  If you see a noise level much lower than when your signal is connected, we can then help you troubleshoot why your signal is noisy.  I suggest you start a post on our forum to get into those details, and you can start by posting a link to technical details for your amp and a listing of all connections between the amp and the U12 and the amp and your sensor.