# USB-SSR Series

The USB-SSR Series includes the following hardware:

- USB-SSR08
- USB-SSR24

The USB-SSR Series supports the following features.

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

Port I/O

Functions

UL: cbDIn(), cbDOut()

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

Python for Windows: d_in(), d_out()

PortNum

USB-SSR08: FIRSTPORTCL, FIRSTPORTCH

USB-SSR24: FIRSTPORTA, FIRSTPORTB, FIRSTPORTCL, FIRSTPORTCH

DataValue

USB-SSR08: 0 to 15 for FIRSTPORTCL or FIRSTPORTCH

USB-SSR24: 0 to 255 for FIRSTPORTA or FIRSTPORTB, 0 to 15 for FIRSTPORTCL or FIRSTPORTCH

Bit I/O

Functions

UL: cbDBitIn(), cbDBitOut()

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

Python for Windows: d_bit_in(), d_bit_out()

PortType

FIRSTPORTA

BitNum

USB-SSR08: 16 to 23 on FIRSTPORTA

USB-SSR24: 0 to 23 on FIRSTPORTA

## 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 devices connected, use this function to identify a particular device.

## Hardware considerations

##### Do not change the state of switches while a program is running

The USB-SSR Series devices have three onboard switches (labeled S1, S2, and S3) that are used to control the I/O direction, logic polarity, and pull-up/down state of output relays.

Do not change the state of any switches on a USB-SSR Series device while a program is running. The Universal Library stores the current state of each switch, and changing a switch setting while a program is running can cause unpredictable results.

##### Controlling relays on the USB-SSR08

USB-SSR Series hardware is bidirectional, so you first need to set the I/O direction of each relay module group using the onboard switch S1.

The USB-SSR08 has two 4-bit ports (FIRSTPORTCL or FIRSTPORTCH). Each port controls four relays.

- To read four relays at a time, call DIn(), and specify either FIRSTPORTCL or FIRSTPORTCH.
- To read just one of the input modules, call DBitIn(), specify FIRSTPORTA and a bit number of 16 to 23.
- To control four relays at a time, call DOut(), specify either FIRSTPORTCL or FIRSTPORTCH, and send a data value between 0 and 15. To control all eight relays, make two consecutive DOut() calls.
- To control just one of the eight relays, call DBitOut(), specify FIRSTPORTA, and send a data value of either 0 or 1 and a bit number of 16 to 23. Bits 16 through 23 map to relays 1 through 8 on the USB-SSR08.

The relays are controlled in this way to allow code migration without changes when switching from the older SSR-RACK08 board to the USB-SSR08.