Summary
AV control spec for the Lightware Taurus UCX Series unified-collaboration (UCX) matrix switchers. Covers the two documented Lightware-proprietary TCP protocols: LW2 (legacy curly-bracket syntax, port 10001) and LW3 (slash-delimited REST-like path syntax, port 6107). Devices expose video crosspoint switching, audio level control, EDID management, RS-232 pass-through, GPIO, and network configuration.
Transport
protocols:
- tcp
# LW3 port documented as primary modern control; LW2 port 10001 also documented
# for backward-compatible syntax. Both are unauthenticated TCP text protocols.
addressing:
port: 6107 # LW3 protocol; LW2 uses port 10001 (see Notes)
auth:
type: none # inferred: no auth procedure in source
Traits
- routable # inferred from input/output routing command examples
- queryable # inferred from query command examples
- levelable # inferred from VolumedB / VolumePercent control examples
Actions
# LW2 protocol commands (TCP port 10001, curly-bracket syntax)
- id: lw2_switch
label: LW2 Switch Input to Output
kind: action
command: "{<input>@<output>}"
params:
- name: input
type: integer
description: Source input number (1-based)
- name: output
type: integer
description: Destination output number (1-based)
notes: |
Example {1@5} routes Input 1 to Output 5; device replies (O05 I01)CrLf.
- id: lw2_batch_switch
label: LW2 Batch Switch
kind: action
command: "{<cmd1>}{<cmd2>}{<cmd3>}"
params:
- name: cmd1
type: string
description: First LW2 switch/unmute command
- name: cmd2
type: string
description: Second LW2 switch/unmute command
- name: cmd3
type: string
description: Third LW2 switch/unmute command
notes: |
Commands arriving within 10 ms are batched; {02@01}{+06}{05@04} routes
Input 2 to Output 1, unmutes Input 6, and routes Input 5 to Output 4 together.
- id: lw2_unmute_input
label: LW2 Unmute Input
kind: action
command: "{+<input>}"
params:
- name: input
type: integer
description: Input port to unmute
- id: lw2_view_connections
label: LW2 View Crosspoint Connections
kind: query
command: "{vc}"
params: []
- id: lw2_load_preset
label: LW2 Load Crosspoint Preset
kind: action
command: "{%<preset>}"
params:
- name: preset
type: integer
description: Preset number to load (1-based)
- id: lw2_input_port_status
label: LW2 Query Input Port Signal Status
kind: query
command: "{:isd}"
params: []
- id: lw2_ip_config_query
label: LW2 Query IP Configuration
kind: query
command: "{ip_config=?}"
params: []
- id: lw2_ip_config_set
label: LW2 Set IP Configuration
kind: action
command: "{ip_config=<mode> <ip> <port> <mask> <gateway>}"
params:
- name: mode
type: integer
description: '0 = static, 1 = DHCP (per source example)'
- name: ip
type: string
description: IPv4 address
- name: port
type: integer
description: LW2 TCP port
- name: mask
type: string
description: Subnet mask in dotted-quad form
- name: gateway
type: string
description: Gateway IPv4 address
- id: lw2_health_status
label: LW2 Query Health Status
kind: query
command: "{st}"
params: []
- id: lw2_product_type
label: LW2 Query Product Type
kind: query
command: "{i}"
params: []
- id: lw2_set_edid
label: LW2 Set EDID on Input Port
kind: action
command: "{e<input>:f<edid>}"
params:
- name: input
type: integer
description: Input port number
- name: edid
type: string
description: EDID mnemonic (e.g. F10 factory EDID, or custom)
# LW3 protocol commands (TCP port 6107, slash-delimited path syntax)
- id: lw3_get_destination_connections
label: LW3 Query Crosspoint Destination Connections
kind: query
command: "GET /MEDIA/VIDEO/XP.DestinationConnectionList"
params: []
- id: lw3_switch
label: LW3 Switch Input to Output
kind: action
command: "CALL /MEDIA/VIDEO/XP:switch(I<input>:O<output>)"
params:
- name: input
type: integer
description: Source input number (1-based)
- name: output
type: integer
description: Destination output number (1-based)
- id: lw3_signal_present
label: LW3 Query Video Signal Presence on Input
kind: query
command: "GET /MEDIA/VIDEO/I<input>.SignalPresent"
params:
- name: input
type: integer
description: Input number (1-based)
- id: lw3_hdcp_state_query
label: LW3 Query HDCP State on Input
kind: query
command: "GET /MEDIA/VIDEO/I<input>.HdcpState"
params:
- name: input
type: integer
description: Input number (1-based)
- id: lw3_hdcp_state_set
label: LW3 Set HDCP State on Input
kind: action
command: "SET /MEDIA/VIDEO/I<input>.HdcpState=<state>"
params:
- name: input
type: integer
description: Input number (1-based)
- name: state
type: integer
description: "0 = disabled, 1 = enabled"
- id: lw3_mute_sources
label: LW3 Mute Input Ports
kind: action
command: "CALL /MEDIA/VIDEO/XP:muteSource(I<input1>;I<input2>)"
params:
- name: input1
type: integer
description: First input to mute
- name: input2
type: integer
description: Second input to mute
- id: lw3_source_port_status
label: LW3 Query Source Port Status
kind: query
command: "GET /MEDIA/VIDEO/XP.SourcePortStatus"
params: []
- id: lw3_cpu_temperature
label: LW3 Query CPU Temperature
kind: query
command: "GET /MANAGEMENT/STATUS.CpuTemperature"
params: []
- id: lw3_5v_main
label: LW3 Query 5V Main Voltage
kind: query
command: "GET /MANAGEMENT/STATUS.5VMain"
params: []
- id: lw3_hdbt_stat
label: LW3 Query HDBT Cable Error Rates
kind: query
command: "GET /REMOTE/S<source>.HdbtStat"
params:
- name: source
type: integer
description: Source/input number (1-based)
- id: lw3_tx_ber
label: LW3 Query HDBT Transmit BER
kind: query
command: "GET /REMOTE/S<source>.TxBer"
params:
- name: source
type: integer
description: Source/input number (1-based)
- id: lw3_destination_autoselect_get
label: LW3 Get Destination Autoselect Settings
kind: query
command: "GET /MEDIA/VIDEO/XP.DestinationPortAutoselect"
params: []
- id: lw3_destination_autoselect_set
label: LW3 Set Destination Autoselect Mode
kind: action
command: "CALL /MEDIA/VIDEO/XP:setDestinationPortAutoselect(O<output>:<flags>)"
params:
- name: output
type: integer
description: Output port number (1-based)
- name: flags
type: string
description: "Two-letter code, e.g. EP = Enabled + Priority mode; EL = Enabled + Last-detect"
- id: lw3_set_volume_db
label: LW3 Set Analog Audio Output Volume (dB)
kind: action
command: "SET /MEDIA/AUDIO/O<output>.VolumedB=<value>"
params:
- name: output
type: integer
description: Analog audio output port (1-based)
- name: value
type: number
description: Volume in dB (range not stated in source excerpt)
- id: lw3_set_volume_percent
label: LW3 Set Analog Audio Output Volume (Percent)
kind: action
command: "SET /MEDIA/AUDIO/O<output>.VolumePercent=<value>"
params:
- name: output
type: integer
description: Analog audio output port (1-based)
- name: value
type: integer
description: Volume percent (0-100 per source)
- id: lw3_product_name
label: LW3 Query Product Name
kind: query
command: "GET /.ProductName"
params: []
- id: lw3_system_reset
label: LW3 Reset Device
kind: action
command: "CALL /SYS:reset()"
params: []
- id: lw3_dhcp_enabled_get
label: LW3 Query DHCP State
kind: query
command: "GET /MANAGEMENT/NETWORK.DhcpEnabled"
params: []
- id: lw3_dhcp_enabled_set
label: LW3 Set DHCP State
kind: action
command: "SET /MANAGEMENT/NETWORK.DhcpEnabled=<state>"
params:
- name: state
type: boolean
description: true = DHCP, false = static IP
- id: lw3_static_ip_set
label: LW3 Set Static IP Address
kind: action
command: "SET /MANAGEMENT/NETWORK.StaticIpAddress=<ip>"
params:
- name: ip
type: string
description: Static IPv4 address (valid only when DhcpEnabled=false)
- id: lw3_uart_baud_set
label: LW3 Set RS-232 Port Baud Rate
kind: action
command: "SET /MEDIA/UART/P<port>.Baudrate=<value>"
params:
- name: port
type: integer
description: UART/serial port number (1-based; P1 = local)
- name: value
type: integer
description: Baud rate index; 2 = 9600, 0 and 7 = other rates (mapping not in source excerpt)
- id: lw3_uart_send_message
label: LW3 Send Message over RS-232 Port
kind: action
command: "CALL /MEDIA/UART/P<port>:sendMessage(<message>/r/n)"
params:
- name: port
type: integer
description: UART/serial port number (1-based)
- name: message
type: string
description: ASCII message; terminated with CR LF (source uses /r/n)
- id: lw3_gpio_toggle
label: LW3 Toggle GPIO Pin Output Level
kind: action
command: "CALL /MEDIA/GPIO/P<port>:toggle(<pin>)"
params:
- name: port
type: integer
description: GPIO port number (1-based)
- name: pin
type: integer
description: Pin number on the GPIO port
- id: lw3_ethernet_tcp_text
label: LW3 Send TCP Text Message over Ethernet
kind: action
command: "CALL /MEDIA/ETHERNET:tcpText(<remote>=<message>)"
params:
- name: remote
type: string
description: Destination in ip:port form (e.g. 192.168.0.11:9715)
- name: message
type: string
description: ASCII text payload to send
- id: lw3_subscribe
label: LW3 Subscribe to Node Change Notifications
kind: action
command: "OPEN <path>/*"
params:
- name: path
type: string
description: LW3 node path; trailing /* subscribes to all children (e.g. /MEDIA/VIDEO/*)
Feedbacks
- id: lw2_destination_connection
type: string
description: |
Per-output routing/mute/lock state. Example: (O05 I01)CrLf means Output 5
is connected to Input 1. Multi-output batch: (ALL M01 L01 01 01 02 02 02 U02)
where M=muted, L=locked, U=muted+locked; one letter per output in order.
- id: lw2_preset_loaded
type: string
description: "(LPR<nn>)CrLf - preset number nn has been loaded."
- id: lw2_input_signal_status
type: string
description: |
(ISD <flags>)CrLf; one digit per input, '1' = source connected (+5V present),
'0' = no source. Length depends on device.
- id: lw2_ip_config
type: string
description: |
(IP_CONFIG=<mode> <ip> <port> <mask> <gateway>)CrLf
- id: lw2_health
type: string
description: |
Series of (ST ...)CrLf lines. Voltages (3V/5V/12V), internal temperature,
and per-fan RPM lines. Exact field set depends on device.
- id: lw2_product_type
type: string
description: "(I: <model>)CrLf"
- id: lw2_edid_ack
type: string
description: |
(E_SW_OK)CrLf immediate, then (E_S_C)CrLf after EDID switch completes.
- id: lw3_destination_connections
type: string
description: |
pr /MEDIA/VIDEO/XP.DestinationConnectionList=I1;I3;I1;I3 - semicolon-separated
input number for each output in order.
- id: lw3_signal_present
type: enum
values: [present, absent]
description: pr /MEDIA/VIDEO/I<n>.SignalPresent=1 (present) or =0 (absent)
- id: lw3_hdcp_state
type: enum
values: [disabled, enabled]
description: pr /MEDIA/VIDEO/I<n>.HdcpState=0 (disabled) or =1 (enabled)
- id: lw3_source_port_status
type: string
description: |
pr /MEDIA/VIDEO/XP.SourcePortStatus=T000F;M000A;... - semicolon-separated
per-input groups. Letter: T=unmuted/unlocked, M=muted, L=locked, U=locked+muted.
Followed by 4 hex chars: 2 reserved, then E=embedded audio present,
F=source connected + signal present (other bits not in source excerpt).
- id: lw3_cpu_temperature
type: string
description: "pr /MANAGEMENT/STATUS.CpuTemperature=<value> C;<lo>;<hi>;..."
- id: lw3_5v_main
type: string
description: "pr /MANAGEMENT/STATUS.5VMain=<voltage> V;<lo>;<hi>;..."
- id: lw3_hdbt_stat
type: string
description: |
pr /REMOTE/S<n>.HdbtStat=<dB1>; <dB2>; <dB3>; <dB4> - per-twisted-pair error
rate in dB, lower is better.
- id: lw3_tx_ber
type: string
description: "pr /REMOTE/S<n>.TxBer=<ber> (e.g. 1e-10)"
- id: lw3_destination_autoselect
type: string
description: |
pr /MEDIA/VIDEO/XP.DestinationPortAutoselect=<flags> - two-letter code per
output: E/D then mode letter (L=last-detect, P=priority, ...).
- id: lw3_volume_db
type: number
description: "pw /MEDIA/AUDIO/O<n>.VolumedB=<value> dB"
- id: lw3_product_name
type: string
description: "pr /.ProductName=<name>"
- id: lw3_dhcp_enabled
type: boolean
description: "pw /MANAGEMENT/NETWORK.DhcpEnabled=true|false"
- id: lw3_static_ip
type: string
description: "pw /MANAGEMENT/NETWORK.StaticIpAddress=<ip>"
- id: lw3_uart_baud
type: integer
description: "pw /MEDIA/UART/P<n>.Baudrate=<index>"
Variables
# Settable LW3 properties not already covered by Actions.
# (UNRESOLVED: complete enumeration not present in source excerpt - only the
# properties referenced in documented commands are captured above.)
Events
- id: lw3_change_notification
type: string
description: |
Asynchronous CHG message sent to subscribers when a watched property
changes. Example from source:
CHG /MEDIA/VIDEO/QUALITY.QualityMode=video
Subscription is established with OPEN <path>/* (trailing wildcard
includes all child nodes).
- id: lw3_subscription_ack
type: string
description: "o- <path>/* - subscription opened acknowledgement."
Macros
# UNRESOLVED: source does not document multi-step pre-programmed sequences
# beyond the LW2 batch-switch behavior (commands within 10 ms are batched).
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings, interlock procedures, or power-on sequencing
# requirements are present in the source excerpt.
Notes
- Two TCP protocols coexist on two different ports:
- LW2 on port 10001 — legacy curly-bracket syntax; commands are case-insensitive (converted to upper-case internally), responses may mix case, and responses are terminated with CrLf.
- LW3 on port 6107 — modern REST-like path syntax; case-sensitive throughout;
responses prefixed with
mO(method OK),mE(method error),pR/pr(read-only property response),pw(property written), orpm(property manual).
- LW2 batch switching: multiple LW2 commands arriving at the device within 10 ms of each other are collected and executed together. Responses are still sent back individually.
- Crosspoint presets (
{%<n>}) do not affect locked outputs. - LW3 baud-rate index → rate mapping: source only confirms
2 = 9600; full enumeration of0and7and other indices is not in this excerpt. - LW3 subscription uses
OPEN <path>/*; omitting the trailing*watches only the named node, not its children. - Source device model in examples is
MX-FR17; the Taurus UCX family is a separate but architecturally related product line. Port counts and available nodes should be verified against the actual device manual. - The
e<port>:f<edid>LW2 EDID command examplee5:f10writes factory EDID F10 to Input 5; custom EDIDs must be uploaded separately first.
Provenance
source_domains:
- go.lightware.com
source_urls:
- https://go.lightware.com/open-api-environment
retrieved_at: 2026-04-30T04:31:17.569Z
last_checked_at: 2026-06-02T17:23:12.143Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T17:23:12.143Z
matched_actions: 36
action_count: 36
confidence: medium
summary: "All 36 spec actions matched literally to source; all transport ports verified; source command catalogue fully represented. (7 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "Specific port counts (input/output numbers) vary across the Taurus UCX sub-models; source uses generic placeholders I1..I9 and O1..O8."
- "complete enumeration not present in source excerpt - only the"
- "source does not document multi-step pre-programmed sequences"
- "no safety warnings, interlock procedures, or power-on sequencing"
- "Firmware version compatibility not stated in source."
- "Full set of LW3 node tree not enumerated in source excerpt."
- "Voltage/current/power specifications for the UCX chassis are"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0