Summary

The AT-OME-MS42 is a 4x2 matrix switcher with USB-C, DisplayPort, and HDMI inputs supporting video, audio, and USB routing. Control via TCP (ports 9000/9001/9002), Telnet (port 23), SSH, or RS-232. Command set includes power control, input/output routing, audio muting, network configuration, and USB host routing. 500ms delay required between commands. Commands terminated with CR (0x0d); feedback terminated with CR+LF (0x0a).

Transport

protocols:
  - tcp
  - serial
addressing:
  port: 9000  # MCU / TCP socket
  # UNRESOLVED: ports 9001 (HDBaseT RS-232 passthrough) and 9002 (local RS-232) - not standalone control ports
telnet_port: 23  # default Telnet port stated in source
serial:
  baud_rate: 115200  # default stated in source
  data_bits: 8
  parity: none
  stop_bits: 1
auth:
  type: none  # inferred: no auth procedure in source

Traits

# inferred from command examples in source:
powerable: true
routable: true
queryable: true
levelable: true  # VOUTMute, xY$ commands

Actions

# Power
- id: PWON
  label: Power On
  kind: action
  command: "PWON"
  params: []

- id: PWOFF
  label: Power Off
  kind: action
  command: "PWOFF"
  params: []

- id: PWSTA
  label: Power Status
  kind: query
  command: "PWSTA"
  params: []

- id: Reboot
  label: Reboot
  kind: action
  command: "Reboot"
  params: []

# Routing
- id: xYAVxZ
  label: Switch Input to Output
  kind: action
  command: "x{input}AVx{output}"  # e.g. x3AVx1
  params:
    - name: input
      type: integer
      description: "Input number: 1=USB-C, 2=DisplayPort, 3=HDMI1, 4=HDMI2"
    - name: output
      type: integer
      description: "Output number: 1=HDMI, 2=HDBaseT (or output flag in matrix mode)"

- id: xY$
  label: Enable/Disable Video Output
  kind: action
  command: "x{output}$ {state}"  # e.g. x2$ of
  params:
    - name: output
      type: integer
      description: "Output: 1=HDMI, 2=HDBaseT"
    - name: state
      type: enum
      values: [on, of, sta]
      description: "on=enable, of=disable, sta=query"

- id: VOUTMute
  label: Mute/Unmute Output Volume
  kind: action
  command: "VOUTMute{output} {state}"  # e.g. VOUTMute2 of
  params:
    - name: output
      type: integer
      description: "Output: 1=HDMI, 2=HDBaseT"
    - name: state
      type: enum
      values: [on, off, sta]

# Audio
- id: LRAUD
  label: Enable/Disable Analog Audio Output
  kind: action
  command: "LRAUD {state}"  # e.g. LRAUD on
  params:
    - name: state
      type: enum
      values: [on, off, sta]

# USB
- id: USBHostLogic
  label: Set USB Mode
  kind: action
  command: "USBHostLogic {mode}"  # e.g. USBHostLogic follow video
  params:
    - name: mode
      type: enum
      values: [follow usb, follow video, manual, sta]
      description: "follow usb, follow video, manual, sta"

- id: USBHostRoute
  label: Set USB Host Routing
  kind: action
  command: "USBHostRoute {port}"  # e.g. USBHostRoute C
  params:
    - name: port
      type: enum
      values: [C, 1, 2, 3, sta]
      description: "C=USB-C, 1=USB Host 1, 2=USB Host 2, 3=remote HDBaseT"

- id: UsbVbusControl
  label: Toggle USB Vbus
  kind: action
  command: "UsbVbusControl {state}"  # e.g. UsbVbusControl on
  params:
    - name: state
      type: enum
      values: [on, off, sta]

# Network
- id: IPDHCP
  label: Enable/Disable DHCP
  kind: action
  command: "IPDHCP {state}"  # e.g. IPDHCP on
  params:
    - name: state
      type: enum
      values: [on, off, sta]

- id: IPStatic
  label: Set Static IP
  kind: action
  command: "IPStatic {X} {Y} {Z}"  # e.g. IPStatic 192.168.1.112 255.255.255.0 192.168.1.1
  params:
    - name: X
      type: string
      description: "IP address (dot-decimal)"
    - name: Y
      type: string
      description: "Subnet mask (dot-decimal)"
    - name: Z
      type: string
      description: "Gateway (dot-decimal)"

- id: IP802.1x
  label: Set 802.1x Security
  kind: action
  command: "IP802.1x {setting}"  # e.g. IP802.1x TTLS
  params:
    - name: setting
      type: enum
      values: [disable, PEAP, TTLS, TLS, sta]

# Panel lock
- id: Lock
  label: Lock Front Panel
  kind: action
  command: "Lock"
  params: []

- id: Unlock
  label: Unlock Front Panel
  kind: action
  command: "Unlock"
  params: []

# Display / emulation
- id: DispBtn
  label: Display Button
  kind: action
  command: "DispBtn {state}"  # e.g. DispBtn on
  params:
    - name: state
      type: enum
      values: [on, off, tog, sta]

- id: Blink
  label: Blink Power LED
  kind: action
  command: "Blink {state}"  # e.g. Blink on
  params:
    - name: state
      type: enum
      values: [on, off, sta]

# HDMI +5V
- id: OutHdmi5vKeep
  label: HDMI Out +5V Keep
  kind: action
  command: "OutHdmi5vKeep {state}"  # e.g. OutHdmi5vKeep on
  params:
    - name: state
      type: enum
      values: [on, off, sta]

# Factory reset
- id: Mreset
  label: Factory Reset
  kind: action
  command: "Mreset"
  params: []

# RS-232 passthrough (legacy)
- id: RS232zone
  label: RS-232 Zone Command
  kind: action
  command: "RS232zone[{command}]"  # e.g. RS232zone[test]
  params:
    - name: command
      type: string
      description: "Command string to send to HDBaseT RS-232 port (deprecated)"
  notes: Deprecated; use TCP socket on port 9001 instead

# Command repeat
- id: RepCmdTime
  label: Set Command Repeat Count
  kind: action
  command: "RepCmdTime {times}"  # e.g. RepCmdTime 3
  params:
    - name: times
      type: integer
      range: [2, 4, sta]

- id: RepeatCmd
  label: Enable/Disable Repeat Command
  kind: action
  command: "RepeatCmd {state}"  # e.g. RepeatCmd on
  params:
    - name: state
      type: enum
      values: [on, off, sta]

# Query-only (no args, no params needed in action struct)
- id: Status
  label: Routing Status
  kind: query
  command: "Status"
  params: []

- id: Type
  label: Model Type
  kind: query
  command: "Type"
  params: []

- id: Version
  label: Firmware Version
  kind: query
  command: "Version"
  params: []

- id: IPCFG
  label: IP Configuration
  kind: query
  command: "IPCFG"
  params: []

- id: InputStatus
  label: Input Status
  kind: query
  command: "InputStatus"
  params: []

# Help
- id: help
  label: Help
  kind: query
  command: "help {command}"  # e.g. help ; help Blink (command name optional)
  params:
    - name: command
      type: string
      required: false
      description: "Optional command name to get help on; omit to list all commands"

Feedbacks

# Acknowledgement strings
- id: command_failed
  type: enum
  values: [Command FAILED]
  description: "Returned when command is unrecognized or malformed"

- id: power_state
  type: enum
  values: [PWON, PWSTA display values]
  description: "PWSTA returns PWON when powered on; 0 or 1 for power state"

- id: input_status
  type: string
  description: "4-character binary string, e.g. 0100 - 1=source detected, 0=no source"

- id: routing_status
  type: string
  description: "Format x2AVx1,x2AVx2 - shows current input-to-output routing"

- id: model_name
  type: string
  description: "Type command returns AT-OME-MS42"

- id: firmware_version
  type: string
  description: "Version command returns version string (source example: 1.0.05)"

- id: ip_config
  type: string
  description: "IPCFG returns: IP Addr, Netmask, Gateway, Telnet Port"

- id: dhcp_state
  type: enum
  values: [on, off, sta]

- id: blink_state
  type: enum
  values: [on, off, sta]

- id: lock_state
  type: enum
  values: [locked, unlocked]

- id: audio_output_state
  type: enum
  values: [on, off, sta]

- id: vout_mute_state
  type: enum
  values: [on, off, sta]

- id: video_output_state
  type: enum
  values: [on, of, sta]

- id: usb_host_logic
  type: enum
  values: [follow usb, follow video, manual, sta]

- id: usb_host_route
  type: enum
  values: [C, 1, 2, 3, sta]

- id: usb_vbus_state
  type: enum
  values: [on, off, sta]

- id: hdmi_5v_keep_state
  type: enum
  values: [on, off, sta]

- id: 802.1x_state
  type: enum
  values: [disable, PEAP, TTLS, TLS, sta]

- id: repeat_cmd_state
  type: enum
  values: [on, off, sta]

- id: rep_cmd_time
  type: integer
  description: "Returns current repeat count setting"

Variables

# Settable parameters that are not discrete actions
- id: ip_address
  type: string
  description: Current IP address; set via IPStatic

- id: subnet_mask
  type: string
  description: Subnet mask; set via IPStatic

- id: gateway
  type: string
  description: Gateway address; set via IPStatic

- id: static_ip_config
  type: object
  description: IP address, subnet mask, and gateway set together via IPStatic command

- id: telnet_port
  type: integer
  description: Telnet port number (default 23); returned in IPCFG output

- id: repeat_count
  type: integer
  description: Number of times a command is repeated (2-4); set via RepCmdTime

- id: repeat_enabled
  type: boolean
  description: Whether RepCmdTime feature is enabled; set via RepeatCmd

Events

# UNRESOLVED: source does not describe unsolicited event notifications
# The device sends feedback only in response to commands, not autonomously

Macros

# UNRESOLVED: no multi-step macro sequences described in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source
# Note: RS-232 pin assignments vary; DB9 pin 2/3 may be reversed on some devices

Notes

  • Commands are case-sensitive.
  • 500ms minimum delay between consecutive commands.
  • Command terminator: CR (0x0d); feedback terminator: CR+LF (0x0a).
  • RS-232 passthrough via TCP port 9001 sends data bit-for-bit to connected display's RS-232 port. TCP socket must remain open to receive responses.
  • Port 9000: MCU (similar to Telnet). Port 9001: HDBaseT RS-232 passthrough. Port 9002: Local RS-232.
  • Telnet default port: 23. SSH also supported.
  • RS-232 defaults: 115200, 8-bit, None, 1.
  • RS232zone command is deprecated; TCP socket on port 9001 is the recommended passthrough method.
  • Blink command: POWER LED flashes blue until Blink off or device reboot.
  • xYAVxZ in matrix mode: outputs 1 and 2 can be specified as flags for simultaneous routing.
  • help command: bare help lists all commands; help {name} returns help for a single command.

Done. Added missing `help` action + verbatim `command:` payloads to all 29 actions. Marked query-type commands (`PWSTA`, `Status`, `Type`, `Version`, `IPCFG`, `InputStatus`, `help`) `kind: query`. Preserved all existing IDs/params/shapes.

## Provenance

```yaml
source_domains:
  - atlona.com
source_urls:
  - https://atlona.com/pdf/AT-OME-MS42_API.pdf
  - https://atlona.com/pdf/AT-OME-MS42-HDBT_API.pdf
  - https://atlona.com/pdf/AT-OME-MS52W_API.pdf
  - https://atlona.com/pdf/AT-OME-PS62_API.pdf
  - https://atlona.com/product/at-ome-ms42/
retrieved_at: 2026-05-04T18:55:08.142Z
last_checked_at: 2026-07-12T08:45:04.121Z
```

## Verification Summary

```yaml
verdict: verified
checked_at: 2026-07-12T08:45:04.121Z
matched_actions: 29
action_count: 29
confidence: medium
summary: "All 29 spec actions matched literally against source commands; transport parameters (port 9000, 115200 baud, 8-bit/no-parity/1-stop) verified in source; one-to-one coverage. (8 unresolved item(s) noted in Known Gaps.)"
```

## Known Gaps

```yaml
- "USB 2.0 vs 3.x data rate specifications not in source"
- "ports 9001 (HDBaseT RS-232 passthrough) and 9002 (local RS-232) - not standalone control ports"
- "source does not describe unsolicited event notifications"
- "no multi-step macro sequences described in source"
- "no safety warnings or interlock procedures in source"
- "USB data rate (2.0 vs 3.x) not stated in source"
- "HDBaseT version/revision not stated in source"
- "Max cable lengths not stated in source"
```

---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0