# USB-1608FS and USB-1608FS-Plus

An OEM version of the USB-1608FS-Plus is also available:

- USB-1608FS-Plus-OEM

These devices support the following features. Unless otherwise indicated, the OEM version supports the same features as the equivalent standard version.

## 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, BURSTIO*, CONTINUOUS, EXTCLOCK, EXTTRIGGER, HIGHRESRATE**, NOCALIBRATEDATA, SCALEDATA**, SINGLEIO

* BURSTIO can only be used with the number of samples (Count) set equal to the size of the FIFO or less. The device FIFO holds 32,768 samples. BURSTIO cannot be used with the CONTINUOUS option.

** USB-1608FS-Plus only

Mode

Single-ended

HighChan

0 to 7

Count

In BURSTIO mode, Count must be an integer multiple of the number of channels in the scan:

- For one-, two-, four-, and eight-channel scans, the maximum Count is 32,768 samples.
- For three- and six-channel scans, the maximum Count is 32,766 samples.
- For five-channel scans, the maximum Count is 32,765 samples.
- For seven-channel scans, the maximum Count is 32,767 samples.

Packet size

USB-1608FS-Plus:

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

USB-1608FS:

The packet size is based on the Options setting. In BLOCKIO mode, the packet size is 31 samples. In SINGLEIO mode, the packet size is the number of channels being sampled.

Rate

USB-1608FS:

200 kS/s maximum for BURSTIO mode (50 kS/s for any one channel).

The maximum rate is 100 kS/s for all other modes (50 kS/s for any one channel).

When using cbAInScan() or AInScan(), the minimum sample rate is 1 S/s. In BURSTIO mode, the minimum sample rate is 20 S/s per channel.

USB-1608FS-Plus:

800 kS/s maximum for BURSTIO mode (100 kS/s for any one channel).

For all other modes the rate is 400 kS/s nominal (100 kS/s for any one channel). Sampling at rates >400 kS/s may result in a data overrun on some systems. If errors occur, and the application requires fewer than 32,768 samples, consider a finite scan with BURSTIO mode enabled.

When using cbAInScan() or AInScan(), the minimum sample rate is 0.01 S/s (using HIGHRESRATE with Rate set to 10.)

Range

BIP10VOLTS (±10 volts) | BIP5VOLTS (±5 volts)
BIP2VOLTS (±2 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

Digital triggering: TRIGPOSEDGE, TRIGNEGEDGE

The USB-1608FS-Plus also supports TRIGHIGH and TRIGLOW

External digital (TTL) hardware triggering supported. Set the hardware trigger source with the Trig_In input.

## Digital I/O

##### Configuration

Functions

UL: cbDConfigBit(), cbDConfigPort()

UL for .NET: DConfigBit(), DConfigPort()

Python for Windows: d_config_bit(), d_config_port()

PortNum

AUXPORT

PortType

AUXPORT

##### Port I/O

Functions

UL: cbDOut(), cbDIn()

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

Python for Windows: d_in(), d_out()

PortNum

AUXPORT (eight bits, bit-configurable)

DataValue

0 to 255 for AUXPORT

##### Bit I/O

Functions

UL: cbDBitIn(), cbDBitOut()

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

Python for Windows: d_bit_in(), d_bit_out()

PortType

AUXPORT

BitNum

0 to 7 on AUXPORT

## Counter I/O

Functions

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

UL for .NET: CClear(), 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()/CIn()/c_in().

**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.

LoadValue

0 when loading the counter.

cbCLoad() and cbCLoad32() / CLoad() and CLoad32() are only used to reset the counter 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

UL: ON_SCAN_ERROR, ON_DATA_AVAILABLE, ON_END_OF_INPUT_SCAN

UL for .NET:OnScanError(), OnDataAvailable(), OnEndOfInputScan()

## Miscellaneous

Functions

UL: cbFlashLED()

UL for .NET: FlashLED()

Python for Windows: flash_led()

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

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

Enable SYNC output

Enable SYNC output checkbox

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 (USB-1608FS)

UL: cbGetConfig()

ConfigItem = BIUSERDEVIDNUM

UL for .Net: GetUserDeviceIdNum()

Python for Windows: get_config()

config_item = USERDEVIDNUM

Identifier (USB-1608FS-Plus)

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

Enable SYNC output

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BIINPUTPACEROUT

ConfigVal = ENABLED, DISABLED

UL for .NET: GetInputPacerOut(), SetInputPacerOut()

Python for Windows: get_config(), set_config()

info_type = BOARDINFO

config_item = INPUTPACEROUT

config_val = State enum

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 eight elements. The gains may be any valid value. The channels specified must be unique and listed in increasing order.

- USB-1608FS: The channels specified in the queue must be contiguous and in increasing order, except when wrapping around from channel 7 to channel 0.
- USB-1608FS-Plus: The channels specified in the queue must be in increasing order.

##### 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. If the requested speed cannot be sustained, an OVERRUN error will occur.

##### HIGHRESRATE

USB-1608FS-Plus only. 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".

##### Continuous scans

When running an analog input scan with the CONTINUOUS option, set the total number of samples to be an integer multiple of the packet size and the number of channels in the scan. This ensures that the data is aligned properly in the array.

##### EXTCLOCK

You can set the SYNC pin as a pacer input or a pacer output from InstaCal. By default, this pin is set for pacer input. If set for output when using the EXTCLOCK scan option, a BADOPTION error occurs.

##### BURSTIO mode

BURSTIO mode allows higher sampling rates for sample counts up to the size of the FIFO. The device FIFO holds 32,768 samples. Data is collected into the device local FIFO. Data transfers to the computer don't occur until the scan completes. For BACKGROUND scans, the Count and Index returned by cbGetStatus()/GetStatus()/get_status() remain 0, and Status = RUNNING until the scan finishes. The Count and Index are not updated until the scan is completed. When the scan is complete and the data is retrieved, cbGetStatus()/GetStatus()/get_status() are updated to the current Count and Index, and Status = IDLE.

BURSTIO is required for aggregate Rate settings above 100 kHz, but Count is limited to sample counts up to the size of the FIFO (32,768 samples). The max Count is ≤32,768 samples.