The UXP expansion port found on ProXR series controllers (equipped with a UXP port) support up to 48 Channels of Analog to Digital Conversion with 12-Bit resolution.  These controllers allow you to read analog voltages from 0 to 5VDC, ideal for sensor monitoring applications.  UXP series controllers are able to be read ADC inputs based on a polled protocol.  Polling is the process of asking the controller the current voltage on any of the inputs and receiving a reply.  Push notification is not supported for any UXP expansions.  Users should exercise caution not to exceed 5VDC on any of the analog inputs to prevent permanent damage.

The ADC Inputs are divided into (I) Inputs and Devices (See Function Column).  Each devices has 16 available inputs (I), which will return (R) a standard 8-bit value based on the voltage present on the input at the time of reading.  Up to 3 devices are supported per UXP port for a total of 16 inputs per device, or 48 total available input channels.

The following commands demonstrate how to read individual analog inputs in 8-Bit mode from ProXR controllers equipped with UXP hardware and firmware:

CK = Checksum (00-FF)
I = Input
R = Return Value

TX:234ICKFUNCTION: READ 8-BIT ADC DEVICE 0RX:2RCK
AA03FEC3006ERead ADC Input Channel 0 8-BitAA01FFAA
AA03FEC30F7DRead ADC Input Channel 15 8-BitAA01FFAA
TX:234ICKFUNCTION: READ 8-BIT ADC DEVICE 1RX:2RCK
AA03FECB0076Read ADC Input Channel 0 8-BitAA01FFAA
AA03FECB0F85Read ADC Input Channel 15 8-BitAA01FFAA
TX:234ICKFUNCTION: READ 8-BIT ADC DEVICE 2RX:2RCK
AA03FED0007BRead ADC Input Channel 0 8-BitAA01FFAA
AA03FED00F8ARead ADC Input Channel 15 8-BitAA01FFAA

The following commands will read all 16 channels at 8-Bit resolution:

CK = Checksum (00-FF)
TX:234CKFUNCTION: READ 16 CHANNELS 8-BITRX:2ValueNOTE
AA02FEC06ARead ADC Device 0, 16 ChannelsAA10FFBytes 3 Channel 0
AA02FEC16BRead ADC Device 1, 16 ChannelsAA10FFBytes 4 Channel 1
AA02FEC26CRead ADC Device 2, 16 ChannelsAA10FFBytes 5 Channel 2
FFBytes 6 Channel 3
FFBytes 7 Channel 4
FFBytes 8 Channel 5
FFBytes 9 Channel 6
FFBytes 10 Channel 7
FFBytes 11 Channel 8
FFBytes 12 Channel 9
FFBytes 13 Channel 10
FFBytes 14 Channel 11
FFBytes 15 Channel 12
FFBytes 16 Channel 13
FFBytes 17 Channel 14
FFBytes 18 Channel 15
AAByte 19 Checksum

The following samples read individual channels with 12-bit resolution.  These commands return 2 bytes, LSB and MSB.  The actual returned value can be computed using the following equation:
AD Value = (MSB x 256) + LSB

CK = Checksum (00-FF)
I = Input
LSB = Least Significant Byte of Return Value
MSB = Most Significant Byte of Return Value

TX:234ICKFUNCTION: READ 12-BIT ADC DEVICE 0RX:2LSBMSBCK
AA03FEC70072Read ADC Input Channel 0 12-BitAA02FF0FBA
AA03FEC70F81Read ADC Input Channel 15 12-BitAA02FF0FBA
TX:234ICKFUNCTION: READ 12-BIT ADC DEVICE 1RX:2LSBMSBCK
AA03FECF007ARead ADC Input Channel 0 12-BitAA02FF0FBA
AA03FECF0F89Read ADC Input Channel 15 12-BitAA02FF0FBA
TX:234ICKFUNCTION: READ 12-BIT ADC DEVICE 2RX:2LSBMSBCK
AA03FED1007CRead ADC Input Channel 0 12-BitAA02FF0FBA
AA03FED10F8BRead ADC Input Channel 15 12-BitAA02FF0FBA

The following commands read 16 channels at 12-Bit resolution, returning a total of 32 bytes:

CK = Checksum (00-FF)
TX:234CKFUNCTION: READ 16 CHANNELS 12-BITRX:2LSBMSBNOTE
AA02FEC46ERead ADC Device 0, 16 ChannelsAA10FF0FBytes 3/4 Channel 0
AA02FEC56FRead ADC Device 1, 16 ChannelsAA10FF0FBytes 5/6 Channel 1
AA02FEC670Read ADC Device 2, 16 ChannelsAA10FF0FBytes 7/8 Channel 2
FF0FBytes 9/10 Channel 3
FF0FBytes 11/12 Channel 4
FF0FBytes 13/14 Channel 5
FF0FBytes 15/16 Channel 6
FF0FBytes 17/18 Channel 7
FF0FBytes 19/20 Channel 8
FF0FBytes 21/22 Channel 9
FF0FBytes 23/24 Channel 10
FF0FBytes 25/26 Channel 11
FF0FBytes 27/28 Channel 12
FF0FBytes 29/30 Channel 13
FF0FBytes 31/32 Channel 14
FF0FBytes 33/34 Channel 15
AAByte 35 Checksum