Summary
RS-232C serial control spec for LG 50QNED75URA SmartTV. Covers power, input select, picture/sound parameters, OSD, key lock, tile-mode configuration, and diagnostic queries via an ASCII framed protocol at 9600 baud.
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
encoding: ascii
auth:
type: none # inferred: no auth procedure in source
Traits
# - powerable (ka command present)
# - routable (kb input select present)
# - levelable (kf volume, kg contrast, kh brightness, ki color, kj tint, kk sharpness, kt balance present)
# - queryable (FF data byte = read; status acks for ka/kb/.../kz return present state)
- powerable
- routable
- levelable
- queryable
Actions
# Command frame: [C1][C2][ ][SetID][ ][Data]\r
# [ ] = ASCII space 0x20
# \r = ASCII carriage return 0x0D
# SetID: ASCII 1-99 (1-based); "0" = broadcast (no ack check)
# Data: 1-2 hex byte(s) ASCII, or "FF" to read status.
# Acknowledgement (read or accepted write): [C2][ ][SetID][ ][OK][Data][x]
# Negative acknowledgement: [C2][ ][SetID][ ][NG][Data][x]
# SetID token below = {SetID}; data token below = {Data} (hex).
- id: power_set
label: Power
kind: action
command: "ka {SetID} {Data}\r" # Data: 00=Off, 01=On
params:
- name: SetID
type: integer
description: Set ID 1-99, or 0 for broadcast
- name: Data
type: integer
description: '00H = Power Off, 01H = Power On'
- id: power_query
label: Power Status Query
kind: query
command: "ka {SetID} FF\r" # Response: ka {SetID} OK {Data} - 00=Off, 01=On
params:
- name: SetID
type: integer
description: Set ID 1-99
- id: input_select_set
label: Input Select (Main Picture)
kind: action
command: "kb {SetID} {Data}\r" # Data: 02=AV, 04=Component1, 05=Component2, 06=RGB(DTV), 07=RGB(PC), 08=HDMI(DTV), 09=HDMI(PC)
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Input source code (02H-09H)
- id: input_select_query
label: Input Select Query
kind: query
command: "kb {SetID} FF\r" # Response: kb {SetID} OK {Data}
params:
- name: SetID
type: integer
description: Set ID 1-99
- id: aspect_ratio_set
label: Aspect Ratio
kind: action
command: "kc {SetID} {Data}\r" # Data: 01=4:3, 02=16:9, 03=Horizon, 04=Zoom1, 05=Zoom2, 06=Original, 07=14:9, 08=Full (EU), 09=1:1 (PC)
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Aspect ratio code (01H-09H)
- id: screen_mute_set
label: Screen Mute
kind: action
command: "kd {SetID} {Data}\r" # Data: 00=mute off, 01=mute on
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: '00H = Picture On, 01H = Picture Off'
- id: volume_mute_set
label: Volume Mute
kind: action
command: "ke {SetID} {Data}\r" # Data: 00=mute on, 01=mute off
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: '00H = Mute On (Volume Off), 01H = Mute Off (Volume On)'
- id: volume_set
label: Volume Control
kind: action
command: "kf {SetID} {Data}\r" # Data: 00H-64H (0-100 steps)
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Volume 00H-64H (0-100)
- id: contrast_set
label: Contrast
kind: action
command: "kg {SetID} {Data}\r" # Data: 00H-64H
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Contrast 00H-64H
- id: brightness_set
label: Brightness
kind: action
command: "kh {SetID} {Data}\r" # Data: 00H-64H
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Brightness 00H-64H
- id: color_set
label: Color (Video only)
kind: action
command: "ki {SetID} {Data}\r" # Data: 00H-64H
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Color 00H-64H
- id: tint_set
label: Tint (Video only)
kind: action
command: "kj {SetID} {Data}\r" # Data: 00H-64H (00=-50 Red, 64=+50 Green)
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Tint 00H (red) - 64H (green)
- id: sharpness_set
label: Sharpness (Video only)
kind: action
command: "kk {SetID} {Data}\r" # Data: 00H-64H
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Sharpness 00H-64H
- id: osd_select_set
label: OSD Select
kind: action
command: "kl {SetID} {Data}\r" # Data: 00=OSD Off, 01=OSD On
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: '00H = OSD Off, 01H = OSD On'
- id: remote_lock_set
label: Remote Lock / Key Lock
kind: action
command: "km {SetID} {Data}\r" # Data: 00=Off, 01=On. Locks both remote and local keys.
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: '00H = Off, 01H = On'
- id: balance_set
label: Balance
kind: action
command: "kt {SetID} {Data}\r" # Data: 00H-64H (L50 - R50)
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Balance 00H (L50) - 64H (R50)
- id: color_temperature_set
label: Color Temperature
kind: action
command: "ku {SetID} {Data}\r" # Data: 00=Normal, 01=Cool, 02=Warm, 03=User
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: '00H=Normal, 01H=Cool, 02H=Warm, 03H=User'
- id: abnormal_state_query
label: Abnormal State (Standby power-off reason)
kind: query
command: "kz {SetID} FF\r" # Response: kz {SetID} OK {Data}
params:
- name: SetID
type: integer
description: Set ID 1-99
- id: ism_mode_set
label: ISM Mode (afterimage prevention)
kind: action
command: "jp {SetID} {Data}\r" # Data: 01=Inversion, 02=Orbiter, 04=White Wash, 08=Normal
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: '01H=Inversion, 02H=Orbiter, 04H=White Wash, 08H=Normal'
- id: auto_configure
label: Auto Configure (RGB PC only)
kind: action
command: "ju {SetID} 01\r" # Data fixed to 01H: trigger auto position/shake adjust
params:
- name: SetID
type: integer
description: Set ID 1-99
- id: ir_key_send
label: Send IR Remote Key Code
kind: action
command: "mc {SetID} {Data}\r" # Data: IR key code (see IR codes table in source; e.g. 08=Power, 09=Mute, 0B=Input, 43=Menu)
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: IR key code (Hex). Source refers to "page A18" for full table; only partial keys enumerated inline.
- id: tile_mode_set
label: Tile Mode
kind: action
command: "dd {SetID} {Data}\r" # Data: 00=Off, otherwise 2-digit tile config (col x row) e.g. 12=1x2, 13=1x3, 14=1x4, ..., 44=4x4. Data cannot be 0X or X0 except 00.
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Tile mode 00H-44H (col x row, 0X/X0 invalid except 00)
- id: tile_h_size_set
label: Tile Horizontal Size
kind: action
command: "dg {SetID} {Data}\r" # Data: 00H-64H
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Horizontal tile size 00H-64H
- id: tile_v_size_set
label: Tile Vertical Size
kind: action
command: "dh {SetID} {Data}\r" # Data: 00H-64H
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Vertical tile size 00H-64H
- id: tile_id_set
label: Tile ID Set
kind: action
command: "di {SetID} {Data}\r" # Data: 00H-10H
params:
- name: SetID
type: integer
description: Set ID 1-99
- name: Data
type: integer
description: Tile ID 00H-10H
- id: elapsed_time_query
label: Elapsed Time (used hours)
kind: query
command: "dl {SetID} FF\r" # Response: dl {SetID} OK {Data} (Data = used hours, hex)
params:
- name: SetID
type: integer
description: Set ID 1-99
- id: temperature_value_query
label: Internal Temperature Value
kind: query
command: "dn {SetID} FF\r" # Response: dn {SetID} OK {Data} (Data = 1 byte hex temperature)
params:
- name: SetID
type: integer
description: Set ID 1-99
- id: lamp_fault_check
label: Lamp Fault Check
kind: query
command: "dp {SetID} FF\r" # Response: dp {SetID} OK {Data} - 00=Lamp Fault, 01=Lamp OK
params:
- name: SetID
type: integer
description: Set ID 1-99
Feedbacks
- id: power_state
type: enum
values: [off, on]
source: "ka ack data 00/01"
- id: input_source
type: enum
values: [av, component1, component2, rgb_dtv, rgb_pc, hdmi_dtv, hdmi_pc]
source: "kb ack data 02/04/05/06/07/08/09"
- id: volume_mute_state
type: enum
values: [mute_on, mute_off]
source: "ke ack data 00/01"
- id: screen_mute_state
type: enum
values: [picture_on, picture_off]
source: "kd ack data 00/01"
- id: osd_state
type: enum
values: [osd_off, osd_on]
source: "kl ack data 00/01"
- id: remote_lock_state
type: enum
values: [off, on]
source: "km ack data 00/01"
- id: color_temperature
type: enum
values: [normal, cool, warm, user]
source: "ku ack data 00/01/02/03"
- id: abnormal_state
type: enum
values: [normal, no_signal, off_by_remote, off_by_sleep, off_by_rs232, ac_down, off_by_offtime, off_by_autoff]
source: "kz ack data 00/01/02/03/04/06/08/09"
- id: lamp_fault
type: enum
values: [fault, ok]
source: "dp ack data 00/01"
Variables
# Numeric level parameters share the same 00H-64H step encoding.
- id: volume_level
type: integer
range: "00H-64H"
command: kf
- id: contrast_level
type: integer
range: "00H-64H"
command: kg
- id: brightness_level
type: integer
range: "00H-64H"
command: kh
- id: color_level
type: integer
range: "00H-64H"
command: ki
- id: tint_level
type: integer
range: "00H-64H"
notes: "00H = -50 (red), 64H = +50 (green)"
command: kj
- id: sharpness_level
type: integer
range: "00H-64H"
command: kk
- id: balance_level
type: integer
range: "00H-64H"
notes: "00H = L50, 64H = R50"
command: kt
- id: aspect_ratio
type: integer
range: "01H-09H"
command: kc
Events
# UNRESOLVED: source describes no unsolicited push notifications from the device.
Macros
# UNRESOLVED: source describes no multi-step sequences.
Safety
# UNRESOLVED: source contains no explicit safety warnings, interlocks, or power-on sequencing requirements.
confirmation_required_for: []
interlocks: []
Notes
- Frame terminator is
0x0D(CR); field separator is0x20(space). String terminator in ack is literalx. {SetID}field is ASCII numeric 1-99.0= broadcast — source warns that ack messages from multiple sets will collide and should not be checked.- For write commands, appending
FFas the data byte (ka {SetID} FF\r) reads present state and the device replies with the OK ack carrying the current value. - Source mentions an IR key code "page A18" that is not included in this excerpt; only the partial table inline in this document is represented.
- "ip" in the source filename is misleading — the document body is purely RS-232C serial. No TCP/IP framing, port, or HTTP path is described.
Provenance
source_domains:
- justaddpower.com
source_urls:
- https://www.justaddpower.com/docs/manuals/rs232-lg.pdf
retrieved_at: 2026-06-02T02:28:51.191Z
last_checked_at: 2026-06-02T17:22:59.371Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T17:22:59.371Z
matched_actions: 28
action_count: 28
confidence: medium
summary: "All 28 spec actions match source commands with correct opcodes, data ranges, and parameters; transport layer fully verified against baud/bits/parity/encoding. (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "TCP/IP control is hinted at the request level but not documented in this source. IR codes are included only as reference; they are not a wired control protocol."
- "source describes no unsolicited push notifications from the device."
- "source describes no multi-step sequences."
- "source contains no explicit safety warnings, interlocks, or power-on sequencing requirements."
- "TCP/IP control (suggested by caller) not documented in this source — only RS-232C. IR code table refers to \"page A18\" not included in the source excerpt. Lamp/panel power and fault-recovery behaviors not described."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0