ground. For valid measurements, the voltage on every low-voltage analog input pin, with respect to ground, must be within -0.3 to
+3.6 volts. See Appendix A for voltage limits to avoid damage.
On the U3-HV, compared to the -LV, the first four flexible I/O are fixed as analog inputs (AIN0-AIN3), and have scaling such that the
input range is a true bipolar ±10 volts normally, and -10 to +20 volts when using the “special” range. The input impedance of these
four lines is roughly 1 MΩ, which is good, but less than the normal low voltage analog inputs. Analog/digital configuration and all
other digital operations on these pins are ignored. FIO4-EIO7 are still available as flexible I/O, same as the U3-LV.
To get the special 0-3.6 volt or -10/+20 volt range, you do a differential reading with the negative channel set to 32, although the
reading is actually single-ended.
Because the scaling on the high-voltage inputs on the U3-HV (AIN0-AIN3) is inherently single-ended, a factory calibration is not
possible for differential readings. If a differential reading is requested where either channel is a high-voltage channel, the driver will
return the raw binary reading and the user must handle calibration/conversion.
The analog inputs have a QuickSample option where each conversion is done faster at the expense of increased noise. This is
enabled by passing a nonzero value for put_config special channel
LJ_chAIN_RESOLUTION
. There is also a LongSettling option
where additional settling time is added between the internal multiplexer configuration and the analog to digital conversion. This
allows signals with more source impedance, and is enabled by passing a nonzero value for put_config special channel
LJ_chAIN_SETTLING_TIME
. Both of these options are disabled by default. This applies to command/response mode only, and
the resulting typical data rates are discussed in Section 3.1. For stream mode, see Section 3.2.
Note that sinking excessive current into digital outputs can cause substantial errors in analog input readings. See Section 2.8.1.4
for more info.
2.6.1 - Channel Numbers
The LabJack U3 has up to 16 external analog inputs, plus a few internal channels. The low-level functions specify a positive and
negative channel for each analog input conversion. With the LabJackUD driver, the IOType LJ_ioGET_AIN is used for single-
ended channels only, and thus the negative channel is internally set to 31. There is an additional IOType called
LJ_ioGET_AIN_DIFF that allows the user to specify the positive and negative channel.
Positive Channel #
0-7
AIN0-AIN7 (FIO0-FIO7)
8-15
AIN8-AIN15 (EIO0-EIO7)
30
Temp Sensor
31
Vreg
Table 2.6.1-1. Positive Channel Numbers
Negative Channel #
0-7
AIN0-AIN7 (FIO0-FIO7)
8-15
AIN8-AIN15 (EIO0-EIO7)
30
Vref
31 or 199
Single-Ended
32
Special 0-3.6 or -10/+20 (UD Only)
Table 2.6.1-2 Negative Channel Numbers
Positive channel 31 puts the internal Vreg (~3.3 volts) on the positive input of the ADC. See Section 2.6.4 for information about the
internal temperature sensor.
If the negative channel is set to anything besides 31/199, the U3 does a differential conversion and returns a pseudobipolar value.
If the negative channel is set to 31/199, the U3 does a single-ended conversion and returns a unipolar value. Channel 30 puts the
internal voltage reference Vref (~2.44 volts) on the negative input of the ADC.
Channel 32 is a special negative channel supported by the LabJack UD driver. When used, the driver will actually pass 30 as the
negative channel to the U3, and when the result is returned the driver adds Vref to the value. For a low-voltage analog input this
results in a full span on the positive channel of about 0 to 4.88 volts (versus ground), but since the voltage on any analog input
cannot exceed 3.6 volts, only 75% of the converter’s range is used and the span is about 0 to 3.6 volts. For a high-voltage analog
input, channel 32 (special range) results in a span of about -10 to +20 volts.
In the U3 examples that accompany the Exodriver, u3.c also supports channel 32 in calls to eAIN().
Channel 32 is also supported in LabJackPython:
# On the U3, wire a jumper from DAC0 to FIO0, then run:
>>> import u3
>>> d = u3.U3()
>>> d.configIO(FIOAnalog = 1) # Set FIO0 to analog
>>> d.writeRegister(5000, 3) # Set DAC0 to 3 V
>>> d.getAIN(0, 32)
3.0141140941996127
For the four high-voltage channels on the U3-HV, the special channel negative channel also puts Vref on the negative. This results
in an overall range of about -10 to +20 volts on the positive input.
2.6.2 - Converting Binary Readings to Voltages
This information is only needed when using low-level functions and other ways of getting binary readings. Readings in volts already
have the calibration constants applied. The UD driver, for example, normally returns voltage readings unless binary readings are
specifically requested.
Following are the nominal input voltage ranges for the low-voltage analog inputs. This is all analog inputs on the U3-LV, and AIN4-
AIN15 on the U3-HV.
Max V
Min V
Single-Ended
2.44
0
Differential
2.44
-2.44
Special 0-3.6
3.6
0
Table 2.6.2-1. Nominal Analog Input Voltage Ranges for Low-Voltage Channels
Max V
Min V
Single-Ended
10.3
-10.3
Differential
N/A
N/A
Special -10/+20
20.1
-10.3
Table 2.6.2-2. Nominal Analog Input Voltage Ranges for High-Voltage Channels
Note that the minimum differential input voltage of -2.44 volts means that the positive channel can be as much as 2.44 volts less
than the negative channel, not that a channel can measure 2.44 volts less than ground. The voltage of any low-voltage analog input
pin, compared to ground, must be in the range -0.3 to +3.6 volts.
The “special” range (0-3.6 on low-voltage channels and -10/+20 volts on high-voltage channels) is obtained by doing a differential
measurement where the negative channel is set to the internal Vref (2.44 volts). For low-voltage channels, simply do the low-
7