Summary
The ETC Eos Family is a range of lighting consoles and processors (Eos Ti, Gio, Ion, Element, ETCnomad, etc.) supporting multiple show control protocols. This spec covers OSC (preferred, over TCP or UDP), ASCII string interface (RS-232 serial and UDP), MIDI Show Control (MSC), and MIDI Raw. OSC over TCP on port 3032 is the primary external control interface.
Transport
protocols:
- osc
- tcp
- udp
- serial
addressing:
port: 3032
base_url: null # UNRESOLVED: no base URL pattern - OSC uses /eos/ path prefix
serial:
baud_rate: null # UNRESOLVED: baud rate not stated in source
data_bits: null # UNRESOLVED: data bits not stated in source
parity: null # UNRESOLVED: parity not stated in source
stop_bits: null # UNRESOLVED: stop bits not stated in source
flow_control: null # UNRESOLVED: flow control not stated in source
auth:
type: none # inferred: no auth procedure in source
Traits
- queryable # inferred: /eos/get/* query commands, /eos/ping
- levelable # inferred: channel intensity, submaster, fader, grandmaster level control
Actions
# === OSC COMMANDS ===
# All OSC commands begin with /eos/ or /eos/user/<number>/
- id: osc_ping
label: Ping
kind: action
params: []
- id: osc_reset
label: Reset OSC State
kind: action
params: []
- id: osc_channel_select
label: Select Channel
kind: action
params:
- name: channel
type: integer
description: Channel number to select
- id: osc_channel_level
label: Set Channel Level
kind: action
params:
- name: channel
type: integer
description: Channel number
- name: level
type: integer
description: Level 0-100
- id: osc_channel_full
label: Channel Full
kind: action
params:
- name: channel
type: integer
description: Channel number
- name: edge
type: number
description: "Button edge: 1.0=down, 0.0=up (optional)"
- id: osc_channel_out
label: Channel Out
kind: action
params:
- name: channel
type: integer
description: Channel number
- name: edge
type: number
description: "Button edge: 1.0=down, 0.0=up (optional)"
- id: osc_channel_home
label: Channel Home
kind: action
params:
- name: channel
type: integer
description: Channel number
- name: edge
type: number
description: "Button edge: 1.0=down, 0.0=up (optional)"
- id: osc_channel_dmx
label: Set Channel DMX Level
kind: action
params:
- name: channel
type: integer
description: Channel number
- name: level
type: integer
description: DMX level 0-255
- id: osc_channel_param
label: Set Channel Parameter
kind: action
params:
- name: channel
type: integer
description: Channel number
- name: parameter
type: string
description: Parameter name (e.g. pan, tilt)
- name: level
type: number
description: Parameter level
- id: osc_at
label: Set Level (Absolute)
kind: action
params:
- name: level
type: integer
description: Level 0-100
- id: osc_at_full
label: Set Full (Absolute)
kind: action
params:
- name: edge
type: number
description: "Button edge: 1.0=down, 0.0=up (optional)"
- id: osc_at_out
label: Set Out (Absolute)
kind: action
params:
- name: edge
type: number
description: "Button edge: 1.0=down, 0.0=up (optional)"
- id: osc_wheel_level
label: Wheel Level Tick
kind: action
params:
- name: ticks
type: number
description: Wheel ticks (positive or negative)
- id: osc_wheel_param
label: Wheel Parameter Tick
kind: action
params:
- name: parameter
type: string
description: Parameter name
- name: ticks
type: number
description: Wheel ticks (positive or negative)
- id: osc_switch_level
label: Switch Level
kind: action
params:
- name: ticks
type: number
description: Tick rate -1.0 to 1.0
- id: osc_switch_param
label: Switch Parameter
kind: action
params:
- name: parameter
type: string
description: Parameter name
- name: ticks
type: number
description: Tick rate -1.0 to 1.0
- id: osc_direct_select_create
label: Create Direct Select Bank
kind: action
params:
- name: index
type: integer
description: 1-based bank index
- name: target_type
type: string
description: "Target type: chan, group, macro, sub, preset, ip, fp, cp, bp, ms, curve, snap, fx, pixmap, scene"
- name: button_count
type: integer
description: Number of buttons
- id: osc_direct_select_press
label: Press Direct Select Button
kind: action
params:
- name: bank
type: integer
description: Bank index
- name: button
type: integer
description: Button index
- name: edge
type: number
description: "Button edge: 1.0=down, 0.0=up (optional)"
- id: osc_fader_config
label: Create Fader Bank
kind: action
params:
- name: index
type: integer
description: Bank index (0=master fader)
- name: fader_count
type: integer
description: Number of faders per page
- id: osc_fader_set
label: Set Fader Level
kind: action
params:
- name: bank
type: integer
description: Bank index
- name: fader
type: integer
description: Fader index
- name: level
type: number
description: Level 0.0-1.0
- id: osc_fader_load
label: Fader Load
kind: action
params:
- name: bank
type: integer
- name: fader
type: integer
- id: osc_fader_unload
label: Fader Unload
kind: action
params:
- name: bank
type: integer
- name: fader
type: integer
- id: osc_fader_stop
label: Fader Stop
kind: action
params:
- name: bank
type: integer
- name: fader
type: integer
- id: osc_fader_fire
label: Fader Fire
kind: action
params:
- name: bank
type: integer
- name: fader
type: integer
- id: osc_key
label: Press Key
kind: action
params:
- name: name
type: string
description: Key name (see Eos OSC Keys appendix)
- name: edge
type: number
description: "Button edge: 1.0=down, 0.0=up (optional)"
- id: osc_addr
label: Select Address
kind: action
params:
- name: address
type: integer
description: Address to select
- id: osc_addr_level
label: Set Address Level
kind: action
params:
- name: address
type: integer
description: Address number
- name: level
type: integer
description: Level 0-100
- id: osc_group_select
label: Select Group
kind: action
params:
- name: group
type: integer
description: Group number
- id: osc_group_level
label: Set Group Level
kind: action
params:
- name: group
type: integer
description: Group number
- name: level
type: integer
description: Level 0-100
- id: osc_group_param
label: Set Group Parameter
kind: action
params:
- name: group
type: integer
description: Group number
- name: parameter
type: string
description: Parameter name
- name: level
type: number
description: Parameter level
- id: osc_macro_select
label: Select Macro
kind: action
params:
- name: macro
type: integer
description: Macro number
- id: osc_macro_fire
label: Fire Macro
kind: action
params:
- name: macro
type: integer
description: Macro number to run
- id: osc_sub_select
label: Select Submaster
kind: action
params:
- name: sub
type: integer
description: Submaster number
- id: osc_sub_level
label: Set Submaster Level
kind: action
params:
- name: sub
type: integer
description: Submaster number
- name: level
type: number
description: Level 0.0-1.0
- id: osc_sub_fire
label: Bump Submaster
kind: action
params:
- name: sub
type: integer
description: Submaster number
- name: edge
type: number
description: "Button edge: 1.0=down, 0.0=up (optional)"
- id: osc_preset_fire
label: Recall Preset
kind: action
params:
- name: preset
type: integer
description: Preset number
- id: osc_ip_fire
label: Recall Intensity Palette
kind: action
params:
- name: palette
type: integer
description: Intensity palette number
- id: osc_fp_fire
label: Recall Focus Palette
kind: action
params:
- name: palette
type: integer
description: Focus palette number
- id: osc_cp_fire
label: Recall Color Palette
kind: action
params:
- name: palette
type: integer
description: Color palette number
- id: osc_bp_fire
label: Recall Beam Palette
kind: action
params:
- name: palette
type: integer
description: Beam palette number
- id: osc_cue_select
label: Select Cue
kind: action
params:
- name: list
type: integer
description: Cue list number
- name: cue
type: number
description: Cue number
- id: osc_cue_fire
label: Fire Cue
kind: action
params:
- name: cue
type: number
description: Cue number or cue list/cue/part
- id: osc_curve_select
label: Select Curve
kind: action
params:
- name: curve
type: integer
description: Curve number
- id: osc_fx_select
label: Select Effect
kind: action
params:
- name: fx
type: integer
description: Effect number
- id: osc_snap_select
label: Recall Snapshot
kind: action
params:
- name: snap
type: integer
description: Snapshot number
- id: osc_user_set
label: Set OSC User ID
kind: action
params:
- name: user
type: integer
description: "User ID (0=background, -1=current console user)"
- id: osc_cmd
label: Send Command Line
kind: action
params:
- name: text
type: string
description: Command line text (use # or Enter to terminate)
- id: osc_newcmd
label: Send Command Line (Clear First)
kind: action
params:
- name: text
type: string
description: Command line text
- id: osc_event
label: Send Event Command
kind: action
params:
- name: text
type: string
description: Event text (treated as console event)
- id: osc_get_version
label: Request Eos Version
kind: action
params: []
- id: osc_get_count
label: Request Data Count
kind: action
params:
- name: type
type: string
description: "Data type: patch, cuelist, cue, group, macro, sub, preset, ip, fp, cp, bp, curve, fx, snap, pixmap, ms"
- id: osc_get_index
label: Request Data By Index
kind: action
params:
- name: type
type: string
description: Data type
- name: index
type: integer
description: 0-based index
- id: osc_subscribe
label: Subscribe to Show Data Changes
kind: action
params:
- name: enable
type: integer
description: "0=unsubscribe, 1=subscribe"
- id: osc_set_label
label: Set Show Data Label
kind: action
params:
- name: type
type: string
description: "Data type: patch, cuelist, cue, group, macro, sub, preset, ip, fp, cp, bp, curve, fx, snap, pixmap, ms"
- name: number
type: string
description: Target number
- name: text
type: string
description: Label text
- id: osc_magic_sheet
label: Open Magic Sheet
kind: action
params:
- name: number
type: integer
description: Magic sheet number
# === SERIAL STRING COMMANDS (RS-232, UDP, ACN) ===
# Terminated by carriage return (0x0D), "\r", or "#"
- id: serial_cmd_line
label: Command Line Entry
kind: action
params:
- name: command
type: string
description: "Text after $ prefix, sent to user 0 command line. Prefix with <UX> for specific user."
- id: serial_go
label: Go Cue List
kind: action
params:
- name: list
type: integer
description: Cue list number
- id: serial_cue
label: Run Cue
kind: action
params:
- name: list
type: integer
description: Cue list number
- name: cue
type: integer
description: Cue number
- id: serial_gocue
label: Go Cue (Clear)
kind: action
params:
- name: list
type: integer
description: Cue list number (0 to use cue 0)
- name: cue
type: integer
description: Cue number
- id: serial_release
label: Release Cue List
kind: action
params:
- name: list
type: integer
description: Cue list number
- id: serial_off
label: Off Cue List
kind: action
params:
- name: list
type: integer
description: Cue list number
- id: serial_resume
label: Resume Cue List
kind: action
params:
- name: list
type: integer
description: Cue list number
- id: serial_assert
label: Assert Cue List
kind: action
params:
- name: list
type: integer
description: Cue list number
- id: serial_stop
label: Stop Playback
kind: action
params:
- name: list
type: integer
description: Playback number
- id: serial_stop_cue
label: Stop Cue
kind: action
params:
- name: list
type: integer
description: Cue list number
- name: cue
type: integer
description: Cue number
- id: serial_stop_all
label: Stop All
kind: action
params: []
- id: serial_resume_cue
label: Resume Cue
kind: action
params:
- name: list
type: integer
description: Cue list number
- name: cue
type: integer
description: Cue number
- id: serial_resume_all
label: Resume All
kind: action
params: []
- id: serial_sub_assert
label: Assert Submaster
kind: action
params:
- name: sub
type: integer
description: Submaster number
- id: serial_sub_unload
label: Unload Submaster
kind: action
params:
- name: sub
type: integer
description: Submaster number
- id: serial_sub_down
label: Submaster Bump Down
kind: action
params:
- name: sub
type: integer
description: Submaster number
- id: serial_sub_up
label: Submaster Bump Up (Release)
kind: action
params:
- name: sub
type: integer
description: Submaster number
- id: serial_sub_move
label: Move Submaster/Fader Level
kind: action
params:
- name: target
type: integer
description: "Submaster number or fader+1000 for faders"
- name: level
type: integer
description: Level percentage
- id: serial_fader_move_cuelist
label: Move Cue List Fader
kind: action
params:
- name: list
type: integer
description: Cue list number
- name: level
type: integer
description: Level percentage
- id: serial_grandmaster
label: Set Grandmaster
kind: action
params:
- name: gm
type: integer
description: Grandmaster number (currently only 1)
- name: level
type: integer
description: Level 0-100
- id: serial_macro
label: Fire Macro
kind: action
params:
- name: macro
type: integer
description: Macro number
- id: serial_sc_event
label: Show Control Event String
kind: action
params:
- name: text
type: string
description: "Custom string prefixed with SC (case-sensitive) for RS232/UDP/ACN, or /eos/sc/ for OSC"
# === MIDI SHOW CONTROL ===
- id: msc_go
label: MSC Go
kind: action
params:
- name: device_id
type: integer
description: MSC device ID (0-126)
- name: cue
type: string
description: "Cue number (optional, ASCII text encoded in hex)"
- name: list
type: string
description: "Cue list number (optional, ASCII text encoded in hex)"
- id: msc_stop
label: MSC Stop
kind: action
params:
- name: device_id
type: integer
description: MSC device ID (0-126)
- name: cue
type: string
description: "Cue number (optional)"
- name: list
type: string
description: "Cue list number (optional)"
- id: msc_resume
label: MSC Resume
kind: action
params:
- name: device_id
type: integer
description: MSC device ID (0-126)
- name: cue
type: string
description: "Cue number (optional)"
- name: list
type: string
description: "Cue list number (optional)"
- id: msc_set
label: MSC Set Fader
kind: action
params:
- name: device_id
type: integer
description: MSC device ID (0-126)
- name: control
type: integer
description: "Control value: 1-127=submaster, 128=primary playback in, 129=primary playback out, 510=grandmaster"
- name: level
type: integer
description: Level 0-100
- id: msc_fire
label: MSC Fire Macro
kind: action
params:
- name: device_id
type: integer
description: MSC device ID (0-126)
- name: macro
type: integer
description: Macro number 1-127
Feedbacks
- id: osc_out_ping
type: string
description: "/eos/out/ping - echoes arguments sent with /eos/ping"
- id: osc_out_active_chan
type: string
description: "/eos/out/active/chan - active channels and current value from first channel"
- id: osc_out_active_wheel
type: string
description: "/eos/out/active/wheel/<number> - parameter name and current value"
- id: osc_out_active_cue
type: float
description: "/eos/out/active/cue - percent complete 0.0-1.0, updated once per second"
- id: osc_out_active_cue_text
type: string
description: "/eos/out/active/cue/text - descriptive text about active cue"
- id: osc_out_pending_cue_text
type: string
description: "/eos/out/pending/cue/text - descriptive text about pending cue"
- id: osc_out_ds
type: string
description: "/eos/out/ds/<index> - direct select bank descriptive text"
- id: osc_out_ds_button
type: string
description: "/eos/out/ds/<index>/<button> - direct select button label"
- id: osc_out_fader_bank
type: string
description: "/eos/out/fader/<index> - fader bank descriptive text"
- id: osc_out_fader_name
type: string
description: "/eos/out/fader/<index>/<fader>/name - fader label"
- id: osc_out_fader_level
type: float
description: "/eos/fader/<index>/<fader> - fader percent 0.0-1.0"
- id: osc_out_user
type: integer
description: "/eos/out/user - current OSC user ID"
- id: osc_out_wheel_mode
type: float
description: "/eos/out/wheel - current wheel mode (0.0=Coarse, 1.0=Fine)"
- id: osc_out_cmd
type: string
description: "/eos/out/cmd - current command line text"
- id: osc_out_version
type: string
description: "/eos/out/get/version - Eos software version string"
- id: osc_out_event_cue_fire
type: string
description: "/eos/out/event/cue/<list>/<cue>/fire - cue fired event"
- id: osc_out_event_cue_stop
type: string
description: "/eos/out/event/cue/<list>/<cue>/stop - cue stopped event"
- id: osc_out_event_sub
type: integer
description: "/eos/out/event/sub/<sub> - sub bump event (0=Bump Off, 1=Bump On)"
- id: osc_out_event_macro
type: string
description: "/eos/out/event/macro/<macro> - macro fired event"
- id: osc_out_event_relay
type: integer
description: "/eos/out/event/relay/<relay>/<group> - relay event (0=On, 1=Off)"
- id: osc_out_show_name
type: string
description: "/eos/out/show/name - show title"
- id: osc_out_event_state
type: integer
description: "/eos/out/event/state - console state (0=Blind, 1=Live)"
Variables
- id: osc_tx_port
type: integer
description: OSC UDP transmit port (configurable in Setup)
- id: osc_rx_port
type: integer
description: OSC UDP receive port (configurable in Setup)
- id: osc_tx_ip
type: string
description: OSC transmit destination IP address
- id: string_rx_port
type: integer
description: UDP receive port for string commands
- id: string_tx_port
type: integer
description: UDP transmit port for string commands
- id: string_tx_ip
type: string
description: String transmit destination IP address or ACN device name
- id: msc_receive_channel
type: integer
description: MSC receive device ID (0-126)
- id: msc_transmit_channel
type: integer
description: MSC transmit device ID (0-127)
Events
- id: event_cue_fired
description: "Console sends serial string or OSC when a cue is fired. OSC: /eos/out/event/cue/<list>/<cue>/fire. Serial: 'Cue <cue> <list>'"
- id: event_cue_stopped
description: "Console sends serial string or OSC when a cue is stopped. OSC: /eos/out/event/cue/<list>/<cue>/stop. Serial: 'Stop Cue <cue> <list>'"
- id: event_cue_resumed
description: "Console sends serial string when a cue is resumed. Serial: 'Resume Cue <cue> <list>'"
- id: event_sub_down
description: "Console sends serial string when sub bump pressed. Serial: 'SubDown <sub>'. OSC: /eos/out/event/sub/<sub> = 1"
- id: event_sub_up
description: "Console sends serial string when sub bump released. Serial: 'SubUp <sub>'. OSC: /eos/out/event/sub/<sub> = 0"
- id: event_macro_fired
description: "Console sends serial string or OSC when macro fires. Serial: 'Macro <number>'. OSC: /eos/out/event/macro/<macro>"
- id: event_show_saved
description: "/eos/out/event/show/saved - show file saved"
- id: event_show_loaded
description: "/eos/out/event/show/loaded - show file loaded"
- id: event_show_cleared
description: "/eos/out/event/show/cleared - show cleared"
- id: event_state_change
description: "/eos/out/event/state - console state changed (0=Blind, 1=Live)"
- id: event_data_changed
description: "/eos/out/notify/<type>/list/<index>/<count> - show data changed notification (requires subscription)"
Macros
# UNRESOLVED: no specific multi-step sequences described in source beyond general macro capability
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no explicit safety warnings or interlock procedures found in source
Notes
- All OSC commands must begin with
/eos/or/eos/user/<number>/. Commands prefixed with/eos/user/<number>/target a specific user command line. - OSC over TCP (port 3032) is the preferred transport. TCP mode supports OSC 1.0 (packet-length headers) and OSC 1.1 (SLIP), configurable in ECU.
- UDP OSC is supported but not preferred; messages may be dropped or delivered out of order. Recommended UDP port range: 4703-4727 or 8000/8001.
- Serial string commands are terminated by carriage return (0x0D),
\r, or#. Show control event strings requireSCprefix (case-sensitive) for RS-232/UDP/ACN, or/eos/sc/prefix for OSC. - MSC command format is always
F0 7F <device_ID> 02 01 <command> <command_data> F7where01is the Lighting—General command format. Device ID 127 is All Call. - MIDI Raw (Note On/Off, Program Change, Control Change) requires local I/O ports; Net3 Show Control Gateways only support SysEx messages including MSC.
- Eos sends implicit OSC output (feedback) for active channels, cues, faders, and show control events when UDP transmit is enabled.
- The OSC key appendix maps hundreds of key names to internal Eos commands via
/eos/key/<name>. - RS-232 serial connectivity is via Net3 I/O Gateway, not direct console ports on most models (Eos Ti, Gio, Ion, Element have local I/O).
Provenance
source_domains:
- support.etcconnect.com
- christielites.com
source_urls:
- https://support.etcconnect.com/ETC/Consoles/Eos_Family/Software_and_Programming/Eos_Family_Serial_Command_Syntax
- https://www.christielites.com/file_uploads/EosFamily_ShowControl_UserGuide_RevC.pdf
retrieved_at: 2026-04-30T13:59:45.626Z
last_checked_at: 2026-06-03T06:52:23.395Z
Verification Summary
verdict: verified
checked_at: 2026-06-03T06:52:23.395Z
matched_actions: 82
action_count: 82
confidence: medium
summary: "Complete match of all spec actions to source (16 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "RS-232 baud rate and serial configuration not stated in source"
- "firmware version compatibility not stated in source"
- "exact UDP default ports not stated — only recommended ranges"
- "no base URL pattern - OSC uses /eos/ path prefix"
- "baud rate not stated in source"
- "data bits not stated in source"
- "parity not stated in source"
- "stop bits not stated in source"
- "flow control not stated in source"
- "no specific multi-step sequences described in source beyond general macro capability"
- "no explicit safety warnings or interlock procedures found in source"
- "RS-232 serial configuration (baud rate, data bits, parity, stop bits) not stated in source"
- "firmware version compatibility range not stated"
- "exact default UDP port numbers not stated — only recommended ranges (4703-4727 or 8000/8001)"
- "OSC TCP connection limit / max concurrent connections not stated"
- "command rate limits or throttling not stated"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0