Summary
The McIntosh C55 and C2800 are stereo preamplifiers offering external control via RS-232C serial and TCP/IP. Commands are ASCII strings wrapped in parentheses, e.g. (VOL 65), with a 3-character mnemonic name and space-separated parameters. The unit echoes commands as acknowledgement and pushes automatic status updates when status reporting is enabled.
Transport
protocols:
- tcp
- serial
addressing:
port: 84
serial:
baud_rate: null # UNRESOLVED: baud rate not stated in source
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
# - powerable (PWR on/off commands present)
# - queryable (QRY and per-command None->status queries present)
# - levelable (VOL, TBA, TIN, TTB, TTT, OTR level control present)
# - routable (INP input selection present)
traits:
- powerable
- queryable
- levelable
- routable
Actions
# Command envelope: (MNEMONIC par.) - open paren prefix, close paren suffix,
# space between mnemonic and parameter. Carriage return \x0D\x0A optional.
# Per granularity rule, each mnemonic = ONE action; on/off/up/down/level/query
# variants are parameter values, not separate rows.
- id: power
label: Power
kind: action
command: "(PWR {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Return Status"
notes: If Power is Off, all non-Power RS232 commands return Invalid Command error.
- id: volume
label: Volume
kind: action
command: "(VOL {par})"
params:
- name: par
type: string
description: "U=Up 1%, D=Down 1%, 0-100=Set % Level, omitted=Return Status"
- id: mute
label: Mute
kind: action
command: "(MUT {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
- id: output_1
label: Output 1
kind: action
command: "(OP1 {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
- id: output_2
label: Output 2
kind: action
command: "(OP2 {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
- id: headphones_status
label: Headphones Status Query
kind: query
command: "(HPS)"
params: []
notes: "Returns 0=Unplugged, 1=Plugged, 2=No Headphone Jack (China)"
- id: input_select
label: Input Select
kind: action
command: "(INP {par})"
params:
- name: par
type: string
description: "U=Next, D=Previous, 1=BAL1, 2=BAL2, 3=BAL3, 4=UNBAL1, 5=UNBAL2, 6=UNBAL3, 7=UNBAL4, 8=PHONO1, 9=PHONO2, 10=COAX1, 11=COAX2, 12=OPT1, 13=OPT2, 14=USB, 15=MCT, 16=HDMI(ARC), omitted=Return Status"
notes: If specified Input is disabled (Off in Setup Menu), Invalid Parameter error returned.
- id: balance
label: Balance
kind: action
command: "(TBA {par})"
params:
- name: par
type: string
description: "L=Left 1dB, R=Right 1dB, -50 to 50=Set Balance (sign: -=Left, +=Right), omitted=Returns Status"
- id: input_trim_level
label: Input Trim Level
kind: action
command: "(TIN {par})"
params:
- name: par
type: string
description: "U=Up 0.5dB, D=Down 0.5dB, -12 to +12=Set Level (half-dB steps: -12=-6.0dB), omitted=Returns Status"
- id: mono_stereo
label: Mono/Stereo
kind: action
command: "(TMO {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
- id: processor_loop
label: Processor Loop
kind: action
command: "(TPL {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
- id: meter_lights
label: Meter Lights
kind: action
command: "(TML {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
- id: display_brightness
label: Display Brightness
kind: action
command: "(TDB {par})"
params:
- name: par
type: string
description: "1=25%, 2=50%, 3=75%, 4=100%, omitted=Returns Status"
- id: phono_capacitance
label: Phono Capacitance
kind: action
command: "(TPC {par})"
params:
- name: par
type: string
description: "U=Next, D=Previous, 1-8=Index (50pF,100pF,150pF,200pF,250pF,300pF,350pF,400pF), omitted=Return Status"
notes: Returns Invalid Input error if current input is not Phono.
- id: phono_resistance
label: Phono Resistance
kind: action
command: "(TPR {par})"
params:
- name: par
type: string
description: "U=Next, D=Previous, 1-7=Index (25,50,100,200,400,1k,47k), omitted=Return Status"
notes: Returns Invalid Input error if current input is not Phono.
- id: phono_gain
label: Phono Gain
kind: action
command: "(TPG {par})"
params:
- name: par
type: string
description: "U=Next, D=Previous, 1-5=Index (40dB,46dB,52dB,58dB,64dB), omitted=Return Status"
notes: Returns Invalid Input error if current input is not Phono.
- id: hxd
label: HXD (Headphone Crossfeed)
kind: action
command: "(THH {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
notes: Returns Invalid Command error if headphones are not plugged in.
- id: switch_mode
label: Output Switch Mode
kind: action
command: "(OSM {par})"
params:
- name: par
type: string
description: "0=Switched, 1=Unswitched, 2=Bi-Amped (Fixed), 3=Bi-Amped (Split), omitted=Returns Status"
notes: Output 1 only.
- id: output_1_trim_level
label: Output 1 Trim Level
kind: action
command: "(OTR {par})"
params:
- name: par
type: string
description: "U=Up 0.5dB, D=Down 0.5dB, -12 to +6=Set Level (half-dB steps: -12=-6.0dB), omitted=Returns Status"
- id: crossover_frequency
label: Crossover Frequency
kind: action
command: "(OCF {par})"
params:
- name: par
type: string
description: "1=150Hz, 2=350Hz, 3=900Hz, omitted=Returns Status"
notes: Returns Invalid Command error if Output 1 is not Bi-Amped (Fixed).
- id: high_pass
label: High Pass
kind: action
command: "(OHP {par})"
params:
- name: par
type: string
description: "0=Bypass, 1=50Hz, 2=100Hz, 3=250Hz, omitted=Returns Status"
notes: Returns Invalid Command error if Output 1 is not Bi-Amped (Split).
- id: low_pass
label: Low Pass
kind: action
command: "(OLP {par})"
params:
- name: par
type: string
description: "1=600Hz, 2=1200Hz, 3=3000Hz, omitted=Returns Status"
notes: Returns Invalid Command error if Output 1 is not Bi-Amped (Split).
- id: dual_mono
label: Dual Mono
kind: action
command: "(ODM {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
notes: Output 2 only.
- id: query
label: Query
kind: query
command: "(QRY)"
params: []
- id: status_enable
label: Status Enable
kind: action
command: "(STA {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
notes: Enabling allows automatic status messages on state updates.
- id: digital_audio_metadata
label: Digital Audio Metadata Query
kind: query
command: "(DAM)"
params: []
notes: Returns sample rate and/or audio format info for selected digital input.
- id: equalizer
label: Equalizer
kind: action
command: "(TEQ {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
notes: C55 only.
- id: tone_control
label: Tone Control
kind: action
command: "(TTN {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
notes: C2800 only.
- id: tone_bass
label: Tone Bass
kind: action
command: "(TTB {par})"
params:
- name: par
type: string
description: "U=Up 1dB, D=Down 1dB, -12 to +12=Set Level, omitted=Return Status"
notes: C2800 only.
- id: tone_treble
label: Tone Treble
kind: action
command: "(TTT {par})"
params:
- name: par
type: string
description: "U=Up 1dB, D=Down 1dB, -12 to +12=Set Level, omitted=Return Status"
notes: C2800 only.
- id: tube_lights
label: Tube Lights
kind: action
command: "(TTL {par})"
params:
- name: par
type: string
description: "1=On, 0=Off, omitted=Returns Status"
notes: C2800 only.
Feedbacks
- id: command_echo
type: string
description: Unit typically echoes the same command as acknowledgement after processing.
- id: connect_banner
type: string
description: >
On AC connection, unit replies with model, serial, FW version, DA version:
"(C55)" or "(C2800)", "(Serial Number: XXX####)", "(FW Version: #.#.#)", "(DA Version: v#.#.#)"
- id: power_state
type: enum
values: [on, off]
- id: volume_level
type: integer
range: [0, 100]
- id: mute_state
type: enum
values: [on, off]
- id: output_1_state
type: enum
values: [on, off]
- id: output_2_state
type: enum
values: [on, off]
- id: headphones_state
type: enum
values: [unplugged, plugged, no_jack_china]
- id: input_selected
type: enum
values: [BAL1, BAL2, BAL3, UNBAL1, UNBAL2, UNBAL3, UNBAL4, PHONO1, PHONO2, COAX1, COAX2, OPT1, OPT2, USB, MCT, HDMI_ARC]
- id: balance
type: integer
range: [-50, 50]
- id: digital_audio_metadata
type: string
description: Sample rate / audio format for selected digital input.
- id: error_unknown
type: string
description: "(ERROR - Unknown Error)"
- id: error_invalid_command
type: string
description: "(ERROR - Invalid Command)"
- id: error_invalid_parameter
type: string
description: "(ERROR - Invalid Parameter)"
- id: error_invalid_input
type: string
description: "(ERROR - Invalid Input)"
- id: error_in_passthru
type: string
description: "(ERROR - In Passthru)"
Variables
# Settable levels mirror Actions (VOL, TBA, TIN, TDB, TPC, TPR, TPG, OTR, etc.).
# Treated as actions with level params above; no separate settable parameters
# beyond those action parameters.
Events
- id: status_update
description: >
When STA (Status Enable) is On, status-change messages are transmitted
automatically to the host whenever unit state updates. Exact message
format not enumerated per-state in source.
# UNRESOLVED: per-state event message payloads not individually documented in source.
- id: connect_banner_event
description: Unsolicited banner (model, serial, FW, DA versions) sent on first AC connection.
Macros
# No multi-step sequences described in source.
Safety
confirmation_required_for: []
interlocks:
- "If Power is Off, all non-Power RS232 commands return Invalid Command error."
- "HXD (THH) returns Invalid Command error if headphones are not plugged in."
- "Phono commands (TPC/TPR/TPG) return Invalid Input error if current input is not Phono."
- "OCF returns Invalid Command error if Output 1 is not Bi-Amped (Fixed)."
- "OHP/OLP return Invalid Command error if Output 1 is not Bi-Amped (Split)."
# UNRESOLVED: no power-on sequencing or safety-critical interlock procedures stated beyond command-level guards.
Notes
- RS232 hardware uses a 3.5mm TRS cable: Tip=TXD (from C55/C2800), Ring=RXD (to C55/C2800), Sleeve=Ground. A DB9-F to 3.5mm adapter cable may be used.
- Carriage return
\x0D\x0Aafter the closing paren is optional (terminal readability only). - Command structure:
(prefix + 3-char mnemonic + space + parameters +)suffix. - IR control (HR085 remote, NEC format custom code
0xCA55) is documented in the source but out of scope for this RS-232C spec. Direct-input HEX codes (0x05–0x4D) and Pronto-style long codes are present in the source if an IR-spec companion is needed. - C55-exclusive: TEQ (Equalizer). C2800-exclusive: TTN, TTB, TTT, TTL (Tone + Tube Lights).
Provenance
source_domains:
- mcintoshlabs.com
- scribd.com
source_urls:
- https://www.mcintoshlabs.com/-/media/Files/mcintoshlabs/DocumentMaster/us/C55-C2800-External-Control.pdf
- https://www.mcintoshlabs.com/-/media/Files/mcintoshlabs/DocumentMaster/us/MC830om01.pdf
- https://www.scribd.com/document/942837415/McIntosh-RS232ControlApplicationNote
retrieved_at: 2026-07-13T06:18:42.339Z
last_checked_at: 2026-07-21T23:29:40.528Z
Verification Summary
verdict: verified
checked_at: 2026-07-21T23:29:40.528Z
matched_actions: 31
action_count: 31
confidence: medium
summary: "All 31 spec actions matched literally in source; RS-232C commands one-to-one coverage; transport verified. (10 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "Source artifact was labeled \"mcintosh_mc830\" but documents the C55/C2800 only — MC830 is never mentioned. Confirm the correct source file before publishing."
- "Baud rate not stated in source."
- "IR protocol (NEC, custom code 0xCA55) documented but IR is not in the requested `Known protocol: RS-232C` scope; long IR codes omitted from Actions as out-of-scope for serial control."
- "baud rate not stated in source"
- "per-state event message payloads not individually documented in source."
- "no power-on sequencing or safety-critical interlock procedures stated beyond command-level guards."
- "Source artifact filename (\"mcintosh_mc830\") does not match documented models (C55/C2800). MC830 never mentioned. Likely mislabeled source file — verify before ingest."
- "baud rate not stated in source."
- "per-state event message payloads for status updates not individually documented."
- "exact acknowledgement format for queries (return-value syntax) not fully specified beyond \"echo\"."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0