Summary

RS-232 + TCP control for Lumens LC300/LC300S media processor. RS-232 at 9600/8/N/1, TCP on port 5080. Binary frame protocol with header 0x55, extended header 0xF0 (no checksum), 1-byte length, 1-byte address, 1-byte action (Get 0x67 / Set 0x73 / ACK 0x06 / NAK 0x15), 2-byte ASCII command, parameters, 0x0D terminator. Covers power, standby, recording, layout/scene/background/overlay, macros, audio vol/mute/type, XLR, stream, camera PTZ + presets + tracking, snapshot, bookmark, USB backup.

Transport

protocols:
  - serial
  - tcp
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
addressing:
  port: 5080
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable       # inferred from PW and SR commands
- queryable       # inferred from Get-state commands (ST, LO, BG, OL, CH, CU, AV, AM, AT, XC, XP, SC)
- levelable       # inferred from AV audio-volume set commands
- routable        # inferred from CH (video source per channel) and MC (macro) commands

Actions

# Frame format: 0x55 0xF0 LEN ADDR ACTION CMD(nx2) PARAMS 0x0D
# ACTION: 0x67=Get, 0x73=Set, 0x06=ACK, 0x15=NAK
# Default ADDR 0x01 used in source examples. Address range 0x01-0xFF (0 reserved).
# All lengths in source examples use address 0x01; LEN = ADDR+ACTION+CMD+PARAMS bytes.

# --- 2.3.1 Power ---
- id: set_power
  label: Set Power
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x50 0x57 {value} 0x0D"
  params:
    - name: value
      type: enum
      values: ["off:0x30", "on:0x31"]
      description: 0x30=Power off; 0x31=Power on (source: "NOT supported. Hardware limitation")

- id: set_standby_wake
  label: Set Standby / Wake
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x53 0x52 {mode} 0x0D"
  params:
    - name: mode
      type: enum
      values: ["standby:0x31", "wake:0x32"]
      description: 0x31=Set power mode to Standby; 0x32=Wake up (active only when power mode was Standby)

# --- 2.3.2 Record ---
- id: set_record_start
  label: Set Record Start
  kind: action
  command: "0x55 0xF0 0x04 0x01 0x73 0x52 0x43 0x0D"
  params: []

- id: set_record_pause
  label: Set Record Pause
  kind: action
  command: "0x55 0xF0 0x04 0x01 0x73 0x50 0x53 0x0D"
  params: []

- id: set_record_resume
  label: Set Record Resume Pause
  kind: action
  command: "0x55 0xF0 0x04 0x01 0x73 0x52 0x50 0x0D"
  params: []

- id: set_record_stop
  label: Set Record Stop
  kind: action
  command: "0x55 0xF0 0x04 0x01 0x73 0x53 0x50 0x0D"
  params: []

- id: get_record_state
  label: Get Record State
  kind: query
  command: "0x55 0xF0 0x04 0x01 0x67 0x53 0x54 0x0D"
  params: []

# --- 2.3.3 Theme / Scene ---
- id: set_layout
  label: Set Layout
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x4C 0x4F {layout_id} 0x0D"
  params:
    - name: layout_id
      type: integer
      description: Layout ID (0x01-0x12)

- id: set_background
  label: Set Background
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x42 0x47 {bg_id} 0x0D"
  params:
    - name: bg_id
      type: integer
      description: Background ID (0x00-0x09; 0x00=Background off)

- id: set_overlay
  label: Set Overlay
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x4F 0x4C {ov_id} 0x0D"
  params:
    - name: ov_id
      type: integer
      description: Overlay ID (0x00-0x1E; 0x00=Overlay off)

- id: set_scene
  label: Set Scene
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x54 0x45 {scene_id} 0x0D"
  params:
    - name: scene_id
      type: integer
      description: Scene ID (0x01-0x1E)

- id: set_video_source
  label: Set Video Source ID
  kind: action
  command: "0x55 0xF0 0x06 0x01 0x73 0x43 0x48 {channel} {source_id} 0x0D"
  params:
    - name: channel
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34"]
      description: Channel number 1-4
    - name: source_id
      type: integer
      description: ID of channel source (0x01-0xFF). If > max stream source, returns ACK but no GUI action.

- id: set_macro
  label: Set Macro
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x4D 0x43 {macro_id} 0x0D"
  params:
    - name: macro_id
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34", "5:0x35", "6:0x36", "7:0x37", "8:0x38", "9:0x39"]
      description: Macro number 1-9 (scene and camera preset control)

- id: set_intermission_live
  label: Set Intermission / Live
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x49 0x4C {mode} 0x0D"
  params:
    - name: mode
      type: enum
      values: ["live:0x30", "intermission:0x31"]
      description: 0x30=Live mode; 0x31=Intermission mode

- id: get_layout
  label: Get Layout
  kind: query
  command: "0x55 0xF0 0x04 0x01 0x67 0x4C 0x4F 0x0D"
  params: []

- id: get_background
  label: Get Background
  kind: query
  command: "0x55 0xF0 0x04 0x01 0x67 0x42 0x47 0x0D"
  params: []

- id: get_overlay
  label: Get Overlay
  kind: query
  command: "0x55 0xF0 0x04 0x01 0x67 0x4F 0x4C 0x0D"
  params: []

- id: get_video_source_total
  label: Get Video Source Total Number
  kind: query
  command: "0x55 0xF0 0x05 0x01 0x67 0x43 0x48 {channel} 0x0D"
  params:
    - name: channel
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34"]
      description: Channel number 1-4

- id: get_current_video_source
  label: Get Current Video Source ID
  kind: query
  command: "0x55 0xF0 0x05 0x01 0x67 0x43 0x55 {channel} 0x0D"
  params:
    - name: channel
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34"]
      description: Channel number 1-4

# --- 2.3.4 Audio Volume ---
- id: set_audio_vol_input
  label: Set Audio Volume Input
  kind: action
  command: "0x55 0xF0 0x07 0x01 0x73 0x41 0x56 0x49 {input} {volume} 0x0D"
  params:
    - name: input
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34", "5:0x35", "6:0x36", "7:0x37", "8:0x38"]
      description: Input number 1-8
    - name: volume
      type: integer
      description: Audio volume 0-125 (0x00-0x7D)

- id: set_audio_vol_output
  label: Set Audio Volume Output
  kind: action
  command: "0x55 0xF0 0x07 0x01 0x73 0x41 0x56 0x4F {output} {volume} 0x0D"
  params:
    - name: output
      type: enum
      values: ["pgm:0x31", "pgm_hdmi:0x32", "multiview_hdmi:0x33", "lineout_xlr:0x34"]
      description: 1=PGM Level; 2=Audio Output PGM HDMI; 3=Audio Output Multiview HDMI; 4=Audio Output Line Out & XLR
    - name: volume
      type: integer
      description: Audio volume 0-125 (0x00-0x7D)

- id: get_audio_vol_input
  label: Get Audio Volume Input
  kind: query
  command: "0x55 0xF0 0x06 0x01 0x67 0x41 0x56 0x49 {input} 0x0D"
  params:
    - name: input
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34", "5:0x35", "6:0x36", "7:0x37", "8:0x38"]
      description: Input number 1-8

- id: get_audio_vol_output
  label: Get Audio Volume Output
  kind: query
  command: "0x55 0xF0 0x06 0x01 0x67 0x41 0x56 0x4F {output} 0x0D"
  params:
    - name: output
      type: enum
      values: ["pgm:0x31", "pgm_hdmi:0x32", "multiview_hdmi:0x33", "lineout_xlr:0x34"]
      description: 1=PGM Level; 2=Audio Output PGM HDMI; 3=Audio Output Multiview HDMI; 4=Audio Output Line Out & XLR

# --- 2.3.5 Audio Mute ---
- id: set_audio_mute_input
  label: Set Audio Mute Input
  kind: action
  command: "0x55 0xF0 0x07 0x01 0x73 0x41 0x4D 0x49 {input} {state} 0x0D"
  params:
    - name: input
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34", "5:0x35", "6:0x36", "7:0x37", "8:0x38"]
      description: Input number 1-8
    - name: state
      type: enum
      values: ["unmute:0x30", "mute:0x31"]
      description: 0x30=Audio unmute; 0x31=Audio mute

- id: set_audio_mute_output
  label: Set Audio Mute Output
  kind: action
  command: "0x55 0xF0 0x07 0x01 0x73 0x41 0x4D 0x4F {output} {state} 0x0D"
  params:
    - name: output
      type: enum
      values: ["pgm:0x31", "pgm_hdmi:0x32", "multiview_hdmi:0x33", "lineout_xlr:0x34"]
      description: 1=PGM Level; 2=Audio Output PGM HDMI; 3=Audio Output Multiview HDMI; 4=Audio Output Line Out & XLR
    - name: state
      type: enum
      values: ["unmute:0x30", "mute:0x31"]
      description: 0x30=Audio unmute; 0x31=Audio mute

- id: get_audio_mute_input
  label: Get Audio Mute Input
  kind: query
  command: "0x55 0xF0 0x06 0x01 0x67 0x41 0x4D 0x49 {input} 0x0D"
  params:
    - name: input
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34", "5:0x35", "6:0x36", "7:0x37", "8:0x38"]
      description: Input number 1-8

- id: get_audio_mute_output
  label: Get Audio Mute Output
  kind: query
  command: "0x55 0xF0 0x06 0x01 0x67 0x41 0x4D 0x4F {output} 0x0D"
  params:
    - name: output
      type: enum
      values: ["pgm:0x31", "pgm_hdmi:0x32", "multiview_hdmi:0x33", "lineout_xlr:0x34"]
      description: 1=PGM Level; 2=Audio Output PGM HDMI; 3=Audio Output Multiview HDMI; 4=Audio Output Line Out & XLR

# --- 2.3.6 Audio Type ---
- id: set_audio_type_input
  label: Set Audio Type Input
  kind: action
  command: "0x55 0xF0 0x07 0x01 0x73 0x41 0x54 0x49 {input} {type} 0x0D"
  params:
    - name: input
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34", "5:0x35", "6:0x36", "7:0x37", "8:0x38"]
      description: Input number 1-8 (7 and 8 not yet supported per source)
    - name: type
      type: enum
      values: ["line_in_1:0x31", "xlr_line:0x37", "xlr_mic:0x38", "follow:0x3A", "line_in_2:0x41"]
      description: Per source: inputs 1-4 accept only 0x3A (Follow); input 5 accepts 0x37/0x38; input 6 accepts 0x31/0x41

- id: get_audio_type_input
  label: Get Audio Type Input
  kind: query
  command: "0x55 0xF0 0x06 0x01 0x67 0x41 0x54 0x49 {input} 0x0D"
  params:
    - name: input
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34", "5:0x35", "6:0x36", "7:0x37", "8:0x38"]
      description: Input number 1-8 (7 and 8 not yet supported per source)

# --- 2.3.7 Audio XLR ---
- id: set_audio_xlr_channel
  label: Set Audio XLR Channel Mode
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x58 0x43 {mode} 0x0D"
  params:
    - name: mode
      type: enum
      values: ["stereo:0x30", "mono:0x31"]
      description: 0x30=Stereo; 0x31=Mono

- id: set_audio_xlr_power
  label: Set Audio XLR Power Mode
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x58 0x50 {power} 0x0D"
  params:
    - name: power
      type: enum
      values: ["off:0x30", "on:0x31"]
      description: 0x30=XLR power off; 0x31=XLR power on

- id: get_audio_xlr_channel
  label: Get Audio XLR Channel Mode
  kind: query
  command: "0x55 0xF0 0x04 0x01 0x67 0x58 0x43 0x0D"
  params: []

- id: get_audio_xlr_power
  label: Get Audio XLR Power Mode
  kind: query
  command: "0x55 0xF0 0x04 0x01 0x67 0x58 0x50 0x0D"
  params: []

# --- 2.3.8 Stream ---
- id: set_stream
  label: Set Stream Start/Stop
  kind: action
  command: "0x55 0xF0 0x06 0x01 0x73 0x53 0x43 {stream_id} {action} 0x0D"
  params:
    - name: stream_id
      type: string
      description: Stream number (ASCII "1", "2", ...). Range per web setting.
    - name: action
      type: enum
      values: ["stop:0x01", "start:0x02"]
      description: 0x01=Stop Stream; 0x02=Start Stream

- id: get_stream
  label: Get Stream State
  kind: query
  command: "0x55 0xF0 0x05 0x01 0x67 0x53 0x43 {stream_id} 0x0D"
  params:
    - name: stream_id
      type: string
      description: Stream number (ASCII "1", "2", ...). Range per web setting.

# --- 2.3.9 Camera ---
- id: set_camera_preset
  label: Set Camera Preset
  kind: action
  command: "0x55 0xF0 0x06 0x01 0x73 0x43 0x50 {channel} {preset_id} 0x0D"
  params:
    - name: channel
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34"]
      description: Channel number 1-4
    - name: preset_id
      type: integer
      description: Preset ID (0x01-0x09)

- id: set_camera_save_preset
  label: Set Camera Save Preset
  kind: action
  command: "0x55 0xF0 0x06 0x01 0x73 0x43 0x53 {channel} {preset_id} 0x0D"
  params:
    - name: channel
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34"]
      description: Channel number 1-4
    - name: preset_id
      type: integer
      description: Preset ID (0x01-0x09)

- id: set_camera_move
  label: Set Camera Move
  kind: action
  command: "0x55 0xF0 0x07 0x01 0x73 0x43 0x4D {dir} {channel} {speed} 0x0D"
  params:
    - name: dir
      type: enum
      values: ["stop:0x53", "up:0x55", "down:0x44", "left:0x4C", "right:0x52"]
      description: Move direction
    - name: channel
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34"]
      description: Channel number 1-4
    - name: speed
      type: integer
      description: Speed percentage 0x01-0x18 (dispensable in stop command)

- id: set_camera_zoom
  label: Set Camera Zoom
  kind: action
  command: "0x55 0xF0 0x07 0x01 0x73 0x43 0x5A {dir} {channel} {speed} 0x0D"
  params:
    - name: dir
      type: enum
      values: ["stop:0x53", "in:0x49", "out:0x4F"]
      description: Zoom direction
    - name: channel
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34"]
      description: Channel number 1-4
    - name: speed
      type: integer
      description: Speed percentage 0x01-0x07 (dispensable in stop command)

- id: set_camera_tracking
  label: Set Camera Tracking
  kind: action
  command: "0x55 0xF0 0x06 0x01 0x73 0x43 0x52 {channel} {state} 0x0D"
  params:
    - name: channel
      type: enum
      values: ["1:0x31", "2:0x32", "3:0x33", "4:0x34"]
      description: Channel number 1-4
    - name: state
      type: enum
      values: ["on:0x30", "off:0x31"]
      description: 0x30=ON; 0x31=OFF

# --- 2.3.10 Others ---
- id: set_snapshot
  label: Set Snapshot
  kind: action
  command: "0x55 0xF0 0x04 0x01 0x73 0x53 0x53 0x0D"
  params: []

- id: set_bookmark
  label: Set Bookmark
  kind: action
  command: "0x55 0xF0 0x04 0x01 0x73 0x42 0x4D 0x0D"
  params: []

- id: set_backup_usb
  label: Set Backup to USB
  kind: action
  command: "0x55 0xF0 0x05 0x01 0x73 0x42 0x55 {action} 0x0D"
  params:
    - name: action
      type: enum
      values: ["start:0x30", "stop:0x31"]
      description: 0x30=Start backup to USB; 0x31=Stop backup to USB

Feedbacks

- id: record_state
  type: enum
  values: [uninitialize, ready, stopped, recording, paused, waiting, stopping, standby]
  description: Response to get_record_state; values 0x30-0x37

- id: layout_id
  type: integer
  description: Response to get_layout (0x01-0x12)

- id: background_id
  type: integer
  description: Response to get_background (0x00-0x09; 0x00=off)

- id: overlay_id
  type: integer
  description: Response to get_overlay (0x00-0x09 per source Get table)

- id: video_source_count
  type: integer
  description: Response to get_video_source_total; number of usable sources per channel (0x01-0xFF)

- id: current_video_source_id
  type: integer
  description: Response to get_current_video_source; current source index per channel (0x01-0xFF)

- id: audio_volume
  type: integer
  description: Response to get_audio_vol_input/output (0x00-0x7D, 0-125)

- id: audio_mute
  type: enum
  values: [unmute, mute]
  description: Response to get_audio_mute_input/output (0x30=unmute, 0x31=mute)

- id: audio_type
  type: enum
  values: [line_in_1, xlr_line, xlr_mic, follow, line_in_2]
  description: Response to get_audio_type_input (0x31/0x37/0x38/0x3A/0x41)

- id: xlr_channel_mode
  type: enum
  values: [stereo, mono]
  description: Response to get_audio_xlr_channel (0x30/0x31)

- id: xlr_power_mode
  type: enum
  values: [off, on]
  description: Response to get_audio_xlr_power (0x30/0x31)

- id: stream_state
  type: enum
  values: [sync, ready, streaming]
  description: Response to get_stream (0x00=sync, 0x01=ready, 0x02=streaming)

- id: ack_nak
  type: enum
  values: [ack, nak]
  description: Protocol-level response to every Set/Get (0x06=ACK, 0x15=NAK)

Variables

[]  # UNRESOLVED: source models all settable parameters as discrete actions (e.g. AV set volume per input), not as named variables

Events

- id: ntfy_media_state
  header: 0x23
  event_code: "0x53 0x54"
  format: "0x23 0x53 0x54 {state} 0x0D"
  description: System state event sent by media station on state change (TCP only; connection stays open)
  params:
    - name: state
      type: enum
      values: ["uninitialize:0x30", "ready:0x31", "stopped:0x32", "recording:0x33", "paused:0x34", "waiting:0x35", "stopping:0x36", "standby:0x37", "reboot:0x38"]
      description: 0x38 (Reboot) only available when state was Standby

Macros

[]  # UNRESOLVED: source exposes 9 macro slots via MC command but does not document macro definition, sequence, or content

Safety

[]

Notes

  • Frame: 0x55 0xF0 LEN ADDR ACTION CMD(nx2) PARAMS 0x0D. Extended header 0xF0 explicitly noted as "no checksum in format".
  • Action byte: 0x67=Get, 0x73=Set, 0x06=ACK, 0x15=NAK. Address 0x01-0xFF; 0 reserved. Source flags address as "reserved for future use. Don't care".
  • NAK returned both for "command failed" and "received invalid protocol data" (with End only).
  • Source title explicitly covers both LC300 and LC300S; protocol identical for both.
  • Standby mode (SR 0x31): source states "only accept command including 'Get state' and 'Set Standby/Wakeup'". All other commands are rejected until wake.
  • Boot-up: source notes "Commands are not accepted during media station boot-up."
  • TCP connection: per source, "If connection is not closed by client, connection will keep and get event notification until new connection established."
  • Stream and Video Source ID parameter ranges are described in source as "based on web setting" (dynamic), not fixed maximums.
  • Audio Type source quirk: inputs 1-4 only accept 0x3A (Follow); input 5 only 0x37/0x38; input 6 only 0x31/0x41; inputs 7-8 unsupported.
  • Set Power (PW 0x31) is documented but flagged "NOT supported. Hardware limitation".
  • Get Overlay source shows range 0x00-0x09 in the response table (likely source-side typo vs. Set Overlay's 0x00-0x1E range); recorded as-stated.

Provenance

source_domains:
  - mylumens.com
source_urls:
  - "https://www.mylumens.com/Download/RS182%20-%20LC300_LC300S%20command%20set%20-%20LCB103.pdf"
retrieved_at: 2026-04-30T04:33:16.764Z
last_checked_at: 2026-06-02T17:23:18.797Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T17:23:18.797Z
matched_actions: 43
action_count: 43
confidence: medium
summary: "All 43 spec actions matched literal source commands with correct shapes; transport fully verified; source command set fully represented. (4 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "firmware compatibility range; source does not state it."
- "source models all settable parameters as discrete actions (e.g. AV set volume per input), not as named variables"
- "source exposes 9 macro slots via MC command but does not document macro definition, sequence, or content"
- "source does not state firmware compatibility range, voltage/current/power specs, fault-recovery sequences, protocol version, default credentials, or NAK retry/recovery procedure."

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