Summary
The Atlona AT-H2H-88M is an 8×8 HDMI matrix switcher with HDBaseT outputs, controllable over RS-232 (9-pin DB, pins 2/3/5) and TCP/IP (DHCP default on, optional WebGUI / telnet login). This spec covers the documented ASCII command set including power, input/output routing, EDID management, presets, panel lock/IR, and IP configuration commands. Commands are case-sensitive and each command/feedback is terminated with a carriage return.
Transport
protocols:
- tcp
- serial
addressing:
port: null # UNRESOLVED: default TCP port not stated in source; port is settable via `IPPort` command (example: `IPPort 230`)
serial:
baud_rate: 115200 # matrix default; also supports 9600 (8-N-1 or 8-O-0)
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
connector: DB9-female # pins 2 (Tx), 3 (Rx), 5 (Gnd) only
auth:
type: credential # source describes an auth procedure (WebGUI + optional telnet IPLogin Mode)
# Default credentials stated in source: username "root", password "Atlona" (admin only password changeable)
# IPLogin on/off controls whether TCP connections require login; source notes Login Mode "should not be used when using a control system"
Traits
traits:
- powerable # inferred from PWON/PWOFF commands
- routable # inferred from x1AVx2 routing commands
- queryable # inferred from PWSTA / Status / Version / Type queries
Actions
# All commands terminated with carriage return (CR). Commands are case-sensitive.
# On failure the device returns the literal feedback: "Command FAILED".
# Parameter legend: X = input number, Y = preset/user value, Z = internal EDID index, x1/x2 = output numbers.
# --- Power ---
- id: power_on
label: Power On
kind: action
command: "PWON"
params: []
- id: power_off
label: Power Off
kind: action
command: "PWOFF"
params: []
- id: power_status_query
label: Power Status Query
kind: query
command: "PWSTA"
params: []
# --- System info ---
- id: firmware_version_query
label: Firmware Version Query
kind: query
command: "Version"
params: []
- id: model_type_query
label: Model Type Query
kind: query
command: "Type"
params: []
# --- Front panel lock ---
- id: panel_lock
label: Front Panel Lock
kind: action
command: "Lock"
params: []
- id: panel_unlock
label: Front Panel Unlock
kind: action
command: "Unlock"
params: []
# --- Routing / matrix reset ---
- id: route_reset_all
label: Reset All Inputs To Corresponding Outputs
kind: action
command: "All#"
params: []
- id: output_off
label: Turn Off Output Channel
kind: action
command: "x{output}$"
params:
- name: output
type: integer
description: Output number to disable (ex. x3$ turns off output 3)
- id: route_input_to_all
label: Route Input To All Outputs
kind: action
command: "x{input}All"
params:
- name: input
type: integer
description: Input number routed to every output (ex. x3All)
- id: route_input_to_output
label: Route Input To Single Output
kind: action
command: "x{input}AVx{output}"
params:
- name: input
type: integer
description: Input number
- name: output
type: integer
description: Output number (ex. x3AVx2 = input 3 to output 2)
- id: route_input_to_outputs
label: Route Input To Multiple Outputs
kind: action
command: "x{input}AVx{output_list}"
params:
- name: input
type: integer
description: Input number
- name: output_list
type: string
description: Comma-separated output numbers (ex. x3AVx1,x2)
# --- IR receiver ---
- id: ir_on
label: IR Receiver On
kind: action
command: "IRON"
params: []
- id: ir_off
label: IR Receiver Off
kind: action
command: "IROFF"
params: []
# --- Routing status queries ---
- id: output_status_query
label: Output Routing Status Query
kind: query
command: "Statusx{output}"
params:
- name: output
type: integer
description: Output number (returns e.g. x7AVx1)
- id: all_status_query
label: Full Routing Status Query
kind: query
command: "Status"
params: []
# --- Presets (0-4) ---
- id: preset_save
label: Save Preset
kind: action
command: "Save {preset}"
params:
- name: preset
type: integer
description: Preset slot 0-4 (ex. Save2)
- id: preset_recall
label: Recall Preset
kind: action
command: "Recall {preset}"
params:
- name: preset
type: integer
description: Preset slot 0-4 (ex. Recall2)
- id: preset_clear
label: Clear Preset
kind: action
command: "Clear {preset}"
params:
- name: preset
type: integer
description: Preset slot to erase (ex. Clear2)
# --- Factory reset ---
- id: matrix_reset
label: Matrix Factory Reset
kind: action
command: "Mreset"
params: []
# --- EDID (RS-232) ---
- id: edid_set_default
label: Set Input EDID To Default
kind: action
command: "EDIDMSet{input} default"
params:
- name: input
type: integer
description: Input number (ex. EDIDMSet2 default)
- id: edid_set_saved
label: Set Input EDID To Saved Memory
kind: action
command: "EDIDMSet{input} save{memory}"
params:
- name: input
type: integer
description: Input number
- name: memory
type: integer
description: Saved EDID memory slot (ex. EDIDMSet1 save3)
- id: edid_set_internal
label: Set Input EDID To Internal
kind: action
command: "EDIDMSet{input} int{index}"
params:
- name: input
type: integer
description: Input number
- name: index
type: integer
description: Internal EDID index (ex. EDIDMSet3 int6 = 1080p 3D Dolby Digital 5.1)
# --- TCP/IP configuration ---
- id: ip_config_query
label: IP Configuration Query
kind: query
command: "IPCFG"
params: []
- id: ip_timeout_set
label: Set TCP/IP Inactivity Timeout
kind: action
command: "IPTimeout {seconds}"
params:
- name: seconds
type: integer
description: Seconds of inactivity before TCP disconnect (ex. IPTimeout120)
- id: ip_quit
label: Logout Of TCP/IP
kind: action
command: "IPQuit"
params: []
- id: ip_user_list_query
label: TCP/IP User List Query
kind: query
command: "IPAddUser"
params: []
- id: ip_user_add
label: Add TCP/IP User
kind: action
command: "IPAddUser {user} {password}"
params:
- name: user
type: string
description: Username
- name: password
type: string
description: Password (ex. IPAddUser Atlona 1234)
- id: ip_user_delete
label: Delete TCP/IP User
kind: action
command: "IPDelUser {user}"
params:
- name: user
type: string
description: Username to delete (ex. IPDelUser Atlona)
- id: ip_dhcp_status_query
label: DHCP Status Query
kind: query
command: "IPDHCP sta"
params: []
- id: ip_dhcp_on
label: Enable DHCP
kind: action
command: "IPDHCP on"
params: []
- id: ip_dhcp_off
label: Disable DHCP
kind: action
command: "IPDHCP off"
params: []
- id: ip_static_set
label: Set Static IP
kind: action
command: "IPStatic {address} {netmask} {gateway}"
params:
- name: address
type: string
description: Static IP address
- name: netmask
type: string
description: Subnet mask
- name: gateway
type: string
description: Gateway (ex. IPStatic 192.168.1.1 255.255.255.0 192.168.1.200)
- id: ip_port_set
label: Set TCP/IP Port
kind: action
command: "IPPort {port}"
params:
- name: port
type: integer
description: TCP port number (ex. IPPort 230)
- id: ip_login_status_query
label: IPLogin Status Query
kind: query
command: "IPLogin sta"
params: []
- id: ip_login_on
label: Enable IPLogin Mode
kind: action
command: "IPLogin on"
params: []
- id: ip_login_off
label: Disable IPLogin Mode
kind: action
command: "IPLogin off"
params: []
- id: broadcast_status_query
label: Broadcast Mode Status Query
kind: query
command: "Broadcast sta"
params: []
- id: broadcast_on
label: Enable Broadcast Mode
kind: action
command: "Broadcast on"
params: []
- id: broadcast_off
label: Disable Broadcast Mode
kind: action
command: "Broadcast off"
params: []
Feedbacks
# Documented feedback strings returned by the device (all CR-terminated).
- id: power_state
type: enum
values: ["PWON", "PWOFF"]
query: "PWSTA"
- id: command_failed
type: literal
values: ["Command FAILED"]
notes: Returned when a command fails or is malformed.
- id: routing_map
type: string
query: "Status"
format: "x1AVx1,x2AVx2,..." # full input→output map
- id: output_routing
type: string
query: "Statusx{output}"
format: "x{input}AVx{output}"
- id: firmware_version
type: string
query: "Version"
- id: model_type
type: string
query: "Type"
- id: panel_lock_state
type: enum
values: ["Lock", "Unlock"]
- id: ir_state
type: enum
values: ["IRON", "IROFF"]
- id: preset_ack
type: literal
values: ["Save {Y}", "Recall {Y}", "Clear {Y}"]
- id: ip_config
type: multiline
query: "IPCFG"
format: |
IP Addr : x.x.x.x
Netmask : x.x.x.x
Gateway : x.x.x.x
IP Port: x.x.x
- id: ip_timeout_ack
type: literal
format: "IPTimeout XX"
- id: ip_quit_ack
type: literal
values: ["IPQuit"]
- id: ip_user_list
type: multiline
query: "IPAddUser"
format: |
TCP/IP username & password list:
- user password
- id: ip_user_added
type: literal
values: ["TCP/IP user was added"]
- id: ip_user_deleted
type: literal
values: ["TCP/IP user was deleted"]
- id: dhcp_state
type: enum
values: ["IPDHCP on", "IPDHCP off"]
- id: static_ack
type: literal
format: "IPStatic address netmask gateway"
- id: port_ack
type: literal
format: "IPPort Y"
- id: iplogin_state
type: enum
values: ["IPLogin on", "IPLogin off"]
- id: broadcast_state
type: enum
values: ["Broadcast on", "Broadcast off"]
Variables
- id: ip_timeout
label: TCP/IP Inactivity Timeout
unit: seconds
set_command: "IPTimeout {seconds}"
- id: tcp_port
label: TCP/IP Port
unit: integer
set_command: "IPPort {port}"
# UNRESOLVED: default port value not stated in source
- id: dhcp_enabled
label: DHCP Enabled
type: boolean
set_commands: ["IPDHCP on", "IPDHCP off"]
- id: static_ip
label: Static IP / Netmask / Gateway
set_command: "IPStatic {address} {netmask} {gateway}"
- id: iplogin_enabled
label: IPLogin Mode Enabled
type: boolean
set_commands: ["IPLogin on", "IPLogin off"]
- id: broadcast_enabled
label: Broadcast Mode Enabled
type: boolean
set_commands: ["Broadcast on", "Broadcast off"]
- id: baud_rate
label: Matrix Baud Rate
unit: bps
values: [115200, 9600]
# Set via WebGUI config page, not via ASCII command. Framing options: 8-N-1 or 8-O-0.
- id: preset_slot
label: Routing Preset
values: [0, 1, 2, 3, 4]
set_commands: ["Save {Y}", "Recall {Y}", "Clear {Y}"]
Events
# UNRESOLVED: source does not document any unsolicited notifications. Broadcast Mode
# (Broadcast on/off) may push state to multiple clients but its notification payload is not specified.
Macros
# UNRESOLVED: source documents no explicit multi-step sequences.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings, interlock procedures, or
# power-on sequencing requirements. `Mreset` performs a factory reset (destructive) -
# operator may wish to require confirmation; not stated in source.
Notes
- Commands are case-sensitive — do not change capitalization, spacing, or lettering.
- Each command and each feedback is terminated with a carriage return (CR).
- On malformed/failed commands the device returns the literal
Command FAILED. - The same ASCII command set is documented for both RS-232 and TCP/IP transports.
- RS-232 connector: 9-pin DB female; only pins 2 (Tx), 3 (Rx), 5 (Gnd) are terminated.
- Matrix default serial config: 115200, 8, N, 1, no flow control. Alternate framing supported via front-panel status:
9600 8 N 1or9600 8 ODD 0. - Baud rate is settable via the WebGUI config page (not via ASCII command) and is shared with attached projector compatibility — changing it is discouraged unless an incompatibility occurs.
- IP discovery: front panel → Function Option → hold 5s shows
FW Ver: X.X.XxthenIP: XXX.XXX.XXX.XXX(default example192.168.000.200). DHCP is on by default. - WebGUI login (also used for IPLogin/telnet): username root, default password Atlona. Only the admin password is changeable; username is always
root. - Source recommends IPLogin Mode be off when driving from a control system.
- Presets are numbered 0–4 (5 slots).
- Source states ARC can be toggled per-output via front panel (1: On / 2: Off) and references an RS-232 ARC command on manual page 18, but that page image was not extractable in the refined source.
Spec done. 39 actions, all from source verbatim. Dual transport (tcp+serial). Gaps marked UNRESOLVED. No invented values.
## Provenance
```yaml
source_domains:
- atlona.com
source_urls:
- https://atlona.com/pdf/manuals/AT-H2H_V2.pdf
- https://atlona.com/downloads/AMX_AT-H2H-88M.zip
- https://atlona.com/downloads/CRM_AT-H2H-88M.zip
- https://atlona.com/downloads/RTI_RS232-TCPIP.zip
- https://atlona.com/downloads/C4IP_AT-H2H-88M.zip
retrieved_at: 2026-06-14T16:54:14.232Z
last_checked_at: 2026-06-14T19:37:53.578Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-06-14T19:37:53.578Z
matched_actions: 40
action_count: 40
confidence: medium
summary: "All 40 spec actions matched literally in source with exact command syntax; transport parameters verified; no gaps or fabrications. (10 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "default TCP port not stated in source; port is settable via `IPPort` command (example: `IPPort 230`)"
- "default port value not stated in source"
- "source does not document any unsolicited notifications. Broadcast Mode"
- "source documents no explicit multi-step sequences."
- "source contains no explicit safety warnings, interlock procedures, or"
- "default TCP port not stated (only settable via IPPort)"
- "ARC RS-232 command syntax not present in extractable source (page 18 image missing)"
- "firmware version / compatibility range not stated"
- "list of internal EDID indices beyond int6 not enumerated"
- "broadcast-mode notification payload not specified"
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0