# USB-2404-UI

The USB-2404-UI supports the following features:

## Analog input

Functions

UL: cbAIn32(), cbAInScan(), cbALoadQueue(), cbVIn32()

UL for .NET: AIn32(), AInScan(), ALoadQueue(), VIn32()

Python for Windows: a_in(), a_in_scan(), a_load_queue(), v_in_32()

Options

BACKGROUND, CONTINUOUS, BLOCKIO, HIGHRESRATE, SCALEDATA

HighChan

0 to 3

Count

When using input scanning, Count must be an integer multiple of the number of channels in the scan.

Rate

No channels configured in TC mode:

- High speed mode: 100 Hz
- Best 60 Hz rejection: 9.09 Hz
- Best 50 Hz rejection: 7.69 Hz
- High resolution: 2 Hz

One or more channels configured in TC mode:

- High speed mode: 50 Hz
- Best 60 Hz rejection: 8.33 Hz
- Best 50 Hz rejection: 7.14 Hz
- High resolution: 1.96 Hz

Range

Voltage mode:
BIP60VOLTS (±60 volts)
BIP15VOLTS (±15 volts)
BIP4VOLTS (±4 volts)
BIP1VOLTS (±1 volts)
BIPPT125VOLTS (±0.125 volts)

The Range argument is ignored when channels are configured for other input modes.

## Event Notification

Functions

UL: cbEnableEvent(), cbDisableEvent()

UL for .NET: EnableEvent(), DisableEvent()

Python for Windows: enable_event(), disable_event()

Event types

UL, Python for Windows: ON_DATA_AVAILABLE, ON_END_OF_INPUT_SCAN, ON_SCAN_ERROR

UL for .NET: OnDataAvailable, OnEndOfInputScan, OnScanError

## Miscellaneous

Functions

UL: cbTEDSRead()

UL for .NET: TEDSRead()

Python for Windows: teds_read()

Reads data from a TEDS sensor into an array.

## Configuration

This hardware supports device detection with the API. Refer to the InstaCal, API Detection, or Both? section for information about whether to use InstaCal or the API to detect and configure hardware.

#### InstaCal

Factory serial number

Listed as Factory Serial No. (read only)

ADC timing mode

ADC Timing Mode drop-down combo box.

Temperature units

Temperature units drop-down combo box.

#### Programmable API Functions

Factory serial number

UL: cbGetConfigString()

ConfigItem = BIDEVSERIALNUM

UL for .NET: GetDeviceSerialNum()

Python for Windows: get_config_string()

config_item = DEVSERIALNUM

ADC timing mode

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BIADTIMINGMODE

ConfigVal = 1 (High speed), 8 (60 Hz rejection), 9 (50 Hz rejection), 15 (high resolution)

UL for .NET: GetAdTimingMode(), SetAdTimingMode()

Python for Windows: get_config(), set_config()

config_item = ADTIMINGMODE

config_val = AdTimingMode enum

Temperature units

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BITEMPSCALE

ConfigVal = CELSIUS, FAHRENHEIT, KELVIN

UL for .NET: GetTempScale(), SetTempScale()

Python for Windows: get_config(), set_config()

config_item = TEMPSCALE

config_val = TempScale enum

Channel type

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BIADCHANTYPE

ConfigVal = AI_CHAN_TYPE_VOLTAGE, AI_CHAN_TYPE_CURRENT, AI_CHAN_TYPE_RESISTANCE_10K4W, AI_CHAN_TYPE_RESISTANCE_1K4W, AI_CHAN_TYPE_RESISTANCE_10K2W, AI_CHAN_TYPE_RESISTANCE_1K2W, AI_CHAN_TYPE_TC, AI_CHAN_TYPE_RTD_1000OHM_4W, AI_CHAN_TYPE_RTD_100OHM_4W, AI_CHAN_TYPE_RTD_1000OHM_3W, AI_CHAN_TYPE_RTD_100OHM_3W, AI_CHAN_TYPE_QUART_BRIDGE_350OHM, AI_CHAN_TYPE_QUART_BRIDGE_120OHM, AI_CHAN_TYPE_HALF_BRIDGE, AI_CHAN_TYPE_FULL_BRIDGE_62PT5mVV, AI_CHAN_TYPE_FULL_BRIDGE_7PT8mVV

UL for .NET: GetAIChanType(), SetAIChanType()

Python for Windows: get_config(), set_config()

config_item = ADCHANTYPE

config_val = AiChanType enum

RTD type

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BICHANRTDTYPE

ConfigVal = RTD_PT_3750, RTD_PT_3850, RTD_PT_3851, RTD_PT_3911, RTD_PT_3916, RTD_PT_3920, RTD_PT_3928, Custom

UL for .NET: GetChanRtdType(), SetChanRtdType()

Python for Windows: get_config(), set_config()

config_item = CHANTCTYPE

config_val = PlatinumRTDType

Thermocouple type

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BICHANTCTYPE

ConfigVal = TC_TYPE_J, TC_TYPE_K, TC_TYPE_R, TC_TYPE_S, TC_TYPE_B, TC_TYPE_E, TC_TYPE_T, TC_TYPE_N

UL for .NET: GetChanTcType(), SetChanTcType()

Python for Windows: get_config(), set_config()

config_item = CHANTCTYPE

config_val = TcType enum

## Hardware considerations

##### VIn32()

Only use cbVIn32()/VIn32()/v_in_32() when the channel type is set to Voltage. Using this method with other channel types will return a BADADCHAN error.

##### HIGHRESRATE

Specify this scan option with cbAInScan()/AInScan to acquire data at a high resolution rate. When specified, the rate at which samples are acquired is in "samples per 1000 seconds per channel".

##### Retrieving data from the Windows buffer

Since these are high resolution devices, use cbWinBufAlloc32()/WinBufAlloc32Ex()/win_buf_alloc_32() to specify the buffer size when scanning data. To retrieve data from the buffer, call cbWinBufToArray32()/WinBufToArray32()win_buf_to_array_32().