Summary
LG SK8100 series LCD TV exposing both an RS-232C service interface (DE9/phone-jack or USB-to-serial via PL2303) and a telnet-based Network IP control (port 9761). This spec covers the documented external control command set: power, video tuning, picture/sound adjustments, input selection, IR-key emulation, and 3D options where applicable.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
connector: "DE9 (D-Sub 9-pin female-to-female) or 3.5 mm phone-jack or USB (PL2303, VID 0x0557, PID 0x2008)"
cable_type: "crossed (reverse)"
addressing:
port: 9761
host: "TV IP address (DHCP or static; not stated in source)"
auth:
type: password
username: null
password: "828" # default 3-digit password, changeable via Password Change menu
notes: "TCP/IP control requires enabling Network IP Control via hidden menu (hold Settings 5 s → enter 828 → IP Control Setup → On). Source states the 828 password applies to the hidden IP Control Setup menu, not directly to the telnet session - telnet auth procedure is not specified in source."
Traits
- powerable # inferred from ka / POWER commands
- routable # inferred from xb (input select) / INPUT_SELECT
- queryable # inferred from FF status read and OK/NG acknowledgement
- levelable # inferred from volume, picture, audio level commands
- tunable # inferred from ma (Tune Command) / CHANNEL_SETTING_*
Actions
# All command mnemonics from the source's Command Reference List, plus their
# Network IP Control (telnet) string counterparts where present.
# Set ID in serial frame is 1-99 (decimal in menu, 0x00-0x63 hex on the wire);
# Set ID 0 broadcasts to all connected sets.
# Serial frame format: [Cmd1][Cmd2][ ][SetID][ ][Data][Cr] (Cr = 0x0D, space = 0x20)
# Read (query) variant: send FF in Data field; device replies with status.
- id: power
label: Power (set)
kind: action
command: "ka {data}" # serial: 'ka <SetID> <00|01>' ; ip: 'POWER off' / 'POWER on'
params:
- name: data
type: string
description: "Serial: 00 = off, 01 = on. IP: 'on' or 'off'."
notes: "With RS-232C cable, ka works in both power-on and power-off states; with USB-to-serial converter, only when TV is on."
- id: power_status
label: Power Status Query
kind: query
command: "ka FF" # serial; IP returns OK on any accepted command
params: []
- id: aspect_ratio
label: Aspect Ratio
kind: action
command: "kc {data}" # ip: ASPECT_RATIO [4by3|16by9|setbyoriginal]
params:
- name: data
type: string
description: "01=Normal(4:3) 02=Wide(16:9) 04=Zoom 05=Zoom2 06=Set by Program/Original 07=14:9 09=Just Scan 0B=Full Wide 0C=21:9 10-1F=Cinema Zoom 1-16"
- id: screen_mute
label: Screen Mute
kind: action
command: "kd {data}" # ip: SCREEN_MUTE [screenmuteon|videomuteon|allmuteoff]
params:
- name: data
type: string
description: "00=Screen mute off (Picture on, Video mute off) 01=Screen mute on (Picture off) 10=Video mute on"
- id: volume_mute
label: Volume Mute
kind: action
command: "ke {data}" # ip: VOLUME_MUTE [on|off]
params:
- name: data
type: string
description: "00=mute on (volume off), 01=mute off (volume on)"
- id: volume_control
label: Volume Control
kind: action
command: "kf {level}" # ip: VOLUME_CONTROL 0..100 (decimal)
params:
- name: level
type: integer
description: "Serial hex 00-64. IP decimal 0-100."
- id: contrast
label: Contrast
kind: action
command: "kg {data}" # ip: PICTURE_CONTRAST 0..100
params:
- name: data
type: integer
description: "Serial hex 00-64. IP decimal 0-100."
- id: brightness
label: Brightness
kind: action
command: "kh {data}" # ip: PICTURE_BRIGHTNESS 0..100
params:
- name: data
type: integer
description: "Serial hex 00-64. IP decimal 0-100."
- id: color
label: Color/Colour
kind: action
command: "ki {data}" # ip: PICTURE_COLOUR 0..100
params:
- name: data
type: integer
description: "Serial hex 00-64. IP decimal 0-100."
- id: tint
label: Tint
kind: action
command: "kj {data}" # ip: PICTURE_TINT 0..100
params:
- name: data
type: integer
description: "Serial hex Red:00 to Green:64. IP decimal 0-100."
- id: sharpness
label: Sharpness
kind: action
command: "kk {data}" # ip: PICTURE_SHARPNESS 0..50
params:
- name: data
type: integer
description: "Serial hex 00-32. IP decimal 0-50."
- id: osd_select
label: OSD Select
kind: action
command: "kl {data}" # ip: OSD_SELECT [on|off]
params:
- name: data
type: string
description: "00=OSD off, 01=OSD on"
- id: remote_control_lock
label: Remote Control Lock Mode
kind: action
command: "km {data}" # ip: REMOTECONTROLER_LOCK [on|off]
params:
- name: data
type: string
description: "00=Lock off, 01=Lock on. Released when main power is cycled (20-30 s)."
- id: treble
label: Treble
kind: action
command: "kr {data}" # ip: AUDIO_TREBLE 0..100
params:
- name: data
type: integer
description: "Serial hex 00-64. IP decimal 0-100."
- id: bass
label: Bass
kind: action
command: "ks {data}" # ip: AUDIO_BASS 0..100
params:
- name: data
type: integer
description: "Serial hex 00-64. IP decimal 0-100."
- id: balance
label: Balance
kind: action
command: "kt {data}" # ip: AUDIO_BALANCE 0..100
params:
- name: data
type: integer
description: "Serial hex 00-64. IP decimal 0-100."
- id: color_temperature
label: Color Temperature
kind: action
command: "xu {data}" # ip: PICTURE_COLOUR_TEMPERATURE 0..100
params:
- name: data
type: integer
description: "Serial hex 00-64. IP decimal 0-100."
- id: ism_method
label: ISM Method (Plasma only)
kind: action
command: "jp {data}" # not supported on LCD/LED models including SK8100
params:
- name: data
type: string
description: "02=Orbiter, 08=Normal, 20=Color(Colour) Wash"
- id: equalizer
label: Equalizer
kind: action
command: "jv {data}" # ip: AUDIO_EQUALIZER [1..5] [0..20]
params:
- name: data
type: string
description: "Serial: 1-byte bit field - bits 7-5 = band (000=1st … 100=5th), bits 4-0 = step (0-20). IP: 'AUDIO_EQUALIZER <band 1-5> <step 0-20>'."
notes: "Precondition: Settings > Sound > Sound Mode > Equalizer = on."
- id: energy_saving
label: Energy Saving
kind: action
command: "jq {data}" # ip: ENERGY_SAVING [screenoff|maximum|medium|minimum|off]
params:
- name: data
type: string
description: "00=Off 01=Minimum 02=Medium 03=Maximum 04=Auto (LCD/LED) 05=Screen off"
- id: tune_command
label: Tune Channel
kind: action
command: "ma {d0} {d1} {d2} {d3} {d4} {d5}" # ip: CHANNEL_SETTING_* (see notes)
params:
- name: d0
type: string
description: "High-byte channel / Physical / 'xx' (don't care)"
- name: d1
type: string
description: "Low-byte channel / Major high byte"
- name: d2
type: string
description: "Input source byte (region-dependent; see notes)"
- name: d3
type: string
description: "Major low byte / Minor high byte"
- name: d4
type: string
description: "Minor low byte"
- name: d5
type: string
description: "Input source for extended variants (00=ATV, 80=CATV analog, 02=DTV, 22=DTV no-phy, 06=CADTV no-phy, 26=CADTV no-phy, 46=One-part, 66=One-part, 40=SDTV, 50=S-Radio, 90=CADTV, A0=CA-Radio, 07=BS, 08=CS1, 09=CS2, 10=DTV-JP)"
notes: "IP variants: CHANNEL_SETTING_ATSC_ATV [ch] antenna|cable, CHANNEL_SETTING_ATSC_DTV [ch] cablenotphy, CHANNEL_SETTING_ATSC_DTV [maj] [min] antennanotphy|cablenotphy. Example: 'ma 00 00 0a 00' tunes PAL ch 10 antenna."
- id: channel_add_del
label: Channel Add/Del(Skip)
kind: action
command: "mb {data}" # ip: CHANNEL_ADD_DELETE [add|delete]
params:
- name: data
type: string
description: "00=Del(ATSC/ISDB)/Skip(DVB), 01=Add"
- id: key
label: IR Remote Key
kind: action
command: "mc {keycode}" # ip: KEY_ACTION <keyname> (see key list)
params:
- name: keycode
type: string
description: "Hex byte from Key Code table; or IP name (e.g. 'ok', 'volumeup', 'power'). Works in all power states."
notes: "Key codes 0x10-0x19 = number 0-9; 0x08=Power; 0x09=Mute; 0x0B=Input; 0x43=Menu/Settings; 0x44=OK; 0x79=Aspect Ratio; 0xBD=Record; etc. (see source pp.1-2 for full list)."
- id: control_backlight
label: Control Backlight (LCD/LED)
kind: action
command: "mg {data}" # ip: PICTURE_BACKLIGHT 0..100
params:
- name: data
type: integer
description: "Serial hex 00-64. IP decimal 0-100."
notes: "Precondition: Settings > Picture > Energy Saving = off."
- id: control_panel_light
label: Control Panel Light (Plasma)
kind: action
command: "mg {data}" # not supported on SK8100
params:
- name: data
type: integer
description: "Serial hex 00-64. (Plasma only.)"
- id: input_select
label: Input Select (Main)
kind: action
command: "xb {data}" # ip: INPUT_SELECT [dtv|atv|cadtv|catv|avav1|component1|hdmi1|hdmi2|hdmi3]
params:
- name: data
type: string
description: "00=DTV 01=CADTV 02=Satellite DTV 03=ISDB-CS1 04=ISDB-CS2 10=ATV 11=CATV 20=AV1 21=AV2 40=Component1 41=Component2 60=RGB 90=HDMI1 91=HDMI2 92=HDMI3 93=HDMI4"
- id: threed_mode
label: 3D Mode
kind: action
command: "xt {d0} {d1} {d2} {d3}" # ip: PICTURE_3D ...
params:
- name: d0
type: string
description: "00=3D On 01=3D Off 02=3D to 2D 03=2D to 3D"
- name: d1
type: string
description: "00=Top/Bottom 01=Side by Side 02=Check Board 03=Frame Sequential 04=Column interleaving 05=Row interleaving"
- name: d2
type: string
description: "Plasma only: 00=Right→Left, 01=Left→Right"
- name: d3
type: string
description: "3D Depth: hex 00-14. Meaningless when d0=00 (3D On)."
notes: "Source marks this command as 'Only 3D models' / 'Depending on model'. SK8100 series support unconfirmed."
- id: threed_extended
label: 3D Extended Option
kind: action
command: "xv {d0} {d1}" # ip: PICTURE_3D_EXTENSION ...
params:
- name: d0
type: string
description: "00=Picture Correction 01=Depth 02=Viewpoint 06=Color Correction 07=Sound Zooming 08=Normal Image View 09=Mode(Genre)"
- name: d1
type: string
description: "Range depends on d0: 00-01 for corrections/on-off; 00-14 hex for depth/viewpoint; 0-20 decimal; 00-05 for genre (0=Standard,1=Sport,2=Cinema,3=Extreme,4=Manual,5=Auto)"
notes: "Precondition chains with PICTURE_3D state - see source p.13."
- id: auto_configure
label: Auto Configure
kind: action
command: "ju 01" # IP variant not documented in source
params: []
notes: "RGB(PC) mode only. Data 01 = run auto-configure."
- id: telnet_quit
label: Exit Telnet Session
kind: action
command: "quit" # IP control only; ends the telnet session
params: []
Feedbacks
- id: ack_ok
label: OK Acknowledgement
type: string
description: "[Cmd2][ ][SetID][ ][OK][Data][x] (serial). 'OK' line on telnet after a successful IP command."
- id: ack_ng
label: NG Acknowledgement
type: string
description: "[Cmd2][ ][SetID][ ][NG][Data][x] (serial, data 00 = Illegal Code). 'NG' on telnet for unsupported or rejected commands."
- id: power_state
label: Power State
type: enum
values: [on, off]
- id: input_state
label: Input Source
type: enum
values: [dtv, cadtv, satellite_dtv, isdb_cs1, isdb_cs2, atv, catv, av1, av2, component1, component2, rgb, hdmi1, hdmi2, hdmi3, hdmi4]
- id: volume_state
label: Volume Level
type: integer
description: "0-100 (IP) / 0x00-0x64 hex (serial)."
- id: mute_state
label: Mute State
type: enum
values: [mute_on, mute_off]
- id: screen_mute_state
label: Screen Mute State
type: enum
values: [screen_mute_off, screen_mute_on, video_mute_on]
Variables
# UNRESOLVED: source does not expose discrete variable handles beyond parameter ranges documented inline with each Action. Remove section if not applicable.
Events
# UNRESOLVED: source does not document unsolicited push notifications. The 'OK' / 'NG' responses above are only sent in reply to commands.
Macros
# UNRESOLVED: source does not document multi-step macro sequences.
Safety
confirmation_required_for:
- power_on # source states power-on behavior is the only command that works in standby via RS-232
interlocks: []
# UNRESOLVED: source does not document hard interlock procedures. The 828 hidden-menu password is a configuration gate, not a safety interlock.
Notes
- Source is the LG "EXTERNAL CONTROL DEVICE SETUP" owner's manual chapter covering both the legacy RS-232C command set and the newer Network IP Control (telnet) command set.
- The SK8100 series is an EU-market LCD/LED TV; several commands in the source are explicitly marked "(Plasma TV)" or "(Only 3D models)" / "Depending on model" — they are included above for completeness but are not expected to function on a 49SK8100PLA.
- Serial transmission is ASCII, terminated by Carriage Return (0x0D). Spacing in the frame is single-space (0x20) separators; do not add extra whitespace.
- "ka" (Power) is the only serial command (besides "mc" Key) that the source says works in both standby and on states. All other commands are ignored (NG) in standby.
- During media playback or recording, all commands except Power (ka) and Key (mc) return NG.
- IP control section is labelled "For USA only" in the source; whether it applies to the European 49SK8100PLA SKU is unverified.
- The Network IP Control telnet session does not document a per-connection authentication challenge in the source; the 828 password gates the menu that enables IP control, not the telnet socket itself.
Admin next steps:
- Fill
entity_idfrom Convex dashboard.
Provenance
source_domains:
- proaudioinc.com
source_urls:
- https://www.proaudioinc.com/Dealer_Area/RS232C_EN_160526.pdf
retrieved_at: 2026-06-02T01:15:10.842Z
last_checked_at: 2026-06-02T22:09:06.977Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:09:06.977Z
matched_actions: 30
action_count: 30
confidence: medium
summary: "All 30 spec actions traced to source (dip-safe re-verify). (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source describes the protocol as \"For USA only\" for IP control — applicability to the 49SK8100PLA (EU SKU) is unverified. Source also states 3D support is model-dependent; SK8100 series is not confirmed 3D-capable."
- "source does not expose discrete variable handles beyond parameter ranges documented inline with each Action. Remove section if not applicable."
- "source does not document unsolicited push notifications. The 'OK' / 'NG' responses above are only sent in reply to commands."
- "source does not document multi-step macro sequences."
- "source does not document hard interlock procedures. The 828 hidden-menu password is a configuration gate, not a safety interlock."
- "Set ID range confirmed 1-99. Wi-Fi/WOL procedure mentioned only as \"install iOS/Android app\" — no protocol-level WOL details. 3D applicability to SK8100PLA not stated. ISM and panel-light commands are plasma-specific and will not work on this LCD SKU. -->Spec emitted. Both transports captured (RS-232 + telnet:9761). IP control section flagged \"For USA only\" — applicability to EU SKU unverified, marked UNRESOLVED. Plasma-only (ISM, panel light) and 3D commands included per coverage rule with notes."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0