Summary

This spec covers the RS-232C control protocol for the LG 50QNED86BTA Series display. Commands use ASCII framing with a leading opcode pair, Set ID, data, and Carriage Return terminator. Status is read back by sending FF as the data byte. Acknowledgements are returned as [Command2] [SetID] OK[Data]x (success) or [Command2] [SetID] NG[Data]x (error).

Transport

protocols:
  - serial
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
  encoding: ascii
  terminator: "\r"  # ASCII 0x0D Carriage Return
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable   # inferred from k a Power command
- routable    # inferred from k b Input Select command
- queryable   # inferred from FF read-status usage across commands
- levelable   # inferred from k f/k g/k h/k i/k j/k k/k t level controls

Actions

- id: power
  label: Power
  kind: action
  command: "ka {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99 (0 broadcasts to all units; suppresses ACK check)
    - name: data
      type: enum
      values: ["00", "01"]
      value_meanings:
        "00": Power Off
        "01": Power On
  notes: |
    Data range from source: 00H-01H.

- id: power_status
  label: Power Status
  kind: query
  command: "ka {set_id} FF\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
  response: "a {set_id} OK{data}x"
  notes: |
    Response data: 00 = Power Off, 01 = Power On.

- id: input_select
  label: Input Select (Main Picture)
  kind: action
  command: "kb {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: enum
      values: ["02", "04", "05", "06", "07", "08", "09"]
      value_meanings:
        "02": AV
        "04": Component 1
        "05": Component 2
        "06": RGB (DTV)
        "07": RGB (PC)
        "08": HDMI (DTV)
        "09": HDMI (PC)
  notes: |
    Data range from source: 02H-09H.

- id: aspect_ratio
  label: Aspect Ratio (Main Picture)
  kind: action
  command: "kc {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: enum
      values: ["01", "02", "03", "04", "05", "06", "07", "08", "09"]
      value_meanings:
        "01": Normal Screen (4:3)
        "02": Wide Screen (16:9)
        "03": Horizon (Spectacle)
        "04": Zoom1
        "05": Zoom2
        "06": Original
        "07": 14:9
        "08": Full (Europe version only)
        "09": 1:1 (PC)
  notes: |
    Data range from source: 01H-09H.

- id: screen_mute
  label: Screen Mute
  kind: action
  command: "kd {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: enum
      values: ["00", "01"]
      value_meanings:
        "00": Screen mute off (Picture on)
        "01": Screen mute on (Picture off)

- id: volume_mute
  label: Volume Mute
  kind: action
  command: "ke {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: enum
      values: ["00", "01"]
      value_meanings:
        "00": Volume Mute On (Volume Off)
        "01": Volume Mute Off (Volume On)

- id: volume
  label: Volume Control
  kind: action
  command: "kf {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: integer
      description: Hex byte 00H-64H (0-100 step)
  notes: |
    Real data mapping from source: 0=Step 0, A=Step 10, F=Step 15, 10=Step 16, 64=Step 100.

- id: contrast
  label: Contrast
  kind: action
  command: "kg {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: integer
      description: Hex byte 00H-64H (0-100 step)
  notes: |
    Real data mapping from source: 0=Step 0, A=Step 10, F=Step 15, 10=Step 16, 64=Step 100.

- id: brightness
  label: Brightness
  kind: action
  command: "kh {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: integer
      description: Hex byte 00H-64H (0-100 step)
  notes: |
    Real data mapping from source: 0=Step 0, A=Step 10, F=Step 15, 10=Step 16, 64=Step 100.

- id: color
  label: Color
  kind: action
  command: "ki {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: integer
      description: Hex byte 00H-64H (0-100 step); video only
  notes: |
    Real data mapping from source: 0=Step 0, A=Step 10, F=Step 15, 10=Step 16, 64=Step 100.

- id: tint
  label: Tint
  kind: action
  command: "kj {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: integer
      description: Hex byte 00H (Red)-64H (Green); video only
  notes: |
    Real data mapping from source: 0=Step -50, 64=Step 50.

- id: sharpness
  label: Sharpness
  kind: action
  command: "kk {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: integer
      description: Hex byte 00H-64H (0-100 step); video only
  notes: |
    Real data mapping from source: 0=Step 0, A=Step 10, F=Step 15, 10=Step 16, 64=Step 100.

- id: osd_select
  label: OSD Select
  kind: action
  command: "kl {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: enum
      values: ["00", "01"]
      value_meanings:
        "00": OSD Off
        "01": OSD On

- id: remote_lock
  label: Remote Lock / Key Lock
  kind: action
  command: "km {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: enum
      values: ["00", "01"]
      value_meanings:
        "00": Off
        "01": On
  notes: |
    When controlling via RS-232C, this locks the remote control and the local keys.

- id: balance
  label: Balance
  kind: action
  command: "kt {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: integer
      description: Hex byte 00H-64H
  notes: |
    Balance real data mapping from source: L50-R50.

- id: color_temperature
  label: Color Temperature
  kind: action
  command: "ku {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: enum
      values: ["00", "01", "02", "03"]
      value_meanings:
        "00": Normal
        "01": Cool
        "02": Warm
        "03": User

- id: abnormal_state
  label: Abnormal State
  kind: query
  command: "kz {set_id} FF\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
  response: "z {set_id} OK{data}x"
  notes: |
    Read power-off status in Stand-by mode. Response values: 0=Normal (power on, signal exist), 1=No signal (power on), 2=Off by remote, 3=Off by sleep timer, 4=Off by RS-232C, 6=AC down, 8=Off by off-time function, 9=Off by auto-off.

- id: ism_mode
  label: ISM Mode
  kind: action
  command: "jp {set_id} {data}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: enum
      values: ["00", "01", "02", "04", "08"]
      value_meanings:
        "00": (reserved within 00H-08H range)
        "01": Inversion
        "02": Orbiter
        "04": White Wash
        "08": Normal
  notes: |
    Data range from source: 00H-08H.

- id: auto_configure
  label: Auto Configure
  kind: action
  command: "ju {set_id} 01\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
  notes: |
    Auto-adjusts picture position and minimizes image shake. Works only in RGB(PC) mode.

- id: key
  label: IR Remote Key
  kind: action
  command: "mc {set_id} {key_code}\r"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: key_code
      type: string
      description: IR key code; see source page A18 for the full mapping
  notes: |
    Sends an IR remote key code via RS-232C. The complete key code table is referenced in the vendor manual.

- id: tile_mode
  label: Tile Mode
  kind: action
  command: "dd {set_id} {data}x"
  params:
    - name: set_id
      type: integer
      description: Set ID (broadcast example shows 00 in ACK template)
    - name: data
      type: enum
      values: ["00", "12", "13", "14", "21", "22", "23", "24", "31", "32", "33", "34", "41", "42", "43", "44"]
      value_meanings:
        "00": Tile mode off
        "12": 1 x 2 mode (column x row)
        "13": 1 x 3 mode
        "14": 1 x 4 mode
        "21": 2 x 1 mode
        "22": 2 x 2 mode
        "23": 2 x 3 mode
        "24": 2 x 4 mode
        "31": 3 x 1 mode
        "32": 3 x 2 mode
        "33": 3 x 3 mode
        "34": 3 x 4 mode
        "41": 4 x 1 mode
        "42": 4 x 2 mode
        "43": 4 x 3 mode
        "44": 4 x 4 mode
  notes: |
    Source range: 00H-44H. 0X and X0 values (other than 00) are not settable.

- id: tile_h_size
  label: Tile H Size
  kind: action
  command: "dg {set_id} {data}x"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: integer
      description: Hex byte 00H-64H (horizontal tile size)

- id: tile_v_size
  label: Tile V Size
  kind: action
  command: "dh {set_id} {data}x"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: integer
      description: Hex byte 00H-64H (vertical tile size)

- id: tile_id_set
  label: Tile ID Set
  kind: action
  command: "di {set_id} {data}x"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
    - name: data
      type: integer
      description: Hex byte 00H-10H (Tile ID assignment)

- id: elapsed_time
  label: Elapsed Time
  kind: query
  command: "dl {set_id} FFx"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
  response: "l {set_id} OK/NG{data}x"
  notes: |
    Returns used hours in hexadecimal.

- id: temperature_value
  label: Temperature Value
  kind: query
  command: "dn {set_id} FFx"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
  response: "n {set_id} OK/NG{data}x"
  notes: |
    1-byte hexadecimal value of internal temperature.

- id: lamp_fault_check
  label: Lamp Fault Check
  kind: query
  command: "dp {set_id} FFx"
  params:
    - name: set_id
      type: integer
      description: Set ID 0-99
  response: "p {set_id} OK/NG{data}x"
  notes: |
    Response data: 0 = Lamp Fault, 1 = Lamp OK.

Feedbacks

- id: power_state
  type: enum
  source_action: power_status
  values: [power_off, power_on]
  value_codes:
    "00": power_off
    "01": power_on

- id: abnormal_state_code
  type: enum
  source_action: abnormal_state
  values: [normal, no_signal, off_by_remote, off_by_sleep, off_by_rs232, ac_down, off_by_off_time, off_by_auto_off]
  value_codes:
    "0": normal
    "1": no_signal
    "2": off_by_remote
    "3": off_by_sleep
    "4": off_by_rs232
    "6": ac_down
    "8": off_by_off_time
    "9": off_by_auto_off

- id: lamp_status
  type: enum
  source_action: lamp_fault_check
  values: [lamp_fault, lamp_ok]
  value_codes:
    "0": lamp_fault
    "1": lamp_ok

Variables

# UNRESOLVED: source documents only discrete command ranges; no continuous
# settable variable list beyond the per-action data fields above.

Events

# UNRESOLVED: source documents only solicited OK/NG acknowledgements; no
# unsolicited notification stream is described.

Macros

# UNRESOLVED: source does not document multi-step macro sequences.

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings, interlock procedures,
# or power-on sequencing requirements.

Notes

  • Framing: [Command1][Command2][space][SetID][space][Data][Cr], where Cr is ASCII 0x0D. d-family commands use x (0x78) as the terminator instead of Cr.
  • OK acknowledgement: [Command2][space][SetID][space]OK[Data]x. Error acknowledgement: [Command2][space][SetID][space]NG[Data]x.
  • Set ID 0 broadcasts to all connected units; the source explicitly warns that ACK checking is unreliable in this mode because all units respond.
  • Read status of any command by sending FF as the data byte.
  • IR codes section at the end of the source documents the wired-remote protocol but is not part of the RS-232C command set.

Provenance

source_domains:
  - justaddpower.com
source_urls:
  - https://www.justaddpower.com/docs/manuals/rs232-lg.pdf
retrieved_at: 2026-06-02T02:29:31.211Z
last_checked_at: 2026-06-02T17:23:00.941Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T17:23:00.941Z
matched_actions: 27
action_count: 27
confidence: medium
summary: "All 27 spec actions matched source commands verbatim; all transport parameters verified against source; source command set fully represented. (6 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "TCP/IP control was indicated in the request, but the refined source contains only RS-232C. No IP/port/credential information is documented in the source."
- "source documents only discrete command ranges; no continuous"
- "source documents only solicited OK/NG acknowledgements; no"
- "source does not document multi-step macro sequences."
- "source contains no explicit safety warnings, interlock procedures,"
- "TCP/IP control parameters (port, credentials, command mapping) — source contains none. The \"Known protocol\" hint in the request did not match source content."

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