Make/Model  Device VersionConnection Type
Xantech/ZPR68-10N/ASerial

Description:

This driver controls the Xantech ZPR68-10 multi-zone audio switcher/amplifier. This product supports six zones of audio amplification and eight audio inputs. So you can select one of the eight inputs to monitor in each of the available zones. Each zone's volume and mute can be controlled separately.

Quirks and Limitations:

The Xantech is a little strange in that you can't just power up a zone, you have to select a source. So there's no way to just power a zone off and then just power it back up and have it come back up on the same zone it was on before. The driver tries to 'finesse' this and remember the last input it saw on each zone, so when you power on a zone, if the driver saw a previous selection, it'll use that input to power the zone up. If not, it'll use zone 1.

The volume is set in 2dB increments, but you can still write to a volume field with a value like -11, i.e. an odd number. This will be rounded to -10 when written, so you will see the field go to -11 since the value written gets stored, but then on the next poll pass it will revert to -10 which is what really got sent to the device and therefore what will be reported by the device when queried.

The mute state cannot be queried so zone mute fields are write only.

Connection Details

The parameters are 9,600 baud, 8 bits, one stop bit, no parity. That's a little slow given the number of , but the protocol is very simple.
The connection is a standard straight through cable and a 3 wire should be fine.

Driver Fields

This section lists the fields that the driver makes available, their types, minimum and maximum values, etc...

NameTypeR/WDescription/Limits
AllInputCardWSet all zones to monitor the indicated input number, from 1 to 8.
AllPowerBooleanWPower all zones up or down
AllQuietBooleanWMute or unmute all zones
AllVolumeIntWSet the volume of all zones, to a value from -80, to 0 dB
Z?InputCardR/WRead or write the zone input, where ? is a zone number from 1 to 6.
Z?PowerBooleanR/WRead or write the zone power status, where ? is a zone number from 1 to 6.
Z?QuietBooleanWSet the zone mute, where ? is a zone number from 1 to 6.
Z?VolumeIntR/WRead or write the zone volume level, where ? is a zone number from 1 to 6 and the volume level is a value from -80 to 0 dB.