Summary
LG OLED Series commercial displays supporting RS-232C serial and TCP/IP control. The protocol uses ASCII command strings with a two-character command code, Set ID, and hex data payload terminated by carriage return. Covers power, input routing, picture adjustments, audio, tiling, and diagnostic queries.
Transport
protocols:
- tcp
- serial
addressing:
port: null # UNRESOLVED: TCP port number not stated in source
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
traits:
- powerable # power on/off commands present
- routable # input select commands present
- queryable # FF readback queries present
- levelable # volume, contrast, brightness, color, tint, sharpness, balance controls
Actions
actions:
- id: power_on
label: Power On
kind: action
command: "ka {set_id} 01"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
response: "a {set_id} OK01x"
- id: power_off
label: Power Off
kind: action
command: "ka {set_id} 00"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
response: "a {set_id} OK00x"
- id: select_input
label: Select Input
kind: action
command: "kb {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: input
type: enum
values:
- label: AV
value: "02"
- label: Component 1
value: "04"
- label: Component 2
value: "05"
- label: RGB DTV
value: "06"
- label: RGB PC
value: "07"
- label: HDMI DTV
value: "08"
- label: HDMI PC
value: "09"
description: "Input source selection (hex code)"
response: "b {set_id} OK{data}x"
- id: set_aspect_ratio
label: Set Aspect Ratio
kind: action
command: "kc {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: ratio
type: enum
values:
- label: Normal 4:3
value: "01"
- label: Wide 16:9
value: "02"
- label: Horizon
value: "03"
- label: Zoom1
value: "04"
- label: Zoom2
value: "05"
- label: Original
value: "06"
- label: 14:9
value: "07"
- label: Full
value: "08"
- label: 1:1 PC
value: "09"
response: "c {set_id} OK{data}x"
- id: screen_mute_on
label: Screen Mute On
kind: action
command: "kd {set_id} 01"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
response: "d {set_id} OK01x"
- id: screen_mute_off
label: Screen Mute Off
kind: action
command: "kd {set_id} 00"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
response: "d {set_id} OK00x"
- id: volume_mute_on
label: Volume Mute On
kind: action
command: "ke {set_id} 00"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
response: "e {set_id} OK00x"
- id: volume_mute_off
label: Volume Mute Off
kind: action
command: "ke {set_id} 01"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
response: "e {set_id} OK01x"
- id: set_volume
label: Set Volume
kind: action
command: "kf {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: level
type: integer
min: 0
max: 100
description: "Volume level (0x00-0x64 hex)"
response: "f {set_id} OK{data}x"
- id: set_contrast
label: Set Contrast
kind: action
command: "kg {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: level
type: integer
min: 0
max: 100
description: "Contrast level (0x00-0x64 hex)"
response: "g {set_id} OK{data}x"
- id: set_brightness
label: Set Brightness
kind: action
command: "kh {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: level
type: integer
min: 0
max: 100
description: "Brightness level (0x00-0x64 hex)"
response: "h {set_id} OK{data}x"
- id: set_color
label: Set Color
kind: action
command: "ki {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: level
type: integer
min: 0
max: 100
description: "Color level (0x00-0x64 hex, video only)"
response: "i {set_id} OK{data}x"
- id: set_tint
label: Set Tint
kind: action
command: "kj {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: tint
type: integer
min: -50
max: 50
description: "Tint (0x00=Red -50 to 0x64=Green +50, video only)"
response: "j {set_id} OK{data}x"
- id: set_sharpness
label: Set Sharpness
kind: action
command: "kk {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: level
type: integer
min: 0
max: 100
description: "Sharpness level (0x00-0x64 hex, video only)"
response: "k {set_id} OK{data}x"
- id: osd_on
label: OSD On
kind: action
command: "kl {set_id} 01"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
response: "l {set_id} OK01x"
- id: osd_off
label: OSD Off
kind: action
command: "kl {set_id} 00"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
response: "l {set_id} OK00x"
- id: remote_lock_on
label: Remote Lock On
kind: action
command: "km {set_id} 01"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
description: "Locks remote control and local keys when controlling via RS-232C"
response: "m {set_id} OK01x"
- id: remote_lock_off
label: Remote Lock Off
kind: action
command: "km {set_id} 00"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
response: "m {set_id} OK00x"
- id: set_balance
label: Set Balance
kind: action
command: "kt {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: balance
type: integer
min: -50
max: 50
description: "Balance (0x00=L50 to 0x64=R50)"
response: "t {set_id} OK{data}x"
- id: set_color_temperature
label: Set Color Temperature
kind: action
command: "ku {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: mode
type: enum
values:
- label: Normal
value: "00"
- label: Cool
value: "01"
- label: Warm
value: "02"
- label: User
value: "03"
response: "u {set_id} OK{data}x"
- id: set_ism_mode
label: Set ISM Mode
kind: action
command: "jp {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: mode
type: enum
values:
- label: Inversion
value: "01"
- label: Orbiter
value: "02"
- label: White Wash
value: "04"
- label: Normal
value: "08"
description: "Afterimage prevention function"
response: "p {set_id} OK{data}x"
- id: auto_configure
label: Auto Configure
kind: action
command: "ju {set_id} 01"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
description: "Auto-adjust picture position (RGB PC mode only)"
response: "u {set_id} OK01x"
- id: send_key
label: Send IR Key Code
kind: action
command: "mc {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: key_code
type: string
description: "IR remote key code (hex)"
response: "c {set_id} OK{data}x"
- id: set_tile_mode
label: Set Tile Mode
kind: action
command: "dd {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: mode
type: string
description: "Tile mode (00=off, 12=1x2, 13=1x3, 14=1x4 ... 44=4x4)"
response: "d 00 OK{data}x"
- id: set_tile_h_size
label: Set Tile H Size
kind: action
command: "dg {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: size
type: integer
min: 0
max: 100
description: "Horizontal size (0x00-0x64)"
response: "g {set_id} OK{data}x"
- id: set_tile_v_size
label: Set Tile V Size
kind: action
command: "dh {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: size
type: integer
min: 0
max: 100
description: "Vertical size (0x00-0x64)"
response: "h {set_id} OK{data}x"
- id: set_tile_id
label: Set Tile ID
kind: action
command: "di {set_id} {data}"
params:
- name: set_id
type: integer
description: "Set ID (1-99, 0 for all)"
- name: tile_id
type: integer
min: 0
max: 16
description: "Tile ID (0x00-0x10)"
response: "i {set_id} OK{data}x"
Feedbacks
feedbacks:
- id: power_state
label: Power State
command: "ka {set_id} FF"
type: enum
values: [off, on]
mapping:
"00": off
"01": on
- id: input_source
label: Input Source
command: "kb {set_id} FF"
type: enum
values: [AV, Component_1, Component_2, RGB_DTV, RGB_PC, HDMI_DTV, HDMI_PC]
mapping:
"02": AV
"04": Component_1
"05": Component_2
"06": RGB_DTV
"07": RGB_PC
"08": HDMI_DTV
"09": HDMI_PC
- id: aspect_ratio
label: Aspect Ratio
command: "kc {set_id} FF"
type: enum
values: [Normal_4_3, Wide_16_9, Horizon, Zoom1, Zoom2, Original, _14_9, Full, _1_1_PC]
mapping:
"01": Normal_4_3
"02": Wide_16_9
"03": Horizon
"04": Zoom1
"05": Zoom2
"06": Original
"07": _14_9
"08": Full
"09": _1_1_PC
- id: screen_mute_state
label: Screen Mute State
command: "kd {set_id} FF"
type: enum
values: [off, on]
mapping:
"00": off
"01": on
- id: volume_mute_state
label: Volume Mute State
command: "ke {set_id} FF"
type: enum
values: [muted, unmuted]
mapping:
"00": muted
"01": unmuted
- id: volume_level
label: Volume Level
command: "kf {set_id} FF"
type: integer
min: 0
max: 100
- id: contrast_level
label: Contrast Level
command: "kg {set_id} FF"
type: integer
min: 0
max: 100
- id: brightness_level
label: Brightness Level
command: "kh {set_id} FF"
type: integer
min: 0
max: 100
- id: color_level
label: Color Level
command: "ki {set_id} FF"
type: integer
min: 0
max: 100
- id: tint_level
label: Tint Level
command: "kj {set_id} FF"
type: integer
min: -50
max: 50
- id: sharpness_level
label: Sharpness Level
command: "kk {set_id} FF"
type: integer
min: 0
max: 100
- id: osd_state
label: OSD State
command: "kl {set_id} FF"
type: enum
values: [off, on]
mapping:
"00": off
"01": on
- id: remote_lock_state
label: Remote Lock State
command: "km {set_id} FF"
type: enum
values: [off, on]
mapping:
"00": off
"01": on
- id: balance_level
label: Balance Level
command: "kt {set_id} FF"
type: integer
min: -50
max: 50
- id: color_temperature
label: Color Temperature
command: "ku {set_id} FF"
type: enum
values: [Normal, Cool, Warm, User]
mapping:
"00": Normal
"01": Cool
"02": Warm
"03": User
- id: abnormal_state
label: Abnormal State
command: "kz {set_id} FF"
type: enum
values:
- normal
- no_signal
- off_by_remote
- off_by_sleep
- off_by_rs232
- ac_down
- off_by_off_timer
- off_by_auto_off
mapping:
"00": normal
"01": no_signal
"02": off_by_remote
"03": off_by_sleep
"04": off_by_rs232
"06": ac_down
"08": off_by_off_timer
"09": off_by_auto_off
- id: ism_mode
label: ISM Mode
command: "jp {set_id} FF"
type: enum
values: [Inversion, Orbiter, White_Wash, Normal]
mapping:
"01": Inversion
"02": Orbiter
"04": White_Wash
"08": Normal
- id: elapsed_time
label: Elapsed Time
command: "dl {set_id} FF"
type: integer
unit: hours
- id: temperature_value
label: Temperature Value
command: "dn {set_id} FF"
type: integer
description: "Internal temperature (1 byte hex)"
- id: lamp_fault
label: Lamp Fault Status
command: "dp {set_id} FF"
type: enum
values: [fault, ok]
mapping:
"00": fault
"01": ok
Variables
# UNRESOLVED: no settable continuous variables beyond those covered in Actions/Feedbacks
Events
# UNRESOLVED: no unsolicited event/notification mechanism described in source
Macros
# UNRESOLVED: no multi-step sequences described in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source
Notes
- Command format is
[Command1][Command2][ ][Set ID][ ][Data][Cr]where Cr = 0x0D and space = 0x20. - Set ID range is 1-99; setting 0 addresses all units simultaneously. When using Set ID 0 with multiple displays, ACK messages from all units cannot be reliably distinguished.
- OK acknowledgement format:
[Command2][ ][Set ID][ ][OK][Data][x] - Error acknowledgement format:
[Command2][ ][Set ID][ ][NG][Data][x] - Data values are hex-encoded ASCII. Volume/contrast/brightness/color/sharpness use 0x00-0x64 (decimal 0-100). Tint maps 0x00=-50 (Red) to 0x64=+50 (Green). Balance maps 0x00=L50 to 0x64=R50.
- Send data
FFto any command to query current status (read mode). - IR remote key codes are listed separately in the source (key command
mc).
Provenance
source_domains:
- webostv.developer.lge.com
- justaddpower.com
source_urls:
- https://webostv.developer.lge.com/develop/references/luna-service-introduction
- https://webostv.developer.lge.com/develop/references/audio
- https://www.justaddpower.com/docs/manuals/rs232-lg.pdf
retrieved_at: 2026-06-02T22:09:19.143Z
last_checked_at: 2026-06-02T22:09:19.143Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:09:19.143Z
matched_actions: 27
action_count: 27
confidence: medium
summary: "All 27 spec actions traced to source (dip-safe re-verify). (11 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "TCP/IP port number not stated in source"
- "specific model numbers not stated in source"
- "TCP port number not stated in source"
- "no settable continuous variables beyond those covered in Actions/Feedbacks"
- "no unsolicited event/notification mechanism described in source"
- "no multi-step sequences described in source"
- "no safety warnings or interlock procedures in source"
- "TCP port number for IP control not documented"
- "specific OLED model numbers not stated"
- "firmware version compatibility not stated"
- "maximum command rate / timing constraints not stated"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0