Summary
Niles IntelliControl ICS is a whole-house audio distribution system controlled via the RS232G gateway module. This spec covers the RS232G Protocol v2.6.2 — a standard ASCII, comma-separated, CR-terminated serial protocol that provides zone management, source transport control, metadata queries, sleep timers, alarm clocks, and paging across up to 30 zones and 8 source master keys.
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
connector: "9-pin female D-type (pin 2=TX, pin 3=RX, pin 5=GND)"
encoding: "ASCII, comma-separated parameters, CR-terminated (ASCII 13)"
available_baud_rates: [4800, 9600, 19200, 38400, 57600]
auth:
type: none # inferred: no auth procedure in source
Traits
traits:
- powerable # inferred from OFF command (znt key code 10)
- queryable # inferred from numerous query commands (zone status, source status, metadata, time, etc.)
- levelable # inferred from volume/bass/treble/balance control
- routable # inferred from zone change and master key selection commands
Actions
actions:
# ── Zone Commands (znc) ──
- id: request_available_zones
label: Request Available Zones
kind: action
command: "znc,1"
response: "rznc,1,# (# = number of zones, max 30)"
params: []
- id: request_zone_name
label: Request Zone Name
kind: action
command: "znc,2,{index}"
response: "rznc,2,zone,bytes,name"
params:
- name: index
type: integer
description: "Zone index (0-based)"
- id: request_current_zone_info
label: Request Current Zone Information
kind: action
command: "znc,3"
response: "rznc,3,zone,bytes,name"
params: []
- id: change_zone
label: Change Zone
kind: action
command: "znc,4,{zone}"
response: "rznc,4,zone"
params:
- name: zone
type: integer
description: "Zone number (from Request Zone Name response)"
- id: request_current_zone_status
label: Request Current Zone Status
kind: action
command: "znc,5"
response: "See unsolicited USC,2"
params: []
# ── Zone Transport Commands (znt) ──
- id: zone_master_key
label: Zone Master Key Press
kind: action
command: "znt,{key_code}"
response: "rznt,{key_code},OK"
params:
- name: key_code
type: integer
description: "1-8 = Master Key 1-8"
notes: "Hold flag: znt,{key_code},h (repeat every ~2-3s for master keys)"
- id: zone_off
label: Zone Off
kind: action
command: "znt,10"
response: "rznt,10,OK"
params: []
notes: "Hold flag supported: znt,10,h"
- id: zone_mute
label: Zone Mute Toggle
kind: action
command: "znt,11"
response: "rznt,11,OK"
params: []
notes: "Key-down only; no hold/repeat flag"
- id: zone_volume_up
label: Zone Volume Up
kind: action
command: "znt,12"
response: "rznt,12,OK"
params: []
notes: "Hold/repeat sends flag every ~150ms"
- id: zone_volume_down
label: Zone Volume Down
kind: action
command: "znt,13"
response: "rznt,13,OK"
params: []
notes: "Hold/repeat sends flag every ~150ms"
- id: zone_bass_up
label: Zone Bass Up
kind: action
command: "znt,128"
response: "rznt,128,OK"
params: []
- id: zone_bass_down
label: Zone Bass Down
kind: action
command: "znt,129"
response: "rznt,129,OK"
params: []
- id: zone_treble_up
label: Zone Treble Up
kind: action
command: "znt,130"
response: "rznt,130,OK"
params: []
- id: zone_treble_down
label: Zone Treble Down
kind: action
command: "znt,131"
response: "rznt,131,OK"
params: []
- id: zone_balance_down
label: Zone Balance Down
kind: action
command: "znt,132"
response: "rznt,132,OK"
params: []
- id: zone_balance_up
label: Zone Balance Up
kind: action
command: "znt,133"
response: "rznt,133,OK"
params: []
# ── Source Commands (src) ──
- id: request_available_master_keys
label: Request Available Master Keys
kind: action
command: "src,1"
response: "rsrc,1,# (# = number of master keys, max 8)"
params: []
- id: request_master_key_info
label: Request Master Key Information
kind: action
command: "src,2,{index}"
response: "rsrc,2,master_key,slot,type,bytes,name"
params:
- name: index
type: integer
description: "Master key index (0-based)"
notes: "type: 1=XM, 2=Sirius, 3=iPod/MP3, 4=AM/FM, 5=Audio, 6=Lutron, 7=HD AM/FM, 8=AM/FM Export"
- id: request_source_status
label: Request Source Status
kind: action
command: "src,3"
response: "See unsolicited USC,3"
params: []
- id: request_metadata_status
label: Request Metadata Status
kind: action
command: "src,4"
response: "See unsolicited USC,4"
params: []
- id: request_available_soft_keys
label: Request Available Soft Keys
kind: action
command: "src,5"
response: "See unsolicited USC,5"
params: []
- id: request_soft_key_info
label: Request Soft Key Information
kind: action
command: "src,6,{index}"
response: "rsrc,6,{index},type,behavior,bytes,name"
params:
- name: index
type: integer
description: "Soft key index (0-based)"
notes: "type: 0=Default, 1=PageDown, 2=PageUp, 3=Select, 4=Back, 5=Menu, 6=Guide, 7=Favorites, 8=Transport"
- id: press_soft_key
label: Press Soft Key
kind: action
command: "src,7,{index},{behavior}"
response: "rsrc,7,OK"
params:
- name: index
type: integer
description: "Soft key index"
- name: behavior
type: integer
description: "0=normal (press+release), 1=alternate (held 2s)"
- id: request_available_menu_items
label: Request Available Menu Items
kind: action
command: "src,8"
response: "See unsolicited USC,6"
params: []
- id: request_menu_item_info
label: Request Menu Item Information
kind: action
command: "src,9,{index}"
response: "rsrc,9,{index},behavior,bytes,name"
params:
- name: index
type: integer
description: "Menu item index (0-based)"
- id: press_menu_item
label: Press Menu Item
kind: action
command: "src,10,{index},{behavior}"
response: "rsrc,10,OK"
params:
- name: index
type: integer
description: "Menu item index"
- name: behavior
type: integer
description: "0=normal, 1=alternate (held 2s)"
- id: direct_tune
label: Direct Tune
kind: action
command: "src,11,{byte_count},{station}"
response: "rsrc,11,OK"
params:
- name: byte_count
type: integer
description: "Number of characters in station string"
- name: station
type: string
description: "XM/Sirius: XX or XXX; AM: XXX or XXXX; FM: XX.X or XXX.X; HD AM: XXX-X or XXXX-X; HD FM: XX.X-X or XXX.X-X"
- id: request_soft_keys_status
label: Request Soft Keys Status
kind: action
command: "src,12"
response: "See unsolicited USC,9"
params: []
- id: request_menu_items_status
label: Request Menu Items Status
kind: action
command: "src,13"
response: "See unsolicited USC,10"
params: []
- id: alphanumeric_search
label: Alphanumeric Menu Search
kind: action
command: "src,14,{byte_count},{word}"
response: "See unsolicited USC,6"
params:
- name: byte_count
type: integer
description: "Length of search word (max 3)"
- name: word
type: string
description: "Letter or word to search (max 3 chars)"
- id: cancel_menu
label: Cancel Menu
kind: action
command: "src,15"
response: "rsrc,15,0"
params: []
notes: "Returns to Now Playing screen; triggers metadata + soft key updates in auto mode"
# ── Source Transport Commands (srt) ──
- id: source_play
label: Source Play
kind: action
command: "srt,17"
response: "rsrt,17,OK"
params: []
- id: source_stop
label: Source Stop
kind: action
command: "srt,18"
response: "rsrt,18,OK"
params: []
- id: source_pause
label: Source Pause
kind: action
command: "srt,19"
response: "rsrt,19,OK"
params: []
- id: source_rewind
label: Source Rewind
kind: action
command: "srt,20"
response: "rsrt,20,OK"
params: []
notes: "Repeat flag: srt,20,r"
- id: source_fast_forward
label: Source Fast Forward
kind: action
command: "srt,21"
response: "rsrt,21,OK"
params: []
notes: "Repeat flag: srt,21,r"
- id: source_menu
label: Source Menu
kind: action
command: "srt,22"
response: "rsrt,22,OK"
params: []
- id: source_up
label: Source Up
kind: action
command: "srt,23"
response: "rsrt,23,OK"
params: []
- id: source_guide
label: Source Guide
kind: action
command: "srt,24"
response: "rsrt,24,OK"
params: []
- id: source_left
label: Source Left
kind: action
command: "srt,25"
response: "rsrt,25,OK"
params: []
- id: source_select
label: Source Select
kind: action
command: "srt,26"
response: "rsrt,26,OK"
params: []
- id: source_right
label: Source Right
kind: action
command: "srt,27"
response: "rsrt,27,OK"
params: []
- id: source_exit
label: Source Exit
kind: action
command: "srt,28"
response: "rsrt,28,OK"
params: []
- id: source_down
label: Source Down
kind: action
command: "srt,29"
response: "rsrt,29,OK"
params: []
- id: source_info
label: Source Info
kind: action
command: "srt,30"
response: "rsrt,30,OK"
params: []
- id: source_numeral
label: Source Numeral
kind: action
command: "srt,{key_code}"
response: "rsrt,{key_code},OK"
params:
- name: key_code
type: integer
description: "33-41 = digits 1-9, 42 = digit 0"
- id: source_previous
label: Source Previous
kind: action
command: "srt,43"
response: "rsrt,43,OK"
params: []
- id: source_next
label: Source Next
kind: action
command: "srt,44"
response: "rsrt,44,OK"
params: []
- id: source_random
label: Source Random
kind: action
command: "srt,45"
response: "rsrt,45,OK"
params: []
- id: source_group
label: Source Group
kind: action
command: "srt,46"
response: "rsrt,46,OK"
params: []
- id: source_disc
label: Source Disc
kind: action
command: "srt,47"
response: "rsrt,47,OK"
params: []
- id: source_favorite
label: Source Favorite
kind: action
command: "srt,48"
response: "rsrt,48,OK"
params: []
- id: source_am
label: Source AM
kind: action
command: "srt,65"
response: "rsrt,65,OK"
params: []
- id: source_fm
label: Source FM
kind: action
command: "srt,66"
response: "rsrt,66,OK"
params: []
- id: source_page_channel_up
label: Source Page/Channel Up
kind: action
command: "srt,67"
response: "rsrt,67,OK"
params: []
- id: source_page_channel_down
label: Source Page/Channel Down
kind: action
command: "srt,68"
response: "rsrt,68,OK"
params: []
- id: source_enter
label: Source Enter
kind: action
command: "srt,69"
response: "rsrt,69,OK"
params: []
- id: source_clear
label: Source Clear
kind: action
command: "srt,70"
response: "rsrt,70,OK"
params: []
# ── Special Commands (spc) ──
- id: request_time
label: Request Time
kind: action
command: "spc,1"
response: "rspc,1,hours,minutes,seconds"
params: []
notes: "hours 0-23, minutes 0-59, seconds 0-59"
- id: set_time
label: Set Time
kind: action
command: "spc,2,{hours},{minutes},{seconds}"
response: "rspc,2,OK"
params:
- name: hours
type: integer
description: "0-23"
- name: minutes
type: integer
description: "0-59"
- name: seconds
type: integer
description: "0-59"
- id: request_sleep_timer
label: Request Zone Sleep Timer
kind: action
command: "spc,3"
response: "rspc,3,on_off,all_zones,timeout"
params: []
notes: "on_off: 0=off 1=on; all_zones: 0=current zone only 1=all zones; timeout: 0-120 minutes"
- id: set_sleep_timer
label: Set Zone Sleep Timer
kind: action
command: "spc,4,{on_off},{all_zones},{timeout}"
response: "rspc,4,OK"
params:
- name: on_off
type: integer
description: "0=off, 1=on"
- name: all_zones
type: integer
description: "0=current zone only, 1=all zones off on expiry"
- name: timeout
type: integer
description: "Minutes 0-120"
- id: request_alarm_clock
label: Request Zone Alarm Clock
kind: action
command: "spc,5"
response: "rspc,5,on_off,master_key,hour,minute"
params: []
- id: set_alarm_clock
label: Set Zone Alarm Clock
kind: action
command: "spc,6,{on_off},{master_key},{hour},{minute}"
response: "rspc,6,OK"
params:
- name: on_off
type: integer
description: "0=off, 1=on"
- name: master_key
type: integer
description: "Master key to select on alarm (1-8)"
- name: hour
type: integer
description: "0-23"
- name: minute
type: integer
description: "0-59"
- id: request_zone_page
label: Request Zone Page
kind: action
command: "spc,7"
response: "rspc,7,setting,volume"
params: []
notes: "setting: 0=never, 1=always (even zone off), 2=zone on only"
- id: set_zone_page
label: Set Zone Page
kind: action
command: "spc,8,{setting},{volume}"
response: "rspc,8,OK"
params:
- name: setting
type: integer
description: "0=never, 1=always, 2=zone on only"
- name: volume
type: integer
description: "Page volume"
- id: request_zone_turn_on_volume
label: Request Zone Turn ON Volume
kind: action
command: "spc,9"
response: "rspc,9,use_preset,preset"
params: []
notes: "use_preset: 0=use last volume, 1=preset volume"
- id: set_zone_turn_on_volume
label: Set Zone Turn ON Volume
kind: action
command: "spc,10,{use_preset},{preset}"
response: "rspc,10,OK"
params:
- name: use_preset
type: integer
description: "0=use last volume, 1=preset"
- name: preset
type: integer
description: "Preset volume level"
- id: request_zone_max_volume
label: Request Zone Max Volume
kind: action
command: "spc,11"
response: "rspc,11,max_volume"
params: []
- id: set_zone_max_volume
label: Set Zone Max Volume
kind: action
command: "spc,12,{max_volume}"
response: "rspc,12,OK"
params:
- name: max_volume
type: integer
description: "Maximum volume level"
- id: set_volume_current_zone
label: Set Volume Current Zone
kind: action
command: "spc,13,{volume}"
response: "rspc,13,{volume}"
params:
- name: volume
type: integer
description: "Volume level 0-100"
notes: "Overrides max volume setting in GXR2 - caller should check max volume first"
- id: set_volume_any_zone
label: Set Volume Any Zone
kind: action
command: "spc,14,{zone},{volume}"
response: "rspc,14,{zone},{volume}"
params:
- name: zone
type: integer
description: "Zone number 1-30"
- name: volume
type: integer
description: "Volume level 0-100"
notes: "Overrides max volume setting in GXR2 - caller should check max volume first. Invalid zone silently accepted by RS232G but ignored by GXR2."
# ── System Commands (syc) ──
- id: system_reset
label: System Reset
kind: action
command: "syc,1"
response: "None (unsolicited USC,1 sent when ready)"
params: []
- id: set_report_mode
label: Set Report Mode
kind: action
command: "syc,2,{mode}"
response: "rsyc,2,{mode}"
params:
- name: mode
type: integer
description: "0=manual, 1=auto zone+source status, 2=auto+metadata, 3=auto+menu, 4=auto+metadata+menu"
notes: "Without parameter, queries current mode. Factory default is 0. Setting persists across power loss."
- id: rebuild_eeprom
label: Rebuild EEPROM
kind: action
command: "syc,3"
response: "None (RS232G resets itself)"
params: []
notes: "WARNING: resets baud rate to 9600 - do not use if baud rate was changed via Intellifile-3"
Feedbacks
feedbacks:
# ── Zone Status ──
- id: zone_status
type: struct
description: "Full zone status (unsolicited USC,2 or response to znc,5)"
fields:
- name: zone
type: integer
description: "Current zone (1-30)"
- name: master_key
type: integer
description: "Current master key (1-8)"
- name: volume
type: integer
description: "Zone volume (1-100)"
- name: mute
type: integer
description: "0=unmute, 1=mute"
- name: bass
type: integer
description: "Bass (-10 to +10)"
- name: treble
type: integer
description: "Treble (-10 to +10)"
- name: balance
type: integer
description: "Balance (-50 to +50)"
- name: slot
type: integer
description: "Current source card slot"
- id: short_zone_status
type: struct
description: "Status change for non-current zone (unsolicited USC,12)"
fields:
- name: zone
type: integer
description: "Zone with changed status (1-30)"
- name: master_key
type: integer
description: "0=off, 1-8=new master key selection"
- name: what_changed
type: integer
description: "Bitwise: 1=zone status, 2=volume, 4=mute, 8=balance, 16=bass, 32=treble"
# ── Source Status ──
- id: source_status
type: struct
description: "Source status (unsolicited USC,3 or response to src,3)"
fields:
- name: source
type: integer
description: "Current source number"
- name: type
type: integer
description: "1=XM, 2=Sirius, 3=iPod, 4=AM/FM, 5=Audio, 6=Lutron, 7=HD AM/FM, 8=AM/FM Export"
- name: antenna
type: integer
description: "0=no antenna, 1=antenna present"
- name: signal_strength
type: integer
description: "0=no signal, 1=low, 2=middle, 3=good"
- name: stereo
type: integer
description: "0=mono, 1=FM stereo"
- name: shuffle
type: integer
description: "0=normal, 1=shuffle"
- name: pause
type: integer
description: "0=playing, 1=paused"
# ── Metadata ──
- id: metadata_status
type: struct
description: "Source metadata (unsolicited USC,4 or response to src,4)"
fields:
- name: count
type: integer
description: "Number of metadata entries"
notes: "Each entry: id (3=Artist, 4=Song, 5=Channel, 6=ChannelNumber, 7=Genre, 8=Album, 9=ImageRef, 10=TrackNumber, 11=Band, 12=Frequency, 13=GenericLabel1, 14=GenericData1), bytes, name"
# ── Command Acknowledgements ──
- id: command_ok
type: string
description: "rXXX,key_code,OK - command succeeded"
values: ["OK"]
- id: command_fail
type: struct
description: "rXXX,key_code,FAIL,code - command failed"
fields:
- name: code
type: integer
description: "1=memory alloc, 2=invalid cmd, 3=missing cmd, 4=missing param, 5=memory, 6=invalid zone, 7=invalid keycode, 8=no hold flag, 9=no repeat flag, 10=invalid flag, 11=no flags allowed, 12=invalid zone index, 13=invalid source index, 14=invalid soft key index, 15=invalid menu index, 16=no IP, 17=no alt behavior, 18=waiting prev answer, 19=waiting prev setting, 20-23=param out of range, 24=too many dots, 25=non-numeric, 26=no menu, 27=byte mismatch, 28=no alphanumeric search"
# ── Available Counts ──
- id: available_zones_count
type: integer
description: "Number of zones (from rznc,1,#)"
- id: available_master_keys_count
type: integer
description: "Number of master keys (from rsrc,1,#)"
- id: available_soft_keys_count
type: integer
description: "Number of soft keys (from usc,5,#)"
- id: available_menu_items_count
type: integer
description: "Number of menu items (from usc,6,#,...)"
Variables
variables:
- id: report_mode
type: integer
description: "Current report mode: 0=manual, 1=auto status, 2=auto+metadata, 3=auto+menu, 4=auto+all"
access: read_write
set_command: "syc,2,{mode}"
query_command: "syc,2"
- id: zone_volume
type: integer
min: 0
max: 100
description: "Volume for current zone (0-100)"
access: read_write
set_command: "spc,13,{volume}"
- id: any_zone_volume
type: integer
min: 0
max: 100
description: "Volume for any zone (zone 1-30, volume 0-100)"
access: write_only
set_command: "spc,14,{zone},{volume}"
- id: zone_max_volume
type: integer
description: "Maximum allowed volume for current zone"
access: read_write
set_command: "spc,12,{max_volume}"
query_command: "spc,11"
- id: zone_turn_on_volume
type: struct
description: "Turn-on volume behavior for current zone"
access: read_write
set_command: "spc,10,{use_preset},{preset}"
query_command: "spc,9"
fields:
- name: use_preset
type: integer
description: "0=use last volume, 1=preset"
- name: preset
type: integer
description: "Preset volume level"
- id: sleep_timer
type: struct
description: "Zone sleep timer configuration"
access: read_write
set_command: "spc,4,{on_off},{all_zones},{timeout}"
query_command: "spc,3"
fields:
- name: on_off
type: integer
description: "0=off, 1=on"
- name: all_zones
type: integer
description: "0=current zone, 1=all zones"
- name: timeout
type: integer
description: "Minutes 0-120"
- id: alarm_clock
type: struct
description: "Zone alarm clock configuration"
access: read_write
set_command: "spc,6,{on_off},{master_key},{hour},{minute}"
query_command: "spc,5"
fields:
- name: on_off
type: integer
description: "0=off, 1=on"
- name: master_key
type: integer
description: "1-8"
- name: hour
type: integer
description: "0-23"
- name: minute
type: integer
description: "0-59"
- id: zone_page
type: struct
description: "Zone paging/doorbell setting"
access: read_write
set_command: "spc,8,{setting},{volume}"
query_command: "spc,7"
fields:
- name: setting
type: integer
description: "0=never, 1=always, 2=zone on only"
- name: volume
type: integer
description: "Page volume"
- id: system_time
type: struct
description: "System clock"
access: read_write
set_command: "spc,2,{hours},{minutes},{seconds}"
query_command: "spc,1"
fields:
- name: hours
type: integer
description: "0-23"
- name: minutes
type: integer
description: "0-59"
- name: seconds
type: integer
description: "0-59"
Events
events:
- id: ready
description: "RS232G ready after power-on or reset"
syntax: "usc,1"
- id: zone_status_update
description: "Zone status change (auto mode) or periodic (~3s); see zone_status feedback"
syntax: "usc,2,zone,master_key,volume,mute,bass,treble,balance,slot"
- id: source_status_update
description: "Source status change (auto mode) or periodic (~2s); see source_status feedback"
syntax: "usc,3,source,type,antenna,signal_strength,stereo,shuffle,pause"
- id: metadata_update
description: "New metadata available (auto mode 2 or 4)"
syntax: "usc,4,#,id1,bts1,name1,...,idN,btsN,nameN"
- id: available_soft_keys
description: "Soft keys available for current screen"
syntax: "usc,5,#"
- id: available_menu_items
description: "Menu items available for current screen"
syntax: "usc,6,#,bytes,title,menus_type"
- id: metadata_and_soft_keys
description: "Metadata + soft keys need refresh (auto mode 1 or 3)"
syntax: "usc,7"
- id: soft_keys_and_menu_items
description: "Soft keys + menu items need refresh (auto mode 1 or 2)"
syntax: "usc,8"
- id: soft_keys_status
description: "Full soft key status with all info (auto mode 2, 3, or 4)"
syntax: "usc,9,#,index1,type1,behavior1,bytes1,name1,...,indexN,typeN,behaviorN,bytesN,nameN"
- id: menu_items_status
description: "Full menu items status"
syntax: "usc,10,bytes,title,#,index1,behavior1,bytes1,name1,...,indexN,behaviorN,bytesN,nameN"
- id: menu_items_status_extended
description: "Extended menu items status with menus_type (auto mode 3 or 4 only)"
syntax: "usc,11,bytes,title,menus_type,#,index1,behavior1,bytes1,name1,...,indexN,behaviorN,bytesN,nameN"
- id: short_zone_status
description: "Status change in non-current zone (auto mode)"
syntax: "usc,12,zone,master_key,what_changed"
- id: new_metadata_available
description: "Metadata changed for active source not currently selected"
syntax: "usc,13,src"
Macros
# UNRESOLVED: no multi-step macro sequences described in source
Safety
confirmation_required_for: []
interlocks: []
warnings:
- "syc,3 (Rebuild EEPROM) resets baud rate to 9600 - do not use if baud rate was changed via Intellifile-3"
- "spc,13 and spc,14 (Set Volume) override max volume setting in GXR2 - caller must respect max volume"
- "Key code must never be 0x00 (0) or 0xFF (255)"
# UNRESOLVED: no power-on sequencing requirements stated in source
Notes
- All commands are ASCII, comma-separated, CR-terminated (
<CR>= ASCII 13). - Response prefixes follow pattern
r+ command group (e.g.rznc,rsrc,rsrt,rspc,rsyc). - Unsolicited messages use prefix
usc,followed by sub-command number. - Report mode (syc,2) controls whether the RS232G pushes updates automatically (modes 1–4) or requires polling (mode 0). Factory default is mode 0.
- Zone transport hold flag repeats every ~2–3s; source transport repeat flag repeats every ~150ms.
- The RS232G acts as a gateway between serial and the ICS system bus — it manages a single "current zone" context that can be changed with
znc,4,{zone}. - Source types: 1=XM, 2=Sirius, 3=iPod/MP3, 4=AM/FM, 5=Audio, 6=Lutron, 7=HD AM/FM, 8=AM/FM Export.
- Baud rate can be changed via Intellifile-3 setup program (available rates: 4800, 9600, 19200, 38400, 57600).
Provenance
source_domains:
- nilesaudio.com
source_urls:
- https://nilesaudio.com/sites/nilesaudio.com/files/_/techsupport/ICS-System-Support/rs232g_protocol_v2_6_2.pdf
retrieved_at: 2026-05-23T07:58:24.392Z
last_checked_at: 2026-05-31T06:54:50.271Z
Verification Summary
verdict: verified
checked_at: 2026-05-31T06:54:50.271Z
matched_actions: 75
action_count: 75
confidence: medium
summary: "All 75 spec actions found verbatim in source with exact command codes; transport parameters verified; complete protocol coverage. (7 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "firmware version compatibility not stated in source"
- "exact hardware models (GXR2 amplifier, RS232G module part numbers) not specified"
- "no multi-step macro sequences described in source"
- "no power-on sequencing requirements stated in source"
- "exact GXR2 and RS232G module model numbers not specified"
- "maximum cable length / serial distance not stated"
- "whether TCP/IP gateway variant exists (RS232G name implies serial only)"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0