ADU  Series - USB Data Acquisition Interface SDK
 

Communicating with ADU Products Without Using the AduHid.dll

The ADU products are standard USB HID class products and the AduHid.dll is not required to communicate with them. Standard Windows, Linux, Android or other operating systems can be made to communicate with the ADU devices provided the target operating system provides standard USD HID drivers.

Using standard USB HID drivers with the ADU interfaces requires knowledge of various parameters and protocols followed by all ADU devices.

These include, Vendor ID, Product ID, serial number format, transfer type, etc. The user also must have knowledge of the ADU command protocol. If you have access to Windows based computer, AduHidTest  is an ideal program to become familiar with the ADU command set.

This application note will provide this information.

1.  ADU USB HID Parameters

a) All ADU products use the same Vendor ID to identify Ontrak Control Systems as the manufacturer.

The ADU Vendor ID is HEX 0A07 or DEC 2567

b) All ADU Product ID's are simply the corresponding ADU product number.

ADU100 product ID is HEX 64 or DEC 100

ADU200 product ID is HEX C8 or DEC 200

ADU208 product ID is HEX D0 or DEC 208

ADU218 product ID is HEX DA or DEC 218

ADU222 product ID is HEX DE or DEC 222

ADU228 product ID is HEX E4 or DEC 228

ADU252 product ID is HEX FC or DEC 252

ADU258 product ID is HEX 102 or DEC 258

ADU70 product ID is HEX 46 or DEC 70

ADU71 product ID is HEX 47 or DEC 71

ADU72 product ID is HEX 48 or DEC 72

c) All ADU product Serial Numbers are 6 byte ASCII strings which consist of a leading alphanumeric character followed by 5 numeric digits.  The serial number is printed on the front label of the ADU product.

d) All ADU products use Interrupt transfers via Endpoint 1 ( EP1 IN, EP1 OUT) to send and receive data and commands from the host.

e) The transfers are 8-bytes in length for the ADU100, ADU200, ADU208, and ADU218, as they are Low-Speed USB devices. The ADU70, ADU71, ADU72, ADU222, ADU252, ADU228, and ADU258 products use 64-byte interrupt transfers as they are Full-Speed USB devices.

2. ADU Command Protocol

The ADU products use standard ASCII based commands and data with one distinction. The first byte received by the ADU product identifies whether the following data is a command,  or RS232 data. If the first byte is HEX01, the ADU device treats the following ASCII data as a command. If the first byte is HEX02, the ADU device identifies the following string as data to be sent out on the RS232 port of the ADU device.  Presently, only the ADU100 and ADU200  feature auxillary RS232 ports.

Note that ADU ASCII commands are not case sensitive, and, that all ASCII data returned as a result of a command is also preceeded with a HEX01.

 

For example, to send an "SK0" command to an ADU200 ( to close relay 0 ) the following data is sent;

01h 53h 4Bh 30h 00h 00h 00h 00h        ( "SK0" sent to ADU200 )

Note that the padding of nulls (00h)  in the last 4 positions is handled by the HID driver.

 

Here is a second example where "RE2" ( read event counter 2 ) is sent to an ADU218 to retrieve event counter 2 data.

01h 52h 45h 32h 00h 00h 00h 00h         ( "RE2" sent to ADU218 )

01h 31h 30h 34h 34h 39h 00h 00h         (count of "10449" returned to host )

 

Following are links to tutorials on using USB HID drivers in some popular programming languages.

 

http://developer.android.com/guide/topics/connectivity/usb/host.html#discovering-d   ( ANDROID )
http://msdn.microsoft.com/en-us/library/ms923723.aspx ( Windows CE 5.0 )