« Close

Datasheets and User Guides

App Notes

Software & Driver


Mux80 AIN Expansion Board Datasheet

Mux80 Overview

The Mux80 AIN Expansion Board serves to provide an additional 80 analog inputs to any compatible LabJack.  It uses 10 multiplexer chips connected to AIN4-AIN13, and splits each channel into 8 additional channels.  When a specific extended analog input channel is read on a U6, UE9 or T7, the digital output MIO lines are automatically set, and the correct analog channel is read.  The Mux80 has a built-in DC-DC converter which provides the upper and lower rail voltages necessary for powering the multiplexer chips.

Three vertical DB37 connectors provide an easy interface to connect 24 AIN channels each. The remaining connector brings out unused connections (FIO, DAC, etc) from the LabJack, along with the last 8 AIN channels. There are a total of 84 available analog inputs when used in conjunction with a U6, UE9 or T7.

For screw-terminal access simply connect a CB37 Terminal Board, and reference the chart printed at the top of the Mux80 for connections. 


  • 80 Multiplexed Channels (or 40 Differential Pairs)
  • Built-In DC-DC Converter
  • OEM Capability
  • Easy-To-Use High Density Connectors
  • Snaptrack/DIN-rail compatible, with TE Connectivity P/N TKAD




    Connection Options

    The Mux80 can be connected several ways.  The images below demonstrate use with the CB37 Terminal Board, and several 3ft DB37 Cables.


    When connected to a CB37, there is a quick way to determine which screw terminals can be used as analog inputs; reference the chart printed on the top of the Mux80, also shown below for reference.

    Table 1. CB37 to MUX80 connection chart

    CB37 Labels X2 X3 X4 X5
    AIN0-13 AIN0-3, AIN120-127 AIN48-61 AIN72-85 AIN96-109
    DAC0-1 DAC0-1 AIN62-63 AIN86-87 AIN110-111
    FIO0-7 FIO0-7 AIN64-71 AIN88-95 AIN112-119
    PIN2,20 PIN2,20 N/C N/C N/C
    MIO0-2 MIO0-2 N/C N/C N/C

    The above table defines the pinouts of X2-X5 in terms of a CB37.  If not using a CB37 see the CB37 Datasheet to translate the CB37 terminals to DB37 pin numbers.

    Connector X2 is essentially a duplicate of the DB37 connector on the main device, except AIN4-AIN11 are instead AIN120-AIN127, and AIN12-AIN13 are not connected to anything. On connector X2, AIN0-AIN3 are duplicates of the main device, as well as FIO, DAC, etc.

    AIN0-AIN3 are available on the built-in terminals of the T7 and also on AIN0-AIN3 of a CB37 connected to X2.

    AIN120-AIN127 are available on X2, along with the DACs and DIO.

    AIN48-AIN71 appear on the AIN0 through FIO7 terminals of a CB37 connected to X3.  Note that terminals labeled DACx and FIOx on the CB37 are used as analog inputs.

    AIN72-AIN95 appear on the AIN0 through FIO7 terminals of a CB37 connected to X4.  Note that terminals labeled DACx and FIOx on the CB37 are used as analog inputs.

    AIN96-AIN119 appear on the AIN0 through FIO7 terminals of a CB37 connected to X5.  Note that terminals labeled DACx and FIOx on the CB37 are used as analog inputs.

    Example: A signal is connected to FIO6 on a CB37.  The CB37 is connected to X4 on the Mux80, so on the chart, under X4 and FIO0-7, locate AIN88-95.  So the signal is connected to AIN94.  To read AIN94 simply perform a standard AIN read for analog input number 94.


    Using Differential Analog Inputs with the MUX80: The normal rule for differential inputs is that the positive channel must be even and the negative channel must be positive+1, but this is only true for AIN0-AIN13. Since AIN4-AIN13 are not available when using the Mux80, this normal rule only applies to AIN0-AIN3, and for those the positive channel will be either AIN0 or AIN2 and the negative channel will be AIN1 or AIN3, respectively. When using extended channels, the positive channel can be any channel (even or odd) listed under the “P Channel” heading in the chart below. The negative channel is P Channel+8 (listed under the “N Channel” heading in the chart below).

    Example 1: The positive channel is connected to AIN102 (AIN6 on the CB37 connected to X5). The corresponding negative channel is AIN110 (DAC0 on the CB37 connected to X5).

    Example 2: The positive channel is connected to AIN64 (FIO0 on the CB37 connected to X3). The corresponding negative channel is AIN72 (AIN0 on the CB37 connected to X4).

    The following chart summarizes the positive and negative channel numbers for differential analog inputs with the Mux80.  Note that for some differential pairs, the positive and negative are located on different connectors.

    Table 2. Channel numbers for analog inputs based on block and connector

    Differential Blocks P Channel N Channel Connector
    Block 1 AIN48-55 AIN56-63 X3
    Block 2 AIN64-71 AIN72-79 X3 & X4
    Block 3 AIN80-87 AIN88-95 X4
    Block 4 AIN96-103 AIN104-111 X5
    Block 5 AIN112-119 AIN120-127 X5 & X2


    Parameter Conditions Min Typical Max Units
    Typical Current Draw No Active Readings 4.5 5.5 10 mA
    VMUX+ 12.8 13.8 16 V
    VMUX- -12.8 -13.8 -16 V
    Crosstalk @ 100 Hz DG408DVZ -125 dB
    LabJack U6 -104 dB
    Mux80 -100 dB


    Ground Offsets

    A single-ended analog input measurement is the voltage difference between the analog input and ground at the A/D chip on the main device (e.g. U6 or T7).  If the voltage provided by a given signal is different than the voltage at the A/D chip that results in error.

    Say, for example, a thermocouple is connected to AIN0 and the adjacent GND terminal on a CB37, that is connected to X3 on a Mux80 via a 3 foot cable, and that is connected to a T7.  Say the remote end of thermocouple is at a temperature such that it is creating a voltage difference of 1600 uV between the AIN0 and GND terminals on the CB37.  Typically, the voltage at the CB37-AIN0 terminal will be the same voltage presented to the A/D chip, but the voltage at the CB37-GND terminal might be 280 uV higher than ground at the A/D chip due to other currents flowing on ground.  That means the A/D chip will see 1880 uV rather than 1600 uV, which is an error of roughly 7 degrees C.

    Voltage drop on the AIN connection is not a concern as the only current on the AIN connection is the bias current.  The typical AIN bias current of the U6 or T7 is 20 nA, so even if the path from terminal to A/D chip had a high resistance of 10 ohms that would only be 200 nV of error.

    Voltage drop on the ground connection can sometimes be a concern and is called ground offset error.  Just the normal power supply current of the Mux80 and CB37 can cause GND terminals on the CB37 to be 100s of microvolts higher than ground back at the A/D chip.  Any current sunk to GND by user connections will increase this difference.

    One solution is to use the AGND terminal on the CB37.  AGND has its own dedicated path back to the main device, so as long as the user does not sink any current into AGND it will be at the same voltage as ground at the A/D chip.

    To measure how much offset exists from a particular GND terminal to ground at the A/D chip, simply jumper the GND terminal in question to an unused AIN terminal and measure the single-ended voltage from that AIN channel.


    Suggestions & Solutions:

    A.  Use differential analog inputs.  Differential readings take the difference between 2 AIN lines and thus are not affected by ground offset.  For example with a thermocouple, connect thermocouple+ to a positive channel (AIN48 for example) and connect thermocouple- to a negative channel (AIN56 for example).  A resistor (10k-100k would be typical) from the negative channel to GND is also required, as the thermocouple cannot be totally floating (see the Differential Readings App Note).  Now configure and read AIN48 as differential.

    B.  Use AGND for all passive sensors such as thermocouples.  Make sure not to connect anything to AGND that will sink/source any substantial current to AGND or offset will be created from AGND versus A/D chip ground.

    C.  Use an extra AIN channel on the CB37 in question and jumper it to GND on the CB37 to measure the GND offset so it can be accounted for in software.

    D.  Get rid of or at least reduce GND offset by minimizing connections (minimizing resistance) between the signal terminals and A/D chip, avoiding sourcing/sinking current to GND on the CB37, and adding a big fat wire from CB37-GND to U6-GND or T7-GND.

    E.  Use a star ground, and have a single solid connection from that star ground to U6-GND or T7-GND.  For example, connect the negative leads of all signals to an external grounding post or grounding bar, and run a big fat wire from there to a GND on the main LabJack.



    It is possible to check Mux80 functionality in LJControlPanel by performing the following steps:

    1. Open LJControlPanel
    2. Select UD device and click Test
    3. On test pane, locate MIO 00, MIO 01, MIO 02 checkboxes for both Digital Direction and Digital State
    4. Check the boxes for all 3 MIO lines under Digital Direction
    5. Check desired boxes under Digital State according to the following table.  Simply find the extended channel number to investigate, then trace across the row to the Output State of MIO0, MIO1, and MIO2.  Set the output state to high (checked) for 1 and low (un-checked) for 0.
    6. Trace the column up to AIN#, this is the analog input that your analog signal will appear on. 

    Table 3. Channel selection based on mux input

    Output State Expected Channel in LJControlPanel
    0 0 0 48 56 64 72 80 88 96 104 112 120
    1 0 0 49 57 65 73 81 89 97 105 113 121
    0 1 0 50 58 66 74 82 90 98 106 114 122
    1 1 0 51 59 67 75 83 91 99 107 115 123
    0 0 1 52 60 68 76 84 92 100 108 116 124
    1 0 1 53 61 69 77 85 93 101 109 117 125
    0 1 1 54 62 70 78 86 94 102 110 118 126
    1 1 1 55 63 71 79 87 95 103 111 119 127

    For example:  I have connected an analog signal to AIN65.  If I am using a CB37 Terminal Board, this will mean that the CB37 is connected to X3 on the Mux80, and the signal is wired to FIO1 on the CB37.  Looking at the above chart I note that 65 shares a row with MIO Output States of 1,0,0.  I then set MIO0 checked, MIO1 unchecked, and MIO2 unchecked.  Next I follow the column for 65 up to AIN6, so that is the analog input where I will see my analog signal with this MIO configuration.

    If there seem to be problems with incorrect readings, also check that VMUX+ and VMUX- are within specified limits by measuring the test points with respect to GND. 


    • Ensure your device has the latest firmwareThere is a known U6 firmware issue concerning MIO lines in v1.26 and older.  See revision history for more info. U6 firmware v1.40 and newer is able to stream differential channel pairs with the Mux80.
    • On the U6, and U6-Pro device the digital lines CIO0-2 and MIO0-2 are shared.  This means that changing the state of MIO0-2 will also change the state of CIO0-2.  Therefore, anyone using a Mux80 with a U6 needs to be aware that digital lines CIO0-2 are not usable. 



    I need more analog inputs than the 14 available on my U6.   Optimally, I'd like to measure 40 analog inputs.  Two alternatives would be to use 3 U6's via a USB hub, OR, the MUX80.  If I use the MUX80, will I see a 4X increase in my sampling rate?  Currently, I get an update about every 0.1 second.  Would this go to roughly 0.4 sec between measurements?   How would this compare to using multiple U6s?  Would using multiple U6s also slow my sampling rate?  If so, how much would you estimate?


    The sample rate for the U6 is dependent on several factors: resolution (settling time), range (gain), and USB communication time. If you know the appropriate resolution and range we can provide an estimate for sampling 40 channels. It's true that using multiple U6s can provide the faster sample rates, but one would have to write a program that uses threading in order to see this benefit.  Most likely one can improve the sample rate by tweaking the above parameters, even when using a Mux80.

    I am reading 80 channels on a MUX80 on U6. I am reading the signal on positive of 10 K resistors, each one in series with an actuator. 2V are applied to positive of actuator, with the negative of actuator connected to positive of resistor. Negative of resistor is ground, actuator resistance can be in the range 100k to >100M and I want to use the data to calculate the actuator resistance. I am using DAQfactory to acquire data with 10 s sampling.

    What is the maximum actuator resistance that I can measure? The first setup I used with fewer channels worked quite well up to >100 M, but as I added more channels I get a meaningful signal only when actuator resistance is quite low (<M).

    Is there a reason for this to happen or am I just doing something wrong in understanding the data? I have read section 2 (and the entire manual), should I manually change the SettlingFactor?

    Thank you.

    With high source impedance you can see 2 main types of error:  1.  Static error due to the bias current going in/out of the analog inputs which is ~20nA at steady-state, and 2.  Dynamic settling error as the source has to source or sink current to charge the U6 analog input system from the voltage of the previous channel to the voltage of the new channel.

    To meet specs for all combinations of range, resolution index, channel order, and data rates, the source impedance must be less than 1k.  With higher source impedance we need to put more thought in to the details.  Please start a forum topic where we can get into that.

    Question about the pinout chart.

    If DAC1 on X5 is MUX111, isn't FIO0 on X5 MUX112, NOT MUX111?


    That is correct.  The datasheet has been updated to reflect this change.  Although it is only a labeling mistake, LabJack may send an email update to recent buyers highlighting the error on the silkscreen.  "M111-119" should instead read "M112-119"

    Thanks, I still had the old datasheeet.  Another question, Are pins 8,9,10,12,19,27,28, & 30 connected on X2, X3, X4, & X5 to the same circuits as on X1?



    • Pin 8 & 10 - GND dedicated to charge pump. Not connected between X1 and others
    • Pin 9 & 28 - VM- & VM+, unused on the Mux80, Not connected, since the board has its own charge pump.
    • Pin 12 - AIN13, the dedicated input for Mux120-127, Not connected to others
    • 19 - GND, the shared GND plane for all headers (X2-X5)
    • 27 - VS, the shared 5V rail that appears on all headers (X2-X5)
    • 30 - AGND, dedicated analog GND, bypasses the GND plane for more isolated readings, shared on all (X2-X5)


    So (pardon my ignorance, I am but a humble software engineer :)), I have a UE9 with a Mux80 connected, and I want to read analogue in 67, then I'd just write (in C#)

    LJUD.eAIN( handle, 67, 0, ref value, (int)range, bitResolution, 0, 0 )

    is that correct? 

    How are the 80 channels split across the D connectors?


    That looks correct.  If you are getting an "invalid AIN channel number" error, try downloading the latest UD driver package from here:


    The 80 channels are split according to the table "Mux80 : CB37 Reference".  Each connector is labeled with an X number.  So X3 for instance has AIN channels numbering 48 through 71.  They are called Mux48 - Mux71 on the silkscreen of the Mux80.

    If you use a CB37 Expansion board, connect it to X3, and AIN 67 will be the "FIO3" terminal of the CB37.  All the acronyms and different names make it complicated, so don't feel bad.

    Thanks! I was getting confused because I thought I might have to be manually toggling the MIO channels and then reading AIN0..AIN14 to get the multiplexed channel data. It's nice that at least asking for channel 48 gets me MUX48 etc (the numbering being a bit confusing because we had that down as AIN0).

    I have a U6 pro with a mux80 connected to it. The Mux80 has a CB37 connected on X5 and there is a 37 pin connector on X4. The U6 pro alo has a relay board cconnected via the 15 pin connector. On the relay board  everything is set up to be an output except EIO0 and EIO1, which are inputs. Now when I try to read AIN 81 which is on the X4, CIO1 and 2 turn on. I am using C#.

    Section 2.8 of the U6 User's Guide mentions that CIO0-CIO2 are shared with MIO0-MIO2 on the U6.  The Mux80 uses MIO0-MIO2 to control the multiplexers.  Will make a to-do to make sure this is also mentioned somewhere on the Mux80 and RB12 datasheets.