# USB-1208FS-Plus and USB-1408FS-Plus

OEM versions of these devices are also available:

- USB-1208FS-Plus-OEM
- USB-1408FS-Plus-OEM

The USB-1208FS-Plus and USB-1408FS-Plus support the following UL and UL for .NET features. Unless otherwise indicated, OEM versions support the same features as the equivalent standard versions.

## Analog input

Functions

UL: cbAIn(), cbAInScan(), cbALoadQueue(), cbFileAInScan(), cbATrig()

UL for .NET: AIn(), AInScan(), ALoadQueue(), FileAInScan(), ATrig()

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

Options

BACKGROUND, BLOCKIO, CONTINUOUS, EXTCLOCK, EXTTRIGGER, HIGHRESRATE, NOCALIBRATEDATA, RETRIGMODE*, SCALEDATA, SINGLEIO

* RETRIGMODE can only be used with cbAInScan()/AInScan().

Mode

Single-ended and differential

HighChan

0 to 7 in single-ended mode

0 to 3 in differential mode

Count

Count must be an integer multiple of the number of channels in the scan.

Packet size

Rate dependent. The default packet size is 32 samples. At higher rates, the packet size increases by a multiple of 32.

Rate

USB-1208FS: 0.014 Hz to 51.993 kHz for BLOCKIO mode.

USB-1408FS: 0.14 Hz to 48 kHz maximum for BLOCKIO mode.

The throughput depends on the system being used. Most systems can achieve 40 kHz aggregate.

When using cbAInScan()/AInScan(), the minimum sample rate is 1 Hz.

Range

Single-ended:

BIP10VOLTS (±10 volts)

Differential:

BIP20VOLTS (±20 volts) | BIP2PT5VOLTS (±2.5 volts)
BIP10VOLTS (±10 volts) | BIP2VOLTS (±2 volts)
BIP5VOLTS (±5 volts) | BIP1PT25VOLTS (±1.25 volts)
BIP4VOLTS (±4 volts) | BIP1VOLTS (±1 volts)

Pacing

Hardware pacing, internal clock supported.

External clock supported via the SYNC pin.

## Triggering

Functions

UL: cbSetTrigger()

UL for .NET: SetTrigger()

Python for Windows: set_trigger()

TrigType

TRIGPOSEDGE, TRIGNEGEDGE, TRIGHIGH, TRIGLOW

Both devices support external digital (TTL) hardware triggering. Use the TRIG_IN input for the external trigger signal.

## Analog Output

Functions

UL: cbAOut(), cbVOut(), cbAOutScan()

UL for .NET: AOut(), VOut(), AOutScan()

Python for Windows: a_out(), v_out(), a_out_scan()

Options

BACKGROUND, CONTINUOUS

HighChan

0 to 1

Count

Count must be an integer multiple of the number of channels in the scan.

Packet size

Rate dependent.

Rate

50 kHz max per channel

Range

UNI5VOLTS (0 to 5 volts)

DataValue

0 to 4,095

## Digital I/O

Click here to display a table of the port numbers and corresponding bit numbers that are set by the digital I/O functions for hardware designed with the 82C55 chip or 82C55 emulation.

Configuration Functions

UL: cbDConfigPort()

UL for .NET:DConfigPort()

Python for Windows: d_config_port()

PortNum

FIRSTPORTA, FIRSTPORTB

Port I/O Functions

UL: cbDIn(), cbDOut()

UL for .NET:DIn(), DOut()

Python for Windows: d_in(), d_out()

PortNum

FIRSTPORTA, FIRSTPORTB

DataValue

0 to 255 for FIRSTPORTA or FIRSTPORTB

Bit I/O Functions

UL: cbDBitIn(), cbDBitOut()

UL for .NET: DBitIn(), DBitOut()

Python for Windows: d_bit_in(), d_bit_out()

PortType

FIRSTPORTA

BitNum

0 to 15 for on FIRSTPORTA

## Counter I/O

Functions

UL: cbCIn()*, cbCIn32(), cbCLoad()**, cbCLoad32()**

UL for .NET: CIn()*, CIn32(), CLoad()**, CLoad32()**

Python for Windows: c_clear(), c_in()*, c_in_32(), c_load()**, c_load_32()**

*Although cbCIn()/CIn()/c_in() are valid for use with this counter, cbCIn32()/CIn32()/c_in_32() may be more appropriate, since the values returned may be greater than the data types used by cbCIn() and CIn() can handle.

**cbCLoad()/cbCLoad32(), CLoad()/CLoad32(), and c_load()/c_load32() only accept Count=0. These functions are used to reset the counter.

CounterNum

1

Count

232-1 when reading the counter.

0 when loading the counter.

cbCLoad()/CLoad() and cbCLoad32()/CLoad32() are only used to reset the counter for this device to 0. No other values are valid.

The Basic signed integers guidelines in the Digital Input/Output Hardware topic apply when using cbCIn() or CIn() for values greater than 32,767 and when using cbCIn32() or CIn32() for values greater than 2,147,483,647.

RegNum

LOADREG1

## Event notification

Functions

UL: cbEnableEvent(),cbDisableEvent()

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

Python for Windows: enable_event(), disable_event()

Event types

ON_SCAN_ERROR (analog input and analog output), ON_DATA_AVAILABLE, ON_END_OF_INPUT_SCAN, ON_END_OF_OUTPUT_SCAN

## Miscellaneous

Functions

UL: cbFlashLED()

UL for .NET: FlashLED()

Python for Windows: flash_led()

Causes the LED on a USB device to blink. When you have several USB devices connected to the computer, use this function to identify a particular device by making its LED blink.

## 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)

Identifier

Identifier text box

Input mode

Input Mode drop-down combo box for single-ended or differential.

Hardware version

Listed as Firmware Version (read only)

#### Programmable API Functions

Factory serial number

UL: cbGetConfigString()

ConfigItem = BIDEVSERIALNUM

UL for .NET: GetDeviceSerialNum()

Python for Windows: get_config_string()

config_item = DEVSERIALNUM

Identifier

UL: cbGetConfigString(), cbSetConfigString()

ConfigItem = BIUSERDEVID

maxConfigLen = up to 64 characters

UL for .Net: GetUserDeviceId(), SetUserDeviceId()

Python for Windows: get_config_string(), set_config_string()

config_item = USERDEVID

max_config_len = up to 64 characters

Input mode

UL: cbAInputMode()

UL for .NET: AInputMode()

Python for Windows: a_input_mode

Hardware version

UL: cbGetConfigString()

ConfigItem = BIDEVVERSION

DevNum = VER_FW_MAIN

UL for .NET: GetDeviceVersion()

Type = VersionType.FW_MAIN

Python for Windows: get_config_string()

config_item = DEVVERSION

dev_num = MAIN

## Hardware considerations

##### Channel-gain queue

The channel-gain queue is limited to 8 elements in single-ended mode, and 4 elements in differential mode. The channels specified must be unique and listed in increasing order. The gains may be any valid value.

##### Acquisition rate

Since the maximum data acquisition rate depends on the system connected to the device, it is possible to "lose" data points when scanning at higher rates. The Universal Library cannot always detect this data loss.

Most systems can sustain rates of 40 kS/s aggregate in BLOCKIO mode, and 1 kS/s aggregate in SINGLEIO mode.

##### HIGHRESRATE

Specify the HIGHRESRATE scan option 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".

##### EXTCLOCK

By default, the SYNC pin is configured for pacer output and provides the internal pacer A/D clock signal. To configure the pin for pacer input, use the EXTCLOCK option.

If you use the EXTCLOCK option, make sure that you disconnect from the external clock source when you test or calibrate the device with InstaCal, as the SYNC pin drives the output.

##### Scaling data

Results using SCALEDATA may be slightly different from results using cbToEngUnits() near range limits, due to the nature of the calibration being applied and the internal calculation using floating count values. If this is undesirable use cbToEngUnits().

##### Repetitive trigger events

Use the RETRIGMODE scan option to set up repetitive trigger events. Use the ConfigItem option BIADTRIGCOUNT with cbSetConfig() to set the A/D trigger count, and the BIDACTRIGCOUNT option to set the D/A trigger count. For Python users, set the trigger counts with set_config() and the ADTRIGCOUNT or DATRIGCOUNT config_items.

##### Resolution

When configured for single-ended mode, the resolution of the data is 11 bits (data values between 0 and 2,047). However, the Universal Library maps this data to 12-bit values, so the range of data is no different from the differential configuration. Consequently, the data returned contains only even numbers between 0 and 4,094 when the NOCALIBRATEDATA option is used.

##### Continuous scans

When running input scans with the CONTINUOUS option, set the count to be an integer multiple of the number of channels in the scan in order to keep the data aligned properly in the array.

##### Analog output

When you include both analog output channels in output scans, the two channels are updated simultaneously.