Summary

LG consumer LED LCD TV supporting RS-232C ASCII protocol for external control. Commands are transmitted over serial UART at 9600 baud. Supports power, input selection, picture adjustment, audio control, tiling modes, and queryable status feedback.

Transport

protocols:
  - serial
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: UNRESOLVED  # source does not specify authentication

Traits

- powerable       # power on/off commands documented
- routable        # input selection commands documented
- queryable       # read queries documented (FF data)
- levelable       # volume, contrast, brightness, etc. documented

Actions

- id: power
  label: Power
  kind: action
  params:
    - name: state
      type: integer
      description: "0 = Power Off, 1 = Power On"
  command: "ka {set_id} {state}"
  feedback: "a {set_id} OK {data}"

- id: input_select
  label: Input Select
  kind: action
  params:
    - name: input
      type: integer
      description: "2=AV, 4=Component1, 5=Component2, 6=RGB-DTV, 7=RGB-PC, 8=HDMI-DTV, 9=HDMI-PC"
  command: "kb {set_id} {input}"
  feedback: "b {set_id} OK {data}"

- id: aspect_ratio
  label: Aspect Ratio
  kind: action
  params:
    - name: mode
      type: integer
      description: "1=4:3, 2=16:9, 3=Horizon, 4=Zoom1, 5=Zoom2, 6=Original, 7=14:9, 8=Full (Europe version only), 9=1:1 (PC)"
  command: "kc {set_id} {mode}"
  feedback: "c {set_id} OK {data}"

- id: screen_mute
  label: Screen Mute
  kind: action
  params:
    - name: state
      type: integer
      description: "0 = Off (Picture on), 1 = On (Picture off)"
  command: "kd {set_id} {state}"
  feedback: "d {set_id} OK {data}"

- id: volume_mute
  label: Volume Mute
  kind: action
  params:
    - name: state
      type: integer
      description: "0 = Mute On, 1 = Mute Off (Volume On)"
  command: "ke {set_id} {state}"
  feedback: "e {set_id} OK {data}"

- id: volume_control
  label: Volume Control
  kind: action
  params:
    - name: level
      type: integer
      description: "Range 00-64 (0-100). Real data: 0=Step0, A=Step10, F=Step15, 10=Step16, 64=Step100"
  command: "kf {set_id} {level}"
  feedback: "f {set_id} OK {data}"

- id: contrast
  label: Contrast
  kind: action
  params:
    - name: level
      type: integer
      description: "Range 00-64. Real data mapping same as volume."
  command: "kg {set_id} {level}"
  feedback: "g {set_id} OK {data}"

- id: brightness
  label: Brightness
  kind: action
  params:
    - name: level
      type: integer
      description: "Range 00-64. Real data mapping same as volume."
  command: "kh {set_id} {level}"
  feedback: "h {set_id} OK {data}"

- id: color
  label: Color
  kind: action
  params:
    - name: level
      type: integer
      description: "Range 00-64 (Video only). Real data mapping same as volume."
  command: "ki {set_id} {level}"
  feedback: "i {set_id} OK {data}"

- id: tint
  label: Tint
  kind: action
  params:
    - name: level
      type: integer
      description: "Range 00-64 (Video only). 0=Red-50, 64=Green+50."
  command: "kj {set_id} {level}"
  feedback: "j {set_id} OK {data}"

- id: sharpness
  label: Sharpness
  kind: action
  params:
    - name: level
      type: integer
      description: "Range 00-64 (Video only). Real data mapping same as volume."
  command: "kk {set_id} {level}"
  feedback: "k {set_id} OK {data}"

- id: osd_select
  label: OSD Select
  kind: action
  params:
    - name: state
      type: integer
      description: "0 = OSD Off, 1 = OSD On"
  command: "kl {set_id} {state}"
  feedback: "l {set_id} OK {data}"

- id: remote_lock
  label: Remote Lock / Key Lock
  kind: action
  params:
    - name: state
      type: integer
      description: "0 = Off, 1 = On. Locks remote and local keys when using RS-232C."
  command: "km {set_id} {state}"
  feedback: "m {set_id} OK {data}"

- id: balance
  label: Balance
  kind: action
  params:
    - name: level
      type: integer
      description: "Range 00-64 (L50 ~ R50). 00=Left50, 32=Center, 64=Right50."
  command: "kt {set_id} {level}"
  feedback: "t {set_id} OK {data}"

- id: color_temperature
  label: Color Temperature
  kind: action
  params:
    - name: mode
      type: integer
      description: "0=Normal, 1=Cool, 2=Warm, 3=User"
  command: "ku {set_id} {mode}"
  feedback: "u {set_id} OK {data}"

- id: ism_mode
  label: ISM Mode
  kind: action
  params:
    - name: mode
      type: integer
      description: "1=Inversion, 2=Orbiter, 4=White Wash, 8=Normal"
  command: "jp {set_id} {mode}"
  feedback: "p {set_id} OK {data}"

- id: auto_configure
  label: Auto Configure
  kind: action
  params:
    - name: action
      type: integer
      description: "1 = Execute. Works only in RGB(PC) mode."
  command: "ju {set_id} {action}"
  feedback: "u {set_id} OK {data}"

- id: tile_mode
  label: Tile Mode
  kind: action
  params:
    - name: mode
      type: integer
      description: "0=Off, 12=1x2, 13=1x3, 14=1x4, ... 44=4x4. Cannot be 0X or X0 except 00. Source shows the command frame ending [Data][x]; the meaning of [x] is unresolved."
  command: "dd {set_id} {mode}"
  feedback: "d {set_id} OK {data}"

- id: tile_h_size
  label: Tile H Size
  kind: action
  params:
    - name: size
      type: integer
      description: "Horizontal size, range 00-64. Source shows the command frame ending [Data][x]; the meaning of [x] is unresolved."
  command: "dg {set_id} {size}"
  feedback: "g {set_id} OK {data}"

- id: tile_v_size
  label: Tile V Size
  kind: action
  params:
    - name: size
      type: integer
      description: "Vertical size, range 00-64. Source shows the command frame ending [Data][x]; the meaning of [x] is unresolved."
  command: "dh {set_id} {size}"
  feedback: "h {set_id} OK {data}"

- id: tile_id_set
  label: Tile ID Set
  kind: action
  params:
    - name: id
      type: integer
      description: "Tile ID, range 00-10 (Hex). Source shows the command frame ending [Data][x]; the meaning of [x] is unresolved."
  command: "di {set_id} {id}"
  feedback: "i {set_id} OK {data}"

- id: key
  label: Key
  kind: action
  params:
    - name: key_code
      type: string
      description: "Key code : Refer to page A18."
  command: "[m][c][ ][Set ID][ ][Data][Cr]"
  feedback: "[c][ ][Set ID][ ][OK][Data][x]"

Feedbacks

- id: power_state
  label: Power State
  type: enum
  values:
    - 0  # Power Off
    - 1  # Power On
  query: "ka {set_id} FF"
  query_command: "[k][a][ ][Set ID][ ][FF][Cr]"

- id: input_state
  label: Input State
  type: enum
  values:
    - 2   # AV
    - 4   # Component 1
    - 5   # Component 2
    - 6   # RGB (DTV)
    - 7   # RGB (PC)
    - 8   # HDMI (DTV)
    - 9   # HDMI (PC)
  query: "kb {set_id} FF"
  query_command: "[k][b][ ][Set ID][ ][Data][Cr]"

- id: abnormal_state
  label: Abnormal State
  type: enum
  values:
    - 0  # Normal (Power on and signal exist)
    - 1  # No signal (Power on)
    - 2  # Turn the monitor off by remote control
    - 3  # Turn the monitor off by sleep time function
    - 4  # Turn the monitor off by RS-232C function
    - 6  # AC down
    - 8  # Turn the monitor off by off time function
    - 9  # Turn the monitor off by auto off function
  query: "kz {set_id} FF"
  query_command: "[k][z][ ][Set ID][ ][Data][Cr]"

- id: elapsed_time
  label: Elapsed Time
  type: integer
  description: "Used hours (Hexadecimal, 1 byte)"
  query: "dl {set_id} FF"
  query_command: "[d][l][ ][Set ID][ ][Data][x]"

- id: temperature_value
  label: Temperature Value
  type: integer
  description: "Inside temperature in Hexadecimal"
  query: "dn {set_id} FF"
  query_command: "[d][n][ ][Set ID][ ][Data][x]"

- id: lamp_fault
  label: Lamp Fault
  type: enum
  values:
    - 0  # Lamp Fault
    - 1  # Lamp OK
  query: "dp {set_id} FF"
  query_command: "[d][p][ ][Set ID][ ][Data][x]"

- id: ack_ok
  label: Acknowledgement OK
  description: "Returned as [Command2][ ][Set ID][ ][OK][Data][x]"

- id: ack_ng
  label: Acknowledgement Error
  description: "Returned as [Command2][ ][Set ID][ ][NG][Data][x]"

Variables

# No discrete settable parameters separate from actions documented.

Events

# No unsolicited event notifications documented; all communication is command-response.

Macros

# No explicit multi-step macros documented.

Safety

confirmation_required_for: []
interlocks:
  - description: "When controlling with Set ID 0 (broadcast), all sets send ACK — checking individual ACK is impossible."
  - description: "Remote Lock/Key Lock (km) locks both remote control and local keys when using RS-232C control."

Notes

Command Format: The general format is [Command1][Command2][ ][Set ID][ ][Data][Cr], where Cr = ASCII 0x0D carriage return. The source's command-specific frames for tile mode, tile size, and tile ID instead show [Data][x]; the meaning of [x] in those frames is UNRESOLVED.

Set ID Range: 1-99. Set ID 0 = broadcast to all devices (no ACK check possible).

Read Mode: Transmit FF as data to read current status.

Data Mapping: For volume, contrast, brightness, color, and sharpness, the source gives this mapping: 0=Step0, A=Step10, F=Step15, 10=Step16, 64=Step100. Tint: 0=Step-50, 64=Step+50.

Tiling Restrictions: Tile mode data cannot be 0X or X0 except 00.

Provenance

source_domains:
  - justaddpower.com
  - lg.com
source_urls:
  - https://justaddpower.com/docs/manuals/rs232-lg.pdf
  - https://www.lg.com/us/business/commercial-displays/professional-tvs
retrieved_at: 2026-10-07T12:36:56.104Z
last_checked_at: 2026-10-07T12:36:56.104Z

Verification Summary

verdict: verified
checked_at: 2026-10-07T12:36:56.104Z
matched_actions: 28
action_count: 28
confidence: medium
summary: "All 28 action units match source command letters and data shapes; serial transport matches; 26-command RS-232C catalogue fully covered; IR code table treated as key-code data. (4 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "TCP/IP control protocol not documented in source; this spec covers RS-232C only"
- "TCP/IP control protocol not covered in source document"
- "exact port number for IP control not stated (source only covers RS-232C)"
- "firmware version compatibility not stated in source"
- "source applicability inferred: the manufacturer protocol document names no model; commands verified against it but not confirmed for this exact model"

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