Summary
RS-232 / IP control protocol for the Arcam AVR390, AVR550, AVR850, AV860 and SR250 AV receivers. All commands share a fixed binary framing 0x21 Zn Cc Dl Data… 0x0D at 38,400 bps, 8N1, no flow control. TCP/IP control is exposed on port 50000. An additional ASCII AMX Duet "AMX\r" command is supported for Dynamic Device Discovery.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: 38400
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
addressing:
port: 50000 # TCP/IP control port (per source)
auth:
type: none # inferred: no login/password procedure described in source
Notes on transport: serial cable is a null modem (Tx/Rx crossed, signal ground only). RS-232 control must be enabled per-unit via front panel DIRECT button (4 s hold) or the OSD Control menu — disabled by default for minimum standby power. On the network, port 50000 is the IP control endpoint.
Traits
# - powerable # zone power on/off via Simulate RC5 16-123 / 16-124 (Power On / Power Off)
# - routable # input source / video source / HDMI output switching commands present
# - queryable # many 0xF0 "request" codes return device state
# - levelable # volume, mute, treble, bass, balance, sub trim, lipsync, room EQ, dolby vol, compression
# - zoned # commands target Zone 0x01 (master) or Zone 0x02
Actions
# Protocol frame (every command below follows this template):
# 0x21 {Zn} {Cc} {Dl} {Data1} [Data2 …] 0x0D
# St = 0x21, Et = 0x0D
# Zn = 0x01 (master) | 0x02 (zone 2) - zone number 1 is the master zone
# Cc = command code (hex)
# Dl = number of data bytes that follow (excluding Et)
# Data = command payload (see per-action description)
# Response frame: 0x21 Zn Cc Ac Dl Data… 0x0D where Ac is the answer code
# 0x00 = Status update / accepted
# 0x82 = Zone Invalid
# 0x83 = Command not recognised
# 0x84 = Parameter not recognised
# 0x85 = Command invalid at this time
# 0x86 = Invalid data length
#
# Note: commands 0xF0 to 0xFF are reserved for test functions and must not be used.
# --- AMX Duet Dynamic Device Discovery (ASCII) --------------------------------
- id: amx_duet_discovery
label: AMX Duet Discovery
kind: query
command: 'AMX\r' # ASCII text, carriage return terminated
params: []
notes: >
ASCII command, not the binary frame. Each model returns its own AMXB
descriptor (ASCII, carriage-return terminated). x.y.z = RS-232 protocol
version number.
AV860 : "AMXB<Device-SDKClass=Receiver><Device-Make=ARCAM><Device-Model=AV860><Device-Revision=x.y.z>\r"
AVR850 : "AMXB<Device-SDKClass=Receiver><Device-Make=ARCAM><Device-Model=AVR850><Device-Revision=x.y.z>\r"
AVR550 : "AMXB<Device-SDKClass=Receiver><Device-Make=ARCAM><Device-Model=AVR550><Device-Revision=x.y.z>\r"
AVR390 : "AMXB<Device-SDKClass=Receiver><Device-Make=ARCAM><Device-Model=AVR390><Device-Revision=x.y.z>\r"
SR250 : "AMXB<Device-SDKClass=Receiver><Device-Make=ARCAM><Device-Model=SR250><Device-Revision=x.y.z>\r"
# --- System commands ---------------------------------------------------------
- id: cmd_0x00_power_query
label: Power (request standby state)
kind: query
command: '0x21 {Zn} 0x00 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number (0x01 master, 0x02 zone 2)
notes: Response Data1: 0x00 = zone is in standby; 0x01 = zone is powered on.
- id: cmd_0x01_display_brightness
label: Display Brightness
kind: action
command: '0x21 {Zn} 0x01 0x01 {Data1} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: Data1
type: enum
values: [0x00, 0x01, 0x02, 0xF0]
description: 0x00 = Front panel off; 0x01 = Front panel L1; 0x02 = Front panel L2; 0xF0 = Request current brightness
notes: Source example uses Zn=0x01 with Data1=0xF0 (request); echoed in response.
- id: cmd_0x02_headphones
label: Headphones Connection Status
kind: query
command: '0x21 {Zn} 0x02 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: Response Data1: 0x00 = headphones not connected; 0x01 = headphones connected.
- id: cmd_0x03_fm_genre
label: FM Programme Type (Genre)
kind: query
command: '0x21 {Zn} 0x03 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Response: Data1..Data<n> = the radio programme type in ASCII characters.
Returns answer code 0x85 if FM is not selected on the indicated zone.
- id: cmd_0x04_software_version
label: Software Version
kind: query
command: '0x21 {Zn} 0x04 0x01 {component} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: component
type: enum
values: [0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5]
description: 0xF0 = RS-232 version; 0xF1 = Host; 0xF2 = OSD; 0xF3 = DSP; 0xF4 = NET; 0xF5 = IAP
notes: Response Dl=0x03, Data1 = echo of component byte, Data2 = major, Data3 = minor version.
- id: cmd_0x05_restore_factory_default
label: Restore Factory Default Settings
kind: action
command: '0x21 0x01 0x05 0x02 0xAA 0xAA 0x0D'
params: []
notes: >
Forces a factory reset. The 0xAA 0xAA confirmation pattern is required to
avoid an accidental restore. Zn is fixed at 0x01 in the source example.
Response: 0x21 0x01 0x05 0x00 0x00 0x0D.
- id: cmd_0x06_save_restore_secure_copy
label: Save/Restore Secure Copy of Settings
kind: action
command: '0x21 0x01 0x06 0x07 {op} 0x55 0x55 {pin1} {pin2} {pin3} {pin4} 0x0D'
params:
- name: op
type: enum
values: [0x00, 0x01]
description: 0x00 = Save secure backup; 0x01 = Restore secure backup
- name: pin1
type: integer
description: PIN digit 1
- name: pin2
type: integer
description: PIN digit 2
- name: pin3
type: integer
description: PIN digit 3
- name: pin4
type: integer
description: PIN digit 4
notes: >
Zn fixed at 0x01. 0x55 0x55 confirmation pattern must follow Data1. Source
response frame is 0x21 0x01 0x06 0x00 0x00 0x0D (Dl=0x00, no payload).
Behavioural rules from source: (a) restore returns 0x85 if no secure
backup exists; (b) if a save is in progress and another save is requested
the second save fails silently; (c) if command 0x1E is currently being
processed this command fails with 0x85. Command 0x1E is referenced but
not defined in this source.
- id: cmd_0x08_simulate_rc5
label: Simulate RC5 IR Command
kind: action
command: '0x21 {Zn} 0x08 0x02 {system} {command} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: system
type: hex
description: RC5 system code (e.g. 0x10 for AV device, 0x17 for Zone 2 device)
- name: command
type: hex
description: RC5 command code (see Notes for full table)
notes: >
An additional status message is sent in most cases as a result of the IR
command. Response echoes system + command. See "AV RC5 command codes" in
Notes for the full list of system/command pairs the unit recognises.
- id: cmd_0x09_display_information_type
label: Display Information Type
kind: action
command: '0x21 {Zn} 0x09 0x01 {mode} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: mode
type: integer
description: >
For all sources: 0x00 = Processing mode; 0xE0 = Cycle all displayable
info; 0xF0 = Request current display type. FM: 0x01 Radio text, 0x02
Programme type, 0x03 Signal strength. DAB (AVR450/750 only): 0x01
Radio text, 0x02 Genre, 0x03 Signal quality, 0x04 Bit rate. NET/USB:
0x01 Track, 0x02 Artist, 0x03 Album, 0x04 audio type, 0x05 rate.
notes: The response echoes the data sent.
- id: cmd_0x1D_request_current_source
label: Request Current Source
kind: query
command: '0x21 {Zn} 0x1D 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Response Data1 = current source: 0x00 Follow Z1, 0x01 CD, 0x02 BD, 0x03 AV,
0x04 SAT, 0x05 PVR, 0x06 VCR, 0x08 AUX, 0x09 DISPLAY, 0x0B TUNER (FM),
0x0C TUNER (DAB, AVR450/750 only), 0x0E NET, 0x0F USB, 0x10 STB, 0x11 GAME.
- id: cmd_0x1F_headphone_override
label: Headphone Over-ride (mute relays)
kind: action
command: '0x21 {Zn} 0x1F 0x01 {state} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: state
type: enum
values: [0x00, 0x01]
description: 0x00 = Clear (speakers muted if headphones present); 0x01 = Set (speakers unmuted if headphones present)
notes: Activates/deactivates the mute relays; does not zero the volume.
# --- Input commands ----------------------------------------------------------
- id: cmd_0x0A_video_selection
label: Video Selection
kind: action
command: '0x21 0x01 0x0A 0x01 {source} 0x0D'
params:
- name: source
type: enum
values: [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0xF0]
description: 0x00 BD, 0x01 SAT, 0x02 AV, 0x03 PVR, 0x04 VCR, 0x05 Game, 0x06 STB, 0xF0 Request current input
notes: Zn is fixed at 0x01 in the source. Returns 0x85 if OSD is showing the setup screen.
- id: cmd_0x0B_audio_input_type
label: Select Analogue/Digital/HDMI Audio Input
kind: action
command: '0x21 {Zn} 0x0B 0x01 {type} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: type
type: enum
values: [0x00, 0x01, 0x02, 0xF0]
description: 0x00 Analogue, 0x01 Digital, 0x02 HDMI, 0xF0 Request audio type in use
notes: Returns 0x85 if OSD is showing the setup screen.
# --- Output commands ---------------------------------------------------------
- id: cmd_0x0D_volume
label: Set/Request Volume
kind: action
command: '0x21 {Zn} 0x0D 0x01 {volume} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: volume
type: integer
description: '0x00 (0) - 0x63 (99) to set volume; 0xF0 to request current volume. Volume is in dB; e.g. 0x2A = 42 dB.'
notes: Returns the volume even if the zone is muted (use 0x0E for mute).
- id: cmd_0x0E_mute_status
label: Request Mute Status
kind: query
command: '0x21 {Zn} 0x0E 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: Response Data1: 0x00 = muted; 0x01 = not muted.
- id: cmd_0x0F_direct_mode_status
label: Request Direct Mode Status (Z1)
kind: query
command: '0x21 0x01 0x0F 0x01 0xF0 0x0D'
params: []
notes: Response Data1: 0x00 = Direct off; 0x01 = Direct on.
- id: cmd_0x10_decode_mode_2ch
label: Request Decode Mode Status - 2ch (Z1)
kind: query
command: '0x21 0x01 0x10 0x01 0xF0 0x0D'
params: []
notes: >
Response Data1: 0x01 Stereo, 0x04 Dolby Surround, 0x07 Neo:6 Cinema,
0x08 Neo:6 Music, 0x09 5/7 Ch Stereo, 0x0A DTS Neural:X, 0x0B Reserved,
0x0C DTS Virtual:X.
- id: cmd_0x11_decode_mode_mch
label: Request Decode Mode Status - MCH (Z1)
kind: query
command: '0x21 0x01 0x11 0x01 0xF0 0x0D'
params: []
notes: >
Response Data1: 0x01 Stereo down-mix, 0x02 Multi-channel, 0x03 DTS-ES /
Neural:X, 0x06 Dolby Surround, 0x0B Reserved, 0x0C DTS Virtual:X.
- id: cmd_0x12_rds_info
label: Request RDS Information
kind: query
command: '0x21 {Zn} 0x12 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Response: Data1..Data<n> = the radio programme type in ASCII.
Returns 0x85 if FM is not selected on the given zone.
- id: cmd_0x13_video_output_resolution
label: Request Video Output Resolution (Z1)
kind: query
command: '0x21 0x01 0x13 0x01 0xF0 0x0D'
params: []
notes: >
Response Data1: 0x02 SD Progressive, 0x03 720p, 0x04 1080i, 0x05 1080p,
0x06 Preferred, 0x07 Bypass, 0x08 4k.
- id: cmd_0x0C_imax_enhanced
label: IMAX Enhanced
kind: action
command: '0x21 {Zn} 0x0C 0x01 {mode} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: mode
type: enum
values: [0xF0, 0xF1, 0xF2, 0xF3]
description: 0xF0 Request current state; 0xF1 IMAX Auto; 0xF2 IMAX On; 0xF3 IMAX Off
notes: Response Data1: 0x00 Off, 0x01 On, 0x02 Auto.
# --- Menu commands -----------------------------------------------------------
- id: cmd_0x14_menu_status
label: Request Menu Status (Z1)
kind: query
command: '0x21 0x01 0x14 0x01 0xF0 0x0D'
params: []
notes: >
Response Data1: 0x00 No menu, 0x02 Set-up, 0x03 Trim, 0x04 Bass, 0x05
Treble, 0x06 Sync, 0x07 Sub, 0x08 Tuner, 0x09 Network, 0x0A USB.
- id: cmd_0x15_tuner_preset
label: Request/Set Tuner Preset
kind: action
command: '0x21 {Zn} 0x15 0x01 {preset} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: preset
type: integer
description: '0x01-0x32 (1-50) preset number to select; 0xF0 to request current preset'
notes: >
Response Data1: 0xFF = no preset selected; 0x01-0x32 = current preset.
Returns 0x85 if tuner is not selected on the given zone.
- id: cmd_0x16_tune
label: Tune (FM step ±0.05 MHz)
kind: action
command: '0x21 {Zn} 0x16 0x01 {dir} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: dir
type: enum
values: [0x00, 0x01, 0xF0]
description: 0x00 Decrement 1 step; 0x01 Increment 1 step; 0xF0 Request current frequency
notes: >
FM step is 0.05 MHz. Response Data1 = MHz, Data2 = 10's of kHz. Returned
values may include bytes that are not printable ASCII. Returns 0x85 if
tuner is not selected on the given zone.
- id: cmd_0x18_dab_station
label: Request DAB Station
kind: query
command: '0x21 {Zn} 0x18 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Response: 16 ASCII bytes (the service label, space-padded to 16).
Returns 0x85 if DAB is not selected on the given zone.
- id: cmd_0x19_programme_type
label: DAB Programme Type/Category
kind: query
command: '0x21 {Zn} 0x19 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Response: 16 ASCII bytes (programme type, space-padded).
Returns 0x85 if DAB is not selected on the given zone.
- id: cmd_0x1A_dls_pdt
label: DLS/PDT Info (DAB Radio Text)
kind: query
command: '0x21 {Zn} 0x1A 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Response: Dl=0x80 (128 bytes), Data1..Data128 = 128 ASCII bytes
(dynamic label / programme-associated data, space-padded to 0x20).
Returns 0x85 if DAB is not selected on the given zone.
- id: cmd_0x1B_preset_details
label: Request Preset Details
kind: query
command: '0x21 {Zn} 0x1B 0x01 {preset} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: preset
type: integer
description: '0x01-0x32 (1-50) the preset number to query'
notes: >
Response: Data1 = preset number echoed; Data2 = 0x01 FM frequency, 0x02
FM RDS name, 0x03 DAB (AVR450/750 only); Data3/Data4 = FM frequency
(MHz / 10's kHz); remaining = name in ASCII (DAB or FM with RDS).
- id: cmd_0x1C_network_playback_status
label: Network Playback Status
kind: query
command: '0x21 {Zn} 0x1C 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Response Data1: 0x00 Navigating, 0x01 Playing, 0x02 Paused, 0xFF Busy/
Not Playing. If navigating, Data2.. = folder name; if playing/paused,
Data2.. = file name (ASCII). Returns 0x85 if network is not selected on
the given zone.
# --- Setup adjustment commands ----------------------------------------------
- id: cmd_0x35_treble
label: Treble Equalisation
kind: action
command: '0x21 {Zn} 0x35 0x01 {value} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: value
type: integer
description: '0x00-0x0C sets 0 dB to +12 dB; 0x81-0x8C sets -1 dB to -12 dB; 0xF0 Request; 0xF1 Increment 1 dB; 0xF2 Decrement 1 dB'
notes: Response echoes the current treble value with the same encoding.
- id: cmd_0x36_bass
label: Bass Equalisation
kind: action
command: '0x21 {Zn} 0x36 0x01 {value} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: value
type: integer
description: '0x00-0x0C sets 0 dB to +12 dB; 0x81-0x8C sets -1 dB to -12 dB; 0xF0 Request; 0xF1 Increment 1 dB; 0xF2 Decrement 1 dB'
notes: Response echoes the current bass value with the same encoding.
- id: cmd_0x37_room_eq
label: Room Equalisation
kind: action
command: '0x21 {Zn} 0x37 0x01 {state} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: state
type: enum
values: [0xF0, 0xF1, 0xF2]
description: 0xF0 Request current; 0xF1 Room EQ on; 0xF2 Room EQ off
notes: >
Response Data1: 0x00 Off, 0x01 On, 0x02 Not calculated (therefore off).
- id: cmd_0x38_dolby_volume
label: Dolby Volume
kind: action
command: '0x21 {Zn} 0x38 0x01 {state} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: state
type: enum
values: [0x00, 0x01, 0xF0]
description: 0x00 Off; 0x01 On; 0xF0 Request current
notes: Response Data1: 0x00 Off, 0x01 On.
- id: cmd_0x39_dolby_leveller
label: Dolby Leveller
kind: action
command: '0x21 {Zn} 0x39 0x01 {value} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: value
type: integer
description: '0x00-0x0A sets 0-10; 0xF0 Request; 0xF1 Increment; 0xF2 Decrement; 0xFF Off'
notes: Response Data1: 0x00-0x0A current level, 0xFF Off.
- id: cmd_0x3A_dolby_volume_calibration_offset
label: Dolby Volume Calibration Offset
kind: action
command: '0x21 {Zn} 0x3A 0x01 {value} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: value
type: integer
description: '0x00-0x0F sets 0 to +15 dB; 0x80-0x8F sets -1 to -15 dB; 0xF0 Request; 0xF1 Increment 1 dB; 0xF2 Decrement 1 dB'
notes: Response echoes the current offset.
- id: cmd_0x3B_balance
label: Balance
kind: action
command: '0x21 {Zn} 0x3B 0x01 {value} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: value
type: integer
description: '0x00-0x06 sets 0 to +6; 0x81-0x86 sets -1 to -6; 0xF0 Request; 0xF1 Increment 1 dB; 0xF2 Decrement 1 dB'
notes: Response echoes the current balance with the same encoding.
- id: cmd_0x3F_subwoofer_trim
label: Subwoofer Trim
kind: action
command: '0x21 {Zn} 0x3F 0x01 {value} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: value
type: integer
description: '0x00-0x14 positive trim in 0.5 dB steps (e.g. 0x02 = +1.0 dB); 0x81-0x94 negative trim in 0.5 dB steps (e.g. 0x82 = -1.0 dB); 0xF0 Request; 0xF1 Increment 0.5 dB; 0xF2 Decrement 0.5 dB'
notes: Response echoes the current subwoofer trim with the same encoding.
- id: cmd_0x40_lipsync_delay
label: Lipsync Delay
kind: action
command: '0x21 {Zn} 0x40 0x01 {value} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: value
type: integer
description: '0x00-0x32 sets delay in 5 ms steps (e.g. 0x08 = 40 ms); 0xF0 Request; 0xF1 Increment 5 ms; 0xF2 Decrement 5 ms'
notes: Response echoes the current delay with the same encoding.
- id: cmd_0x41_compression
label: Compression (Dynamic Range)
kind: action
command: '0x21 {Zn} 0x41 0x01 {value} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: value
type: enum
values: [0x00, 0x01, 0x02, 0xF0]
description: 0x00 Off, 0x01 Medium, 0x02 High, 0xF0 Request
notes: Response Data1: 0x00 Off, 0x01 medium, 0x02 high.
- id: cmd_0x42_incoming_video_parameters
label: Request Incoming Video Parameters
kind: query
command: '0x21 {Zn} 0x42 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Response Dl=0x07: Data1 Data2 = horizontal resolution MSB/LSB (e.g. 0x05 0x00
= 1280); Data3 Data4 = vertical resolution MSB/LSB (e.g. 0x02 0xD0 = 720);
Data5 = refresh rate for full image update (half the field rate for
interlaced signals; e.g. 0x32 = 50 Hz progressive); Data6 = 0x00
Progressive / 0x01 Interlaced; Data7 = 0x00 Undefined, 0x01 4:3, 0x02 16:9.
- id: cmd_0x43_incoming_audio_format
label: Request Incoming Audio Format
kind: query
command: '0x21 {Zn} 0x43 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Response Dl=0x02. Data1 = audio stream format: 0x00 PCM, 0x01 Analogue
Direct, 0x02 Dolby Digital, 0x03 DD EX, 0x04 DD Surround, 0x05 DD Plus,
0x06 DD True HD, 0x07 DTS, 0x08 DTS 96/24, 0x09 DTS ES Matrix, 0x0A DTS
ES Discrete, 0x0B DTS ES Matrix 96/24, 0x0C DTS ES Discrete 96/24, 0x0D
DTS HD Master, 0x0E DTS HD High Res, 0x0F DTS Low Bit Rate, 0x10 DTS
Core, 0x13 PCM Zero, 0x14 Unsupported, 0x15 Undetected, 0x16 Dolby
Atmos, 0x17 DTS:X, 0x18 IMAX ENHANCED. Data2 = audio channel
configuration: 0x00 Dual Mono, 0x01 Centre only, 0x02 Stereo only,
0x03 Stereo + mono surround, 0x04 Stereo + Surround L & R, 0x05 Stereo
+ Surround L & R + mono Surround Back, 0x06 Stereo + Surround L & R +
Surround Back L & R, 0x07 Stereo + Surround L & R containing matrix
information for surround back L&R, 0x08 Stereo + Centre, 0x09 Stereo +
Centre + mono surround, 0x0A Stereo + Centre + Surround L & R, 0x0B
Stereo + Centre + Surround L & R + mono Surround Back, 0x0C Stereo +
Centre + Surround L & R + Surround Back L & R, 0x0D Stereo + Centre +
Surround L & R containing matrix information for surround back L&R, 0x0E
Stereo Downmix Lt Rt, 0x0F Stereo Only (Lo Ro), 0x10 Dual Mono + LFE,
0x11 Centre + LFE, 0x12 Stereo + LFE, 0x13 Stereo + single surround +
LFE, 0x14 Stereo + Surround L & R + LFE, 0x15 Stereo + Surround L & R
+ mono Surround Back + LFE, 0x16 Stereo + Surround L & R + Surround
Back L & R + LFE, 0x17 Stereo + Surround L & R + LFE, 0x18 Stereo +
Centre + LFE containing matrix information (line truncated in source
beyond this point). Source stream-format table skips 0x11 and 0x12 (DTS
Core 0x10 jumps to PCM Zero 0x13) and 0x1A-0xFF are reserved/unused.
- id: cmd_0x44_incoming_audio_sample_rate
label: Request Incoming Audio Sample Rate
kind: query
command: '0x21 {Zn} 0x44 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Response Data1: 0x00 32 kHz, 0x01 44.1 kHz, 0x02 48 kHz, 0x03 88.2 kHz,
0x04 96 kHz, 0x05 176.4 kHz, 0x06 192 kHz, 0x07 Unknown, 0x08 Undetected.
- id: cmd_0x45_sub_stereo_trim
label: Set/Request Sub Stereo Trim
kind: action
command: '0x21 {Zn} 0x45 0x01 {value} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: value
type: integer
description: '0x00 sets 0 dB; 0x81-0x94 sets -0.5 dB to -10.0 dB in 0.5 dB steps; 0xF0 Request; 0xF1 Increment 0.5 dB; 0xF2 Decrement 0.5 dB'
notes: Response Data1 = current sub stereo trim with the same encoding.
- id: cmd_0x4E_zone1_osd
label: Set/Request Zone 1 OSD On/Off
kind: action
command: '0x21 0x01 0x4E 0x01 {state} 0x0D'
params:
- name: state
type: enum
values: [0xF0, 0xF1, 0xF2]
description: 0xF0 Request; 0xF1 Set OSD On; 0xF2 Set OSD Off
notes: >
Zn fixed at 0x01. Response Data1: 0x00 OSD On, 0x01 OSD Off.
Source's worked example uses command code 0x4A in both the request and
response frames (with a response Dl=0x00 plus a stray Data1=0x01 byte
that is inconsistent with the framing) - this contradicts the 0x4E
spec table, which the rest of the source consistently defines; treated
here as 0x4E per the table.
- id: cmd_0x4F_video_output_switching
label: Set/Request HDMI Video Output Switching
kind: action
command: '0x21 0x01 0x4F 0x01 {output} 0x0D'
params:
- name: output
type: enum
values: [0x02, 0x03, 0x04, 0xF0]
description: 0x02 HDMI Output 1; 0x03 HDMI Output 2; 0x04 HDMI Output 1 & 2; 0xF0 Request
notes: Zn fixed at 0x01. Response echoes current setting.
- id: cmd_0x20_input_name
label: Set/Request Input Name
kind: action
command: '0x21 {Zn} 0x20 0x{n} [bytes] 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: n
type: integer
description: 'Query: Dl=0x01, Data1=0xF0. Set: Dl <= 0x0A (up to 10 ASCII characters).'
- name: bytes
type: string
description: 'Up to 10 ASCII characters of the desired input name (set); omit for query.'
notes: >
Zn=0x01 in source example. Response Dl=0x0A when querying (always 10
bytes); Dl=Data length when setting.
- id: cmd_0x23_fm_scan
label: FM Scan Up/Down
kind: action
command: '0x21 {Zn} 0x23 0x01 {dir} 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
- name: dir
type: enum
values: [0x01, 0x02]
description: 0x01 Scan up; 0x02 Scan down
notes: Only valid if FM input is selected. Response Data1: 0xFF = scanning.
- id: cmd_0x24_dab_scan
label: DAB Scan
kind: action
command: '0x21 {Zn} 0x24 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: Only valid if DAB input is selected. Response Data1: 0xFF = scanning.
- id: cmd_0x25_heartbeat
label: Heartbeat
kind: action
command: '0x21 {Zn} 0x25 0x01 0xF0 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
Confirms the unit is still connected and resets the EuP standby timer.
Response Data1: 0x00.
- id: cmd_0x26_reboot
label: Reboot
kind: action
command: '0x21 {Zn} 0x26 0x06 0x52 0x45 0x42 0x4F 0x4F 0x54 0x0D'
params:
- name: Zn
type: enum
values: [0x01, 0x02]
description: Zone number
notes: >
The 6-byte data payload is the literal ASCII word "REBOOT" (0x52 0x45
0x42 0x4F 0x4F 0x54) - a confirmation guard against accidental reboot.
Response: 0x21 Zn 0x26 0x01 0x00 0x0D.
Feedbacks
# Response answer codes (always present in response Ac field):
- id: answer_code
type: enum
values: [0x00, 0x82, 0x83, 0x84, 0x85, 0x86]
description: 0x00 status update / accepted; 0x82 zone invalid; 0x83 command not recognised; 0x84 parameter not recognised; 0x85 command invalid at this time; 0x86 invalid data length.
# State observables from query commands:
- id: power_state
type: enum
values: [standby, on]
description: From 0x00 request; 0x00=standby, 0x01=on.
- id: display_brightness
type: enum
values: [off, L1, L2]
description: From 0x01 request; 0x00=off, 0x01=L1, 0x02=L2.
- id: headphone_state
type: enum
values: [disconnected, connected]
description: From 0x02 request; 0x00=disconnected, 0x01=connected.
- id: mute_state
type: enum
values: [muted, unmuted]
description: From 0x0E request; 0x00=muted, 0x01=not muted.
- id: direct_mode
type: enum
values: [off, on]
description: From 0x0F request; 0x00=off, 0x01=on.
- id: decode_mode_2ch
type: enum
values: [stereo, dolby_surround, neo6_cinema, neo6_music, ch5_7_stereo, dts_neuralx, reserved, dts_virtualx]
description: From 0x10; 0x01/0x04/0x07/0x08/0x09/0x0A/0x0B/0x0C.
- id: decode_mode_mch
type: enum
values: [stereo_downmix, multichannel, dts_es_neuralx, dolby_surround, reserved, dts_virtualx]
description: From 0x11; 0x01/0x02/0x03/0x06/0x0B/0x0C.
- id: video_output_resolution
type: enum
values: [sd_progressive, 720p, 1080i, 1080p, preferred, bypass, 4k]
description: From 0x13; 0x02/0x03/0x04/0x05/0x06/0x07/0x08.
- id: open_menu
type: enum
values: [none, setup, trim, bass, treble, sync, sub, tuner, network, usb]
description: From 0x14; 0x00/0x02/0x03/0x04/0x05/0x06/0x07/0x08/0x09/0x0A.
- id: imax_enhanced_state
type: enum
values: [off, on, auto]
description: From 0x0C; 0x00/0x01/0x02.
- id: room_eq_state
type: enum
values: [off, on, not_calculated]
description: From 0x37; 0x00/0x01/0x02.
- id: dolby_volume_state
type: enum
values: [off, on]
description: From 0x38; 0x00/0x01.
- id: dolby_leveller
type: integer
description: From 0x39; 0x00-0x0A, or 0xFF = off.
- id: compression
type: enum
values: [off, medium, high]
description: From 0x41; 0x00/0x01/0x02.
- id: zone1_osd_state
type: enum
values: [on, off]
description: From 0x4E; 0x00=on, 0x01=off.
- id: video_output_switching
type: enum
values: [hdmi1, hdmi2, hdmi1_and_2]
description: From 0x4F; 0x02/0x03/0x04.
- id: current_source
type: enum
values: [follow_z1, cd, bd, av, sat, pvr, vcr, aux, display, tuner_fm, tuner_dab, net, usb, stb, game]
description: From 0x1D; 0x00/0x01/0x02/0x03/0x04/0x05/0x06/0x08/0x09/0x0B/0x0C/0x0E/0x0F/0x10/0x11. Note 0x0C TUNER(DAB) only on AVR450/750.
- id: current_preset
type: integer
description: From 0x15; 0x01-0x32 (1-50), or 0xFF if no preset is selected.
- id: fm_frequency
type: string
description: From 0x16; Data1 = MHz byte, Data2 = 10's of kHz byte. Combine as Data1.Data2 * 0.05 MHz (e.g. 0x55 0x05 = 85.05 MHz).
- id: network_playback_state
type: enum
values: [navigating, playing, paused, busy]
description: From 0x1C; 0x00/0x01/0x02/0xFF.
- id: incoming_audio_sample_rate
type: enum
values: [32k, 44_1k, 48k, 88_2k, 96k, 176_4k, 192k, unknown, undetected]
description: From 0x44; 0x00/0x01/0x02/0x03/0x04/0x05/0x06/0x07/0x08.
- id: fm_programme_type
type: string
description: From 0x03; ASCII string of the current FM programme type.
- id: dab_station_label
type: string
description: From 0x18; 16 ASCII bytes (space-padded) of the DAB service label.
- id: dab_programme_type
type: string
description: From 0x19; 16 ASCII bytes (space-padded) of the DAB programme type.
- id: dab_dynamic_label
type: string
description: From 0x1A; 128 ASCII bytes (space-padded) of DAB DLS/PDT text.
- id: rds_programme_type
type: string
description: From 0x12; ASCII string of the current RDS programme information.
- id: volume_db
type: integer
description: From 0x0D; 0x00-0x63 maps to 0-99 (treated as dB in source; e.g. 0x2A = 42).
- id: treble_db
type: integer
description: From 0x35; 0x00-0x0C (0 to +12 dB) or 0x81-0x8C (-1 to -12 dB).
- id: bass_db
type: integer
description: From 0x36; 0x00-0x0C (0 to +12 dB) or 0x81-0x8C (-1 to -12 dB).
- id: balance
type: integer
description: From 0x3B; 0x00-0x06 (0 to +6) or 0x81-0x86 (-1 to -6).
- id: subwoofer_trim
type: integer
description: From 0x3F; 0x00-0x14 (0 to +10 dB in 0.5 dB steps) or 0x81-0x94 (negative).
- id: sub_stereo_trim
type: integer
description: From 0x45; 0x00 (0 dB) or 0x81-0x94 (-0.5 dB to -10.0 dB in 0.5 dB steps).
- id: lipsync_delay_ms
type: integer
description: From 0x40; 0x00-0x32 x 5 ms (e.g. 0x08 = 40 ms).
- id: dolby_volume_calibration_offset
type: integer
description: From 0x3A; 0x00-0x0F (0 to +15 dB) or 0x80-0x8F (-1 to -15 dB).
- id: software_version
type: string
description: From 0x04; major.minor bytes for component (RS-232, Host, OSD, DSP, NET, IAP).
- id: incoming_video_parameters
type: object
description: >
From 0x42; 7-byte payload: horizontal resolution (MSB/LSB), vertical
resolution (MSB/LSB), refresh rate (full image update; half field rate
for interlaced), progressive/interlaced flag, aspect ratio (undefined /
4:3 / 16:9).
- id: incoming_audio_format
type: object
description: >
From 0x43; stream format (PCM, DD family, DTS family, Atmos, DTS:X, IMAX
ENHANCED) plus channel configuration byte. Full tables in source;
stream format 0x11/0x12 and 0x1A+ unused, channel configuration 0x19+
source-truncated.
- id: amx_duet_descriptor
type: object
description: >
From AMX Duet discovery. Returns a model-specific AMXB descriptor with
Device-SDKClass=Receiver, Device-Make=ARCAM, Device-Model={AV860|AVR850|
AVR550|AVR390|SR250}, Device-Revision=x.y.z (RS-232 protocol version).
Variables
# Continuous settable values that the host adjusts. Discrete one-shot
# commands (e.g. restore factory default, reboot) are in Actions.
- id: volume
type: integer
range: [0, 99]
description: 'Zone volume, 0x00-0x63. Set/Request via 0x0D.'
- id: treble
type: integer
range: [-12, 12]
description: 'Treble EQ in dB. 0x00-0x0C (0 to +12 dB), 0x81-0x8C (-1 to -12 dB). Set/Request via 0x35.'
- id: bass
type: integer
range: [-12, 12]
description: 'Bass EQ in dB. 0x00-0x0C (0 to +12 dB), 0x81-0x8C (-1 to -12 dB). Set/Request via 0x36.'
- id: balance
type: integer
range: [-6, 6]
description: 'Balance offset. 0x00-0x06 (0 to +6), 0x81-0x86 (-1 to -6). Set/Request via 0x3B.'
- id: subwoofer_trim
type: integer
range: [-10, 10]
description: 'Subwoofer trim in 0.5 dB steps. 0x00-0x14 (0 to +10), 0x81-0x94 (negative). Set/Request via 0x3F.'
- id: sub_stereo_trim
type: integer
range: [-10, 0]
description: 'Sub Stereo trim in 0.5 dB steps. 0x00 (0 dB), 0x81-0x94 (-0.5 dB to -10.0 dB). Set/Request via 0x45.'
- id: lipsync_delay
type: integer
range: [0, 250]
description: 'Lipsync delay in ms, set in 5 ms steps. 0x00-0x32 (0 to 250 ms). Set/Request via 0x40.'
- id: dolby_leveller
type: integer
range: [0, 10]
description: 'Dolby Leveller setting 0-10, or 0xFF = off. Set/Request via 0x39.'
- id: dolby_volume_calibration_offset
type: integer
range: [-15, 15]
description: 'Calibration offset in dB. 0x00-0x0F (0 to +15), 0x80-0x8F (-1 to -15). Set/Request via 0x3A.'
- id: compression
type: enum
values: [off, medium, high]
description: 'Dynamic range compression. Set/Request via 0x41.'
- id: video_output_resolution
type: enum
values: [sd_progressive, 720p, 1080i, 1080p, preferred, bypass, 4k]
description: 'Zone 1 video output resolution. Read-only via 0x13.'
- id: zone1_osd
type: enum
values: [on, off]
description: 'Whether the Zone 1 OSD is shown. Set/Request via 0x4E.'
- id: video_output_switching
type: enum
values: [hdmi1, hdmi2, hdmi1_and_2]
description: 'HDMI output routing. Set/Request via 0x4F.'
- id: imax_enhanced
type: enum
values: [off, on, auto]
description: 'IMAX Enhanced mode. Set/Request via 0x0C.'
- id: room_eq
type: enum
values: [off, on]
description: 'Room EQ on/off. Set/Request via 0x37 (note 0x02 = not calculated is a read-only state).'
- id: dolby_volume
type: enum
values: [off, on]
description: 'Dolby Volume on/off. Set/Request via 0x38.'
- id: direct_mode
type: enum
values: [off, on]
description: 'Direct mode. Set via RC5 16-10 / Simulate RC5. Read via 0x0F.'
- id: input_name
type: string
max_length: 10
description: 'Custom input name (up to 10 ASCII chars). Set/Request via 0x20.'
Events
# The source notes (page "State changes as a result of other inputs") that
# the unit relays state changes to the controller using the appropriate
# message type, but the document does not enumerate a distinct unsolicited
# event frame - updates use the same response format as the corresponding
# command, sent unprompted.
# UNRESOLVED: the source does not define a separate "asynchronous status
# message" frame format; only the standard response frame (St Zn Cc Ac Dl
# Data... Et) is documented, and it is unspecified which command codes can
# appear unsolicited vs. only in response to a polled request.
Macros
# UNRESOLVED: no multi-step sequences are described in the source.
Safety
confirmation_required_for:
- restore_factory_default # 0x05 - requires 0xAA 0xAA confirmation pattern
- save_restore_secure_copy # 0x06 - requires 0x55 0x55 + 4-digit PIN
- reboot # 0x26 - requires literal "REBOOT" (0x52 0x45 0x42 0x4F 0x4F 0x54) data payload
interlocks: []
# No additional safety warnings, interlock procedures, or power-on
# sequencing requirements appear in the source.
Notes
- Cable: serial is a null modem (pin 2<->3 crossed, pin 5 ground). Do not connect handshaking lines - flow control is none.
- Default-off control: RS-232 / IP control is disabled by default to minimise standby power. It must be enabled per-unit: hold the front panel DIRECT button for 4 s until the VFD shows "RS232 CONTROL ON", or toggle Control in the OSD General Setup menu.
- IP control port: 50000 (TCP). The source does not document authentication or session handshakes for either serial or IP.
- 3-second response budget: the unit responds to each command within three seconds, and the controller may send further commands before a previous response is received.
- Reserved range: command codes 0xF0-0xFF are reserved for test functions and must not be sent.
- RC5 simulation: the Simulate RC5 IR command (0x08) is the only mechanism to drive many UI actions (standby, power, transport, numeric keys, etc.) that have no native binary command code. RC5 code tables below are reproduced verbatim from the source.
AV RC5 command codes - Basic Functions (system 0x10 unless noted)
| Function | RC5 code (decimal) | RC5 code (hex Data1 Data2) |
|---|---|---|
| Standby | 16-12 | 0x10 0x0C |
| 1 | 16-1 | 0x10 0x01 |
| 2 | 16-2 | 0x10 0x02 |
| 3 | 16-3 | 0x10 0x03 |
| 4 | 16-4 | 0x10 0x04 |
| 5 | 16-5 | 0x10 0x05 |
| 6 | 16-6 | 0x10 0x06 |
| 7 | 16-7 | 0x10 0x07 |
| 8 | 16-8 | 0x10 0x08 |
| 9 | 16-9 | 0x10 0x09 |
| 0 | 16-0 | 0x10 0x00 |
| Access Lipsync Delay | 16-50 | 0x10 0x32 |
| Cycle VFD information panels | 16-55 | 0x10 0x37 |
| Rewind | 16-121 | 0x10 0x79 |
| Fast Forward | 16-52 | 0x10 0x34 |
| Skip Back | 16-33 | 0x10 0x21 |
| Skip Forward | 16-11 | 0x10 0x0B |
| Stop | 16-54 | 0x10 0x36 |
| Play | 16-53 | 0x10 0x35 |
| Pause | 16-48 | 0x10 0x30 |
| Disc / Record (Enter Trim Menu) | 16-90 | 0x10 0x5A |
| MENU (Enter system menu) | 16-82 | 0x10 0x52 |
| Navigate Up | 16-86 | 0x10 0x56 |
| Pop Up (Dolby Volume on/off) | 16-70 | 0x10 0x46 |
| Navigate Left | 16-81 | 0x10 0x51 |
| OK | 16-87 | 0x10 0x57 |
| Navigate Right | 16-80 | 0x10 0x50 |
| Audio (Room EQ on/off) | 16-30 | 0x10 0x1E |
| Navigate Down | 16-85 | 0x10 0x55 |
| RTN (Access Subwoofer Trim) | 16-51 | 0x10 0x33 |
| HOME | 16-43 | 0x10 0x2B |
| Mute | 16-13 | 0x10 0x0D |
| Volume + | 16-16 | 0x10 0x10 |
| MODE (cycle decode modes) | 16-32 | 0x10 0x20 |
| DISP (VFD brightness) | 16-59 | 0x10 0x3B |
| Direct mode | 16-10 | 0x10 0x0A |
| Volume - | 16-17 | 0x10 0x11 |
| Red | 16-41 | 0x10 0x29 |
| Green | 16-42 | 0x10 0x2A |
| Yellow | 16-43 | 0x10 0x2B |
| Blue | 16-55 | 0x10 0x37 |
| Radio | 16-91 | 0x10 0x5B |
| Aux | 16-99 | 0x10 0x63 |
| Net | 16-92 | 0x10 0x5C |
| USB | 16-93 | 0x10 0x5D |
| AV | 16-94 | 0x10 0x5E |
| Sat | 16-27 | 0x10 0x1B |
| PVR | 16-96 | 0x10 0x60 |
| Game | 16-97 | 0x10 0x61 |
AV RC5 command codes - Advanced Functions (system 0x10 unless noted)
| Function | RC5 code (decimal) | RC5 code (hex) |
|---|---|---|
| BD | 16-98 | 0x10 0x62 |
| CD | 16-118 | 0x10 0x76 |
| STB | 16-100 | 0x10 0x64 |
| VCR | 16-119 | 0x10 0x77 |
| Display | 16-58 | 0x10 0x3A |
| Power On | 16-123 | 0x10 0x7B |
| Power Off | 16-124 | 0x10 0x7C |
| Next zone | 16-95 | 0x10 0x5F |
| Cycle output resolutions | 16-47 | 0x10 0x2F |
| Bass control | 16-39 | 0x10 0x27 |
| Speaker Trim | 16-37 | 0x10 0x25 |
| Treble control | 16-14 | 0x10 0x0E |
| Random | 16-76 | 0x10 0x4C |
| Repeat | 16-49 | 0x10 0x31 |
| Direct mode On | 16-78 | 0x10 0x4E |
| Direct mode Off | 16-79 | 0x10 0x4F |
| Multi Channel | 16-106 | 0x10 0x6A |
| Stereo | 16-107 | 0x10 0x6B |
| Dolby Surround | 16-110 | 0x10 0x6E |
| DTS Neo:6 Cinema | 16-111 | 0x10 0x6F |
| DTS Neo:6 Music | 16-112 | 0x10 0x70 |
| DTS Neural:X | 16-113 | 0x10 0x71 |
| Reserved | 16-114 | 0x10 0x72 |
| DTS Virtual:X | 16-115 | 0x10 0x73 |
| 5/7 Ch Stereo | 16-69 | 0x10 0x45 |
| Dolby D EX | 16-23 | 0x10 0x17 |
| Mute On | 16-26 | 0x10 0x1A |
| Mute Off | 16-120 | 0x10 0x78 |
| FM | 16-28 | 0x10 0x1C |
| DAB | 16-72 | 0x10 0x48 |
| Lip Sync +5 ms | 16-15 | 0x10 0x0F |
| Lip Sync -5 ms | 16-101 | 0x10 0x65 |
| Sub trim +0.5 dB | 16-105 | 0x10 0x69 |
| Sub trim -0.5 dB | 16-108 | 0x10 0x6C |
| Display Off | 16-31 | 0x10 0x1F |
| Display L1 | 16-34 | 0x10 0x22 |
| Display L2 | 16-35 | 0x10 0x23 |
| Balance left | 16-38 | 0x10 0x26 |
| Balance right | 16-40 | 0x10 0x28 |
| Bass +1 | 16-44 | 0x10 0x2C |
| Bass -1 | 16-45 | 0x10 0x2D |
| Treble +1 | 16-46 | 0x10 0x2E |
| Treble -1 | 16-102 | 0x10 0x66 |
| Zone 2 follow Zone 1 | 16-20 | 0x10 0x14 |
| Zone 2 Power On | 23-123 | 0x17 0x7B |
| Zone 2 Power Off | 23-124 | 0x17 0x7C |
| Zone 2 Vol+ | 23-1 | 0x17 0x01 |
| Zone 2 Vol- | 23-2 | 0x17 0x02 |
| Zone 2 Mute | 23-3 | 0x17 0x03 |
| Zone 2 Mute On | 23-4 | 0x17 0x04 |
| Zone 2 Mute Off | 23-5 | 0x17 0x05 |
| Zone 2 CD | 23-6 | 0x17 0x06 |
| Zone 2 BD | 23-7 | 0x17 0x07 |
| Zone 2 STB | 23-8 | 0x17 0x08 |
| Zone 2 AV | 23-9 | 0x17 0x09 |
| Zone 2 Game | 23-11 | 0x17 0x0B |
| Zone 2 Aux | 23-13 | 0x17 0x0D |
| Zone 2 PVR | 23-15 | 0x17 0x0F |
| Zone 2 FM | 23-14 | 0x17 0x0E |
| Zone 2 DAB | 23-16 | 0x17 0x10 |
| Zone 2 USB | 23-18 | 0x17 0x12 |
| Zone 2 NET | 23-19 | 0x17 0x13 |
| Zone 2 SAT | 23-20 | 0x17 0x14 |
| Zone 2 VCR | 23-21 | 0x17 0x15 |
| Select HDMI Out 1 | 16-73 | 0x10 0x49 |
| Select HDMI Out 2 | 16-74 | 0x10 0x4A |
| Select HDMI Out 1 & 2 | 16-75 | 0x10 0x4B |
- Source/CDS50 mismatch: the document is for the AV receiver family only. The CDS50 is a CD/SACD player and is not listed in this source. The binary framing and command set may be shared across Arcam's custom-install product line, but this is an inference - the source does not confirm CDS50 behaviour. The spec should be re-pointed at the correct entity if the family entity is known; otherwise the spec is issued here as the closest authoritative description of Arcam's RS-232/NET control protocol.
Provenance
source_domains:
- arcam.co.uk
source_urls:
- https://www.arcam.co.uk/ugc/tor/avr390/RS232/RS232_860_850_550_390_250_SH274E_D_181018.pdf
retrieved_at: 2026-06-01T21:56:18.005Z
last_checked_at: 2026-06-02T21:39:50.199Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T21:39:50.199Z
matched_actions: 51
action_count: 51
confidence: medium
summary: "All 51 spec actions have verbatim hex command codes confirmed in source; transport values 38400 bps, 8N1, port 50000 all supported; source has exactly 51 commands (50 binary + AMX). (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "this source document covers Arcam AVR/AV processor models (AVR390/550/850, AV860, SR250). The user-provided entity_id and device name refer to the Arcam CDS50 (a CD/SACD player), which is NOT covered by this document. The CDS50 may share a similar RS-232 protocol, but the source contains no evidence of CDS50 behaviour. The spec is therefore issued against the AV receiver family — the entity_id should be re-pointed at the correct family entity when ingested."
- "the source does not define a separate \"asynchronous status"
- "no multi-step sequences are described in the source."
- "- Firmware compatibility: source does not state which protocol version each firmware release supports (the AMX response carries a placeholder x.y.z)."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0