Summary
McIntosh MX160 supports ASCII control through TCP/Telnet RS232-over-IP, conventional RS-232, and USB serial interfaces. This spec covers documented commands, queries, responses, transport settings, and initialization requirements.
Transport
protocols:
- tcp
- serial
addressing:
host: "MX160.local"
port: 84
serial:
baud_rate: 115200
data_bits: 8
parity: none
stop_bits: 1
flow_control: null # UNRESOLVED: flow control not stated in source
auth:
type: none # inferred: no auth procedure in source
framing:
encoding: ASCII
command_prefix: "!"
command_terminator: "<CR>"
response_terminator: "<CR>"
Traits
- powerable
- queryable
- routable
- levelable
Actions
- id: audio_mode_previous
label: Audio Processing Mode Down
kind: action
command: "!AUDMODE-"
params: []
- id: audio_mode_query
label: Audio Processing Mode Query
kind: query
command: "!AUDMODE?"
params: []
- id: audio_mode_set
label: Set Audio Processing Mode
kind: action
command: "!AUDMODE(x)"
params:
- name: x
type: string
description: Audio processing mode
- id: audio_mode_next
label: Audio Processing Mode Up
kind: action
command: "!AUDMODE+"
params: []
- id: audio_mode_list_query
label: Audio Processing Mode List Query
kind: query
command: "!AUDMODEL?"
params: []
- id: audio_type_query
label: Input Audio Type Query
kind: query
command: "!AUDTYPE?"
params: []
- id: back
label: Back
kind: action
command: "!BACK"
params: []
- id: device_name_query
label: Device Name Query
kind: query
command: "!DEVICE?"
params: []
- id: display_brightness_down
label: Reduce Display Brightness
kind: action
command: "!DIM-"
params: []
- id: display_brightness_query
label: Display Brightness Query
kind: query
command: "!DIM?"
params: []
- id: display_brightness_set
label: Set Display Brightness
kind: action
command: "!DIM(x)"
params:
- name: x
type: integer
description: "Brightness setting: 0=100%, 1=75%, 2=50%, 3=25%"
minimum: 0
maximum: 3
- id: display_brightness_up
label: Increase Display Brightness
kind: action
command: "!DIM+"
params: []
- id: direction_down
label: Direction Down
kind: action
command: "!DIRD"
params: []
- id: direction_left
label: Direction Left
kind: action
command: "!DIRL"
params: []
- id: direction_right
label: Direction Right
kind: action
command: "!DIRR"
params: []
- id: direction_up
label: Direction Up
kind: action
command: "!DIRU"
params: []
- id: enter
label: Enter
kind: action
command: "!ENTER"
params: []
- id: exit
label: Exit
kind: action
command: "!EXIT"
params: []
- id: info
label: Info
kind: action
command: "!INFO"
params: []
- id: active_interface_query
label: Active Interface Query
kind: query
command: "!INTERFACE?"
params: []
- id: lipsync_down
label: Reduce Lip Sync
kind: action
command: "!LIPSYNC-"
params: []
- id: lipsync_query
label: Lip Sync Query
kind: query
command: "!LIPSYNC?"
params: []
- id: lipsync_set
label: Set Lip Sync
kind: action
command: "!LIPSYNC(x)"
params:
- name: x
type: integer
description: Lip sync value; valid range available through LIPSYNCRANGE query
- id: lipsync_up
label: Increase Lip Sync
kind: action
command: "!LIPSYNC+"
params: []
- id: lipsync_range_query
label: Lip Sync Range Query
kind: query
command: "!LIPSYNCRANGE?"
params: []
- id: loudness_query
label: Loudness Status Query
kind: query
command: "!LOUDNESS?"
params: []
- id: loudness_set
label: Set Loudness
kind: action
command: "!LOUDNESS(x)"
params:
- name: x
type: integer
description: "Loudness status: 0 or 1"
minimum: 0
maximum: 1
- id: menu
label: Menu
kind: action
command: "!MENU"
params: []
- id: mute_toggle
label: Toggle Mute
kind: action
command: "!MUTE"
params: []
- id: mute_query
label: Mute Status Query
kind: query
command: "!MUTE?"
params: []
- id: mute_off
label: Mute Off
kind: action
command: "!MUTEOFF"
params: []
- id: mute_on
label: Mute On
kind: action
command: "!MUTEON"
params: []
- id: numeric_button
label: Numeric Button
kind: action
command: "!NUM(x)"
params:
- name: x
type: integer
description: Numeric button
minimum: 0
maximum: 9
- id: ping_query
label: Ping Query
kind: query
command: "!PING?"
params: []
- id: power_off
label: Power Off
kind: action
command: "!POFF"
params: []
- id: power_on
label: Power On
kind: action
command: "!PON"
params: []
- id: power_query
label: Power Status Query
kind: query
command: "!POWER?"
params: []
- id: power_off_main
label: Main Power Off
kind: action
command: "!POWEROFFMAIN"
params: []
- id: power_off_zone2
label: Zone B Power Off
kind: action
command: "!POWEROFFZONE2"
params: []
- id: power_on_main
label: Main Power On
kind: action
command: "!POWERONMAIN"
params: []
- id: power_on_zone2
label: Zone B Power On
kind: action
command: "!POWERONZONE2"
params: []
- id: power_zone2_query
label: Zone B Power Status Query
kind: query
command: "!POWERZONE2?"
params: []
- id: power_toggle
label: Toggle Power
kind: action
command: "!PTOGGLE"
params: []
- id: roomperfect_focus_previous
label: Previous RoomPerfect Position
kind: action
command: "!RPFOC-"
params: []
- id: roomperfect_focus_query
label: RoomPerfect Position Query
kind: query
command: "!RPFOC?"
params: []
- id: roomperfect_focus_set
label: Set RoomPerfect Position
kind: action
command: "!RPFOC(x)"
params:
- name: x
type: integer
description: "0=bypass, 1-8=focus 1-8, 9=global"
minimum: 0
maximum: 9
- id: roomperfect_focus_next
label: Next RoomPerfect Position
kind: action
command: "!RPFOC+"
params: []
- id: roomperfect_focus_list_query
label: Available RoomPerfect Positions Query
kind: query
command: "!RPFOCS?"
params: []
- id: voicing_previous
label: Previous Voicing
kind: action
command: "!RPVOI-"
params: []
- id: voicing_query
label: Active Voicing Query
kind: query
command: "!RPVOI?"
params: []
- id: voicing_set
label: Set Voicing
kind: action
command: "!RPVOI(x)"
params:
- name: x
type: string
description: Voicing identifier
- id: voicing_next
label: Next Voicing
kind: action
command: "!RPVOI+"
params: []
- id: voicing_list_query
label: Available Voicings Query
kind: query
command: "!RPVOIS?"
params: []
- id: setup
label: Setup
kind: action
command: "!SETUP"
params: []
- id: source_previous
label: Previous Source
kind: action
command: "!SRC-"
params: []
- id: source_query
label: Active Source Query
kind: query
command: "!SRC?"
params: []
- id: source_set
label: Select Source
kind: action
command: "!SRC(x)"
params:
- name: x
type: string
description: Source identifier
- id: source_info_query
label: Source Information Query
kind: query
command: "!SRC(x)?"
params:
- name: x
type: string
description: Source identifier
- id: source_next
label: Next Source
kind: action
command: "!SRC+"
params: []
- id: source_offset_down
label: Decrease Source Volume Offset
kind: action
command: "!SRCOFF-"
params: []
- id: source_offset_query
label: Source Volume Offset Query
kind: query
command: "!SRCOFF?"
params: []
- id: source_offset_set
label: Set Source Volume Offset
kind: action
command: "!SRCOFF(x)"
params:
- name: x
type: integer
description: Source volume offset
- id: source_offset_up
label: Increase Source Volume Offset
kind: action
command: "!SRCOFF+"
params: []
- id: source_list_query
label: Available Sources Query
kind: query
command: "!SRCS?"
params: []
- id: software_info_query
label: Software Information Query
kind: query
command: "!SWINFO?"
params: []
- id: bass_trim_down
label: Decrease Bass Trim
kind: action
command: "!TRIMBASS-"
params: []
- id: bass_trim_query
label: Bass Trim Query
kind: query
command: "!TRIMBASS?"
params: []
- id: bass_trim_set
label: Set Bass Trim
kind: action
command: "!TRIMBASS(x)"
params:
- name: x
type: integer
description: Bass trim; 10 units equal 1 dB
- id: bass_trim_up
label: Increase Bass Trim
kind: action
command: "!TRIMBASS+"
params: []
- id: center_trim_down
label: Decrease Center Channel Trim
kind: action
command: "!TRIMCENTER-"
params: []
- id: center_trim_query
label: Center Channel Trim Query
kind: query
command: "!TRIMCENTER?"
params: []
- id: center_trim_set
label: Set Center Channel Trim
kind: action
command: "!TRIMCENTER(x)"
params:
- name: x
type: integer
description: Center channel trim; 10 units equal 1 dB
- id: center_trim_up
label: Increase Center Channel Trim
kind: action
command: "!TRIMCENTER+"
params: []
- id: height_trim_down
label: Decrease Height Channel Trim
kind: action
command: "!TRIMHEIGHT-"
params: []
- id: height_trim_query
label: Height Channel Trim Query
kind: query
command: "!TRIMHEIGHT?"
params: []
- id: height_trim_set
label: Set Height Channel Trim
kind: action
command: "!TRIMHEIGHT(x)"
params:
- name: x
type: integer
description: Height channel trim; 10 units equal 1 dB
- id: height_trim_up
label: Increase Height Channel Trim
kind: action
command: "!TRIMHEIGHT+"
params: []
- id: lfe_trim_down
label: Decrease LFE Channel Trim
kind: action
command: "!TRIMLFE-"
params: []
- id: lfe_trim_query
label: LFE Channel Trim Query
kind: query
command: "!TRIMLFE?"
params: []
- id: lfe_trim_set
label: Set LFE Channel Trim
kind: action
command: "!TRIMLFE(x)"
params:
- name: x
type: integer
description: LFE channel trim; 10 units equal 1 dB
- id: lfe_trim_up
label: Increase LFE Channel Trim
kind: action
command: "!TRIMLFE+"
params: []
- id: surround_trim_down
label: Decrease Surround Channel Trim
kind: action
command: "!TRIMSURRS-"
params: []
- id: surround_trim_query
label: Surround Channel Trim Query
kind: query
command: "!TRIMSURRS?"
params: []
- id: surround_trim_set
label: Set Surround Channel Trim
kind: action
command: "!TRIMSURRS(x)"
params:
- name: x
type: integer
description: Surround channel trim; 10 units equal 1 dB
- id: surround_trim_up
label: Increase Surround Channel Trim
kind: action
command: "!TRIMSURRS+"
params: []
- id: treble_trim_down
label: Decrease Treble Trim
kind: action
command: "!TRIMTREB-"
params: []
- id: treble_trim_query
label: Treble Trim Query
kind: query
command: "!TRIMTREB?"
params: []
- id: treble_trim_set
label: Set Treble Trim
kind: action
command: "!TRIMTREB(x)"
params:
- name: x
type: integer
description: Treble trim; 10 units equal 1 dB
- id: treble_trim_up
label: Increase Treble Trim
kind: action
command: "!TRIMTREB+"
params: []
- id: verbosity_set
label: Set Verbosity Level
kind: action
command: "!VERB(x)"
params:
- name: x
type: integer
description: Verbosity level
minimum: 0
maximum: 2
- id: verbosity_query
label: Verbosity Level Query
kind: query
command: "!VERB?"
params: []
- id: volume_down
label: Decrease Volume
kind: action
command: "!VOL-"
params: []
- id: volume_down_by
label: Decrease Volume by Amount
kind: action
command: "!VOL-(x)"
params:
- name: x
type: integer
description: Volume decrement
- id: volume_query
label: Current Volume Query
kind: query
command: "!VOL?"
params: []
- id: volume_set
label: Set Volume
kind: action
command: "!VOL(x)"
params:
- name: x
type: integer
description: Volume value
- id: volume_up
label: Increase Volume
kind: action
command: "!VOL+"
params: []
- id: volume_up_by
label: Increase Volume by Amount
kind: action
command: "!VOL+(x)"
params:
- name: x
type: integer
description: Volume increment
- id: zone_mute_toggle
label: Toggle Zone B Mute
kind: action
command: "!ZMUTE"
params: []
- id: zone_mute_query
label: Zone B Mute Query
kind: query
command: "!ZMUTE?"
params: []
- id: zone_mute_off
label: Zone B Mute Off
kind: action
command: "!ZMUTEOFF"
params: []
- id: zone_mute_on
label: Zone B Mute On
kind: action
command: "!ZMUTEON"
params: []
- id: zone_power_off
label: Zone B Power Off
kind: action
command: "!ZPOFF"
params: []
- id: zone_power_on
label: Zone B Power On
kind: action
command: "!ZPON"
params: []
- id: zone_power_toggle
label: Toggle Zone B Power
kind: action
command: "!ZPTOGGLE"
params: []
- id: zone_source_previous
label: Previous Zone B Source
kind: action
command: "!ZSRC-"
params: []
- id: zone_source_query
label: Current Zone B Source Query
kind: query
command: "!ZSRC?"
params: []
- id: zone_source_set
label: Set Zone B Source
kind: action
command: "!ZSRC(x)"
params:
- name: x
type: string
description: Zone B source identifier
- id: zone_source_info_query
label: Zone B Source Information Query
kind: query
command: "!ZSRC(x)?"
params:
- name: x
type: string
description: Zone B source identifier
- id: zone_source_next
label: Next Zone B Source
kind: action
command: "!ZSRC+"
params: []
- id: zone_source_list_query
label: Available Zone B Sources Query
kind: query
command: "!ZSRCS?"
params: []
- id: zone_volume_down
label: Decrease Zone B Volume
kind: action
command: "!ZVOL-"
params: []
- id: zone_volume_down_by
label: Decrease Zone B Volume by Amount
kind: action
command: "!ZVOL-(x)"
params:
- name: x
type: integer
description: Zone B volume decrement
- id: zone_volume_query
label: Current Zone B Volume Query
kind: query
command: "!ZVOL?"
params: []
- id: zone_volume_set
label: Set Zone B Volume
kind: action
command: "!ZVOL(x)"
params:
- name: x
type: integer
description: Zone B volume value
- id: zone_volume_up
label: Increase Zone B Volume
kind: action
command: "!ZVOL+"
params: []
- id: zone_volume_up_by
label: Increase Zone B Volume by Amount
kind: action
command: "!ZVOL+(x)"
params:
- name: x
type: integer
description: Zone B volume increment
Feedbacks
- id: audio_mode
type: string
query: "!AUDMODE?"
- id: available_audio_modes
type: list
query: "!AUDMODEL?"
- id: input_audio_type
type: string
query: "!AUDTYPE?"
- id: device_name
type: string
query: "!DEVICE?"
example: "!DEVICE(MX160)"
- id: display_brightness
type: enum
query: "!DIM?"
values:
- 0
- 1
- 2
- 3
- id: active_interface
type: enum
query: "!INTERFACE?"
values:
- IP
- SERIAL
examples:
- "!INTERFACE(IP)"
- "!INTERFACE(SERIAL)"
- id: lipsync
type: integer
query: "!LIPSYNC?"
- id: lipsync_range
type: string
query: "!LIPSYNCRANGE?"
- id: loudness
type: enum
query: "!LOUDNESS?"
values:
- 0
- 1
- id: mute_state
type: string
query: "!MUTE?"
- id: ping_response
type: string
query: "!PING?"
description: Returns pong
- id: power_state
type: enum
query: "!POWER?"
values:
- 0
- 1
- id: zone_power_state
type: enum
query: "!POWERZONE2?"
values:
- 0
- 1
- id: roomperfect_focus
type: integer
query: "!RPFOC?"
values:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- id: available_roomperfect_positions
type: list
query: "!RPFOCS?"
- id: active_voicing
type: string
query: "!RPVOI?"
- id: available_voicings
type: list
query: "!RPVOIS?"
- id: active_source
type: string
query: "!SRC?"
- id: source_info
type: string
query: "!SRC(x)?"
- id: source_volume_offset
type: integer
query: "!SRCOFF?"
- id: available_sources
type: list
query: "!SRCS?"
- id: software_information
type: list
query: "!SWINFO?"
- id: bass_trim
type: integer
query: "!TRIMBASS?"
- id: center_channel_trim
type: integer
query: "!TRIMCENTER?"
- id: height_channel_trim
type: integer
query: "!TRIMHEIGHT?"
- id: lfe_channel_trim
type: integer
query: "!TRIMLFE?"
- id: surround_channel_trim
type: integer
query: "!TRIMSURRS?"
- id: treble_trim
type: integer
query: "!TRIMTREB?"
- id: verbosity_level
type: integer
query: "!VERB?"
values:
- 0
- 1
- 2
- id: volume
type: integer
query: "!VOL?"
- id: zone_mute_state
type: string
query: "!ZMUTE?"
- id: zone_source
type: string
query: "!ZSRC?"
- id: zone_source_info
type: string
query: "!ZSRC(x)?"
- id: available_zone_sources
type: list
query: "!ZSRCS?"
- id: zone_volume
type: integer
query: "!ZVOL?"
Variables
- id: audio_mode
type: string
set_command: "!AUDMODE(x)"
- id: display_brightness
type: integer
minimum: 0
maximum: 3
set_command: "!DIM(x)"
- id: lipsync
type: integer
set_command: "!LIPSYNC(x)"
range_query: "!LIPSYNCRANGE?"
- id: loudness
type: integer
minimum: 0
maximum: 1
set_command: "!LOUDNESS(x)"
- id: roomperfect_focus
type: integer
minimum: 0
maximum: 9
set_command: "!RPFOC(x)"
- id: voicing
type: string
set_command: "!RPVOI(x)"
- id: source
type: string
set_command: "!SRC(x)"
- id: source_volume_offset
type: integer
set_command: "!SRCOFF(x)"
- id: bass_trim
type: integer
scale: "10 units = 1 dB"
set_command: "!TRIMBASS(x)"
- id: center_channel_trim
type: integer
scale: "10 units = 1 dB"
set_command: "!TRIMCENTER(x)"
- id: height_channel_trim
type: integer
scale: "10 units = 1 dB"
set_command: "!TRIMHEIGHT(x)"
- id: lfe_channel_trim
type: integer
scale: "10 units = 1 dB"
set_command: "!TRIMLFE(x)"
- id: surround_channel_trim
type: integer
scale: "10 units = 1 dB"
set_command: "!TRIMSURRS(x)"
- id: treble_trim
type: integer
scale: "10 units = 1 dB"
set_command: "!TRIMTREB(x)"
- id: verbosity_level
type: integer
minimum: 0
maximum: 2
set_command: "!VERB(x)"
- id: volume
type: integer
set_command: "!VOL(x)"
- id: zone_source
type: string
set_command: "!ZSRC(x)"
- id: zone_volume
type: integer
set_command: "!ZVOL(x)"
Events
- id: status_message
prefix: "!"
terminator: "<CR>"
description: Status message emitted according to active verbosity level
- id: command_echo
prefix: "#"
terminator: "<CR>"
description: Echo message emitted according to active verbosity level
Macros
- id: initialize_control
label: Initialize Control Interface
steps:
- command: "!VERB(2)"
description: Send whenever control system initializes and whenever unit turns on because setting is not retained through Standby.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings or interlock procedures.
Notes
Commands are case-sensitive, start with !, and end with carriage return. Backspace is unsupported. Status requests use ? suffix. Responses begin with ! for status or # for echo and end with carriage return.
For control while MX160 is in Standby, set Setup / Power / Standby Mode / Network; default Deep Sleep does not maintain network control. Conventional RS-232 uses pin 2 RX-In, pin 3 TX Out, and pin 5 GND; most installations require null modem wiring. USB serial is unavailable during Standby and therefore cannot turn unit back on.
Verbosity level 2 is recommended. Send !VERB(2) each time control system initializes and whenever unit turns on because verbosity setting is not retained through Standby.
Provenance
source_domains:
- docdroid.net
- scribd.com
source_urls:
- https://www.docdroid.net/file/download/OnipkTW/mx160-serial-control-manual-v3-pdf.pdf
- https://www.scribd.com/document/942837415/McIntosh-RS232ControlApplicationNote
retrieved_at: 2026-09-04T14:18:10.752Z
last_checked_at: 2026-09-12T22:17:36.329Z
Verification Summary
verdict: verified
checked_at: 2026-09-12T22:17:36.329Z
matched_actions: 116
action_count: 116
confidence: medium
summary: "All 116 spec actions match wire-literal commands in the McIntosh MX160 command list, transport values are documented verbatim, and no extra commands remain unrepresented. (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "fault behavior, error recovery, command timing, flow control, and authentication behavior are not stated in source."
- "flow control not stated in source"
- "source contains no safety warnings or interlock procedures."
- "exact response formats are not documented for most queries. Volume, lip-sync, trim, source-offset, and source identifier ranges are not stated. Flow control, timeout behavior, retry procedure, and fault responses are not stated."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0