Summary
LG 49UJ6050 SmartTV serial (RS-232C) control protocol. Covers power, input select, picture/sound adjustments, OSD/lock, tiling, and diagnostic reads over UART at 9600 baud using ASCII command strings terminated by carriage return.
Transport
protocols:
- serial
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
- powerable # inferred from power command examples
- routable # inferred from input select command examples
- queryable # inferred from FF status-read pattern on every command
- levelable # inferred from volume/contrast/brightness/color/tint/sharpness/balance ranges
Actions
# Universal command frame: <cmd1><cmd2><SP><set_id><SP><data><CR>
# <SP> = ASCII 0x20, <CR> = ASCII 0x0D
# set_id: 1-99; 0 broadcasts to all sets (no ack check with broadcast).
# Pass data=FF to read current status; otherwise data is the value to set.
- id: power
label: Power
kind: action
command: "ka {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: enum
values: ["00", "01", "FF"]
description: "00=Power Off, 01=Power On, FF=Read status"
- 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 (1-99; 0 broadcasts)
- name: data
type: enum
values: ["02", "04", "05", "06", "07", "08", "09", "FF"]
description: "02=AV, 04=Component1, 05=Component2, 06=RGB(DTV), 07=RGB(PC), 08=HDMI(DTV), 09=HDMI(PC), FF=Read status"
- 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 (1-99; 0 broadcasts)
- name: data
type: enum
values: ["01", "02", "03", "04", "05", "06", "07", "08", "09", "FF"]
description: "01=4:3, 02=16:9, 03=Horizon(Spectacle), 04=Zoom1, 05=Zoom2, 06=Original, 07=14:9, 08=Full (Europe only), 09=1:1(PC), FF=Read status"
- id: screen_mute
label: Screen Mute
kind: action
command: "kd {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: enum
values: ["00", "01", "FF"]
description: "00=Mute off (picture on), 01=Mute on (picture off), FF=Read status"
- id: volume_mute
label: Volume Mute
kind: action
command: "ke {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: enum
values: ["00", "01", "FF"]
description: "00=Mute on (volume off), 01=Mute off (volume on), FF=Read status"
- id: volume_control
label: Volume Control
kind: action
command: "kf {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00H-64H (0=Step 0, 64=Step 100); FF=Read status"
- id: contrast
label: Contrast
kind: action
command: "kg {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00H-64H (0=Step 0, 64=Step 100); FF=Read status"
- id: brightness
label: Brightness
kind: action
command: "kh {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00H-64H (0=Step 0, 64=Step 100); FF=Read status"
- id: color
label: Color (Video only)
kind: action
command: "ki {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00H-64H (0=Step 0, 64=Step 100); FF=Read status"
- id: tint
label: Tint (Video only)
kind: action
command: "kj {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00H-64H (00H=Red -50, 64H=Green +50); FF=Read status"
- id: sharpness
label: Sharpness (Video only)
kind: action
command: "kk {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00H-64H (0=Step 0, 64=Step 100); FF=Read status"
- id: osd_select
label: OSD Select
kind: action
command: "kl {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: enum
values: ["00", "01", "FF"]
description: "00=OSD Off, 01=OSD On, FF=Read status"
- 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 (1-99; 0 broadcasts)
- name: data
type: enum
values: ["00", "01", "FF"]
description: "00=Off, 01=On, FF=Read status"
- id: balance
label: Balance
kind: action
command: "kt {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00H-64H (00H=L50, 64H=R50); FF=Read status"
- id: color_temperature
label: Color Temperature
kind: action
command: "ku {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: enum
values: ["00", "01", "02", "03", "FF"]
description: "00=Normal, 01=Cool, 02=Warm, 03=User, FF=Read status"
- id: abnormal_state
label: Abnormal State (Read power-off reason in Standby)
kind: query
command: "kz {set_id} FF\r"
params:
- name: set_id
type: integer
description: Set ID (1-99)
response_meanings:
"00": "Normal (Power on and signal exist)"
"01": "No signal (Power on)"
"02": "Turned off by remote control"
"03": "Turned off by sleep timer"
"04": "Turned off by RS-232C function"
"06": "AC down"
"08": "Turned off by off-timer"
"09": "Turned off by auto-off"
- id: ism_mode
label: ISM Mode (afterimage prevention)
kind: action
command: "jp {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: enum
values: ["01", "02", "04", "08"]
description: "01=Inversion, 02=Orbiter, 04=White Wash, 08=Normal"
- id: auto_configure
label: Auto Configure (RGB/PC only)
kind: action
command: "ju {set_id} 01\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
notes: Adjusts picture position and minimizes image shaking; works only in RGB(PC) mode.
- id: key
label: Send IR Remote Key Code
kind: action
command: "mc {set_id} {key_code}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: key_code
type: hex_byte
description: IR key code (see IR Codes table in source; e.g. 08=Power, C4=Power On, C5=Power Off)
- id: tile_mode
label: Tile Mode
kind: action
command: "dd {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00=Off, otherwise column*10+row (e.g. 12=1x2, 13=1x3, 14=1x4, 44=4x4). 0X and X0 are invalid except 00."
- id: tile_h_size
label: Tile Horizontal Size
kind: action
command: "dg {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00H-64H"
- id: tile_v_size
label: Tile Vertical Size
kind: action
command: "dh {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00H-64H"
- id: tile_id_set
label: Tile ID Set
kind: action
command: "di {set_id} {data}\r"
params:
- name: set_id
type: integer
description: Set ID (1-99; 0 broadcasts)
- name: data
type: hex_byte
description: "00H-10H (Tile ID assignment)"
- id: elapsed_time_return
label: Elapsed Time Return
kind: query
command: "dl {set_id} FF\r"
params:
- name: set_id
type: integer
description: Set ID (1-99)
notes: Response data is used hours in hex.
- id: temperature_value
label: Temperature Value (inside)
kind: query
command: "dn {set_id} FF\r"
params:
- name: set_id
type: integer
description: Set ID (1-99)
notes: Response data is 1 byte in hex.
- id: lamp_fault_check
label: Lamp Fault Check
kind: query
command: "dp {set_id} FF\r"
params:
- name: set_id
type: integer
description: Set ID (1-99)
response_meanings:
"00": "Lamp Fault"
"01": "Lamp OK"
Feedbacks
# OK ack frame: <cmd2><SP><set_id><SP>OK<SP><data>x
# Error ack frame: <cmd2><SP><set_id><SP>NG<SP><data>x
# x is a literal character per source (terminator).
- id: power_state
type: enum
values: [off, on]
response_pattern: "a {set_id} OK {data}x"
data_map:
"00": off
"01": on
- id: input_source
type: enum
values: [av, component1, component2, rgb_dtv, rgb_pc, hdmi_dtv, hdmi_pc]
response_pattern: "b {set_id} OK {data}x"
data_map:
"02": av
"04": component1
"05": component2
"06": rgb_dtv
"07": rgb_pc
"08": hdmi_dtv
"09": hdmi_pc
- id: aspect_ratio_state
type: enum
values: [normal_4_3, wide_16_9, horizon, zoom1, zoom2, original, mode_14_9, full_eu, pc_1_1]
response_pattern: "c {set_id} OK {data}x"
- id: screen_mute_state
type: enum
values: [picture_on, picture_off]
- id: volume_mute_state
type: enum
values: [mute_on, mute_off]
- id: volume
type: integer
range: "0-100"
response_pattern: "f {set_id} OK {data}x"
- id: contrast
type: integer
range: "0-100"
- id: brightness
type: integer
range: "0-100"
- id: color
type: integer
range: "0-100"
- id: tint
type: integer
range: "-50 to 50"
- id: sharpness
type: integer
range: "0-100"
- id: osd_state
type: enum
values: [off, on]
- id: remote_lock_state
type: enum
values: [off, on]
- id: balance
type: integer
range: "-50 to 50"
- id: color_temperature_state
type: enum
values: [normal, cool, warm, user]
- id: abnormal_state_reason
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]
response_pattern: "z {set_id} OK {data}x"
- id: ism_mode_state
type: enum
values: [inversion, orbiter, white_wash, normal]
- id: tile_mode_state
type: integer
description: Hex byte; 00=off, else column*10+row
- id: tile_h_size_state
type: integer
range: "0-100"
- id: tile_v_size_state
type: integer
range: "0-100"
- id: tile_id_state
type: integer
range: "0-16"
- id: elapsed_time_hours
type: integer
description: Hex-encoded hours
response_pattern: "l {set_id} OK {data}x"
- id: internal_temperature
type: integer
description: 1-byte hex value
response_pattern: "n {set_id} OK {data}x"
- id: lamp_fault
type: enum
values: [fault, ok]
response_pattern: "p {set_id} OK {data}x"
Variables
# UNRESOLVED: All adjustable parameters in this device are exposed as parameterized Actions
# (volume, contrast, brightness, color, tint, sharpness, balance, color_temperature).
# No standalone settable variables are documented in the source.
Events
# UNRESOLVED: source does not document unsolicited notifications from the device.
# All feedback is delivered as solicited responses to command frames.
Macros
# UNRESOLVED: source does not document multi-step sequences.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or power-on sequencing requirements.
Notes
- All commands use the frame
<cmd1><cmd2><SP><set_id><SP><data><CR>where<SP>=0x20and<CR>=0x0D. set_idis 1-99;0broadcasts to all connected sets. When broadcasting, ack messages are not checkable.- Every command supports a read form by sending
data=FF; the device replies with the current value in an OK ack. - OK ack frame:
<cmd2><SP><set_id><SP>OK<SP><data>x; Error ack frame:<cmd2><SP><set_id><SP>NG<SP><data>x. The trailingxis a literal character per the source. - Tiling sub-commands (tile_mode, tile_h_size, tile_v_size, tile_id_set, elapsed_time, temperature, lamp_fault) use
das cmd1 and acknowledge withOK/NGrather than justOK. - ISM Mode and Abnormal State are documented as hex-coded enums with gaps (e.g. ISM data 1/2/4/8 only; 0/3/5/6/7 undefined).
- The source is a generic LG RS-232 protocol manual; explicit mention of the 49UJ6050 model number is not present in the supplied text. Compatibility is asserted from device-class context, not from model-specific evidence.
- Source describes RS-232C/serial exclusively; the input prompt's "TCP/IP" label does not match the source content.
Provenance
source_domains:
- justaddpower.com
source_urls:
- https://www.justaddpower.com/docs/manuals/rs232-lg.pdf
retrieved_at: 2026-06-02T01:18:31.928Z
last_checked_at: 2026-06-02T17:22:54.379Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T17:22:54.379Z
matched_actions: 26
action_count: 26
confidence: medium
summary: "All 26 spec actions matched literally against source command table; all transport parameters verified verbatim; full bidirectional coverage. (8 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "Source document is a generic LG RS-232 protocol manual; it does not explicitly name the 49UJ6050 model. Compatibility is asserted from the document context."
- "Source uses RS-232/serial despite input prompt describing protocol as \"TCP/IP\". Spec follows source."
- "All adjustable parameters in this device are exposed as parameterized Actions"
- "source does not document unsolicited notifications from the device."
- "source does not document multi-step sequences."
- "source contains no safety warnings, interlock procedures, or power-on sequencing requirements."
- "Firmware version compatibility not stated in source."
- "Specific 49UJ6050 model identification not stated in source; spec covers the protocol class."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0