Summary
The LG 49NANO86UNA is a NanoCell TV that supports external control via RS-232C serial and IP (Telnet) connections. This spec covers both the RS-232C command protocol (ASCII-based, two-character command codes with hexadecimal data) and the Network IP Control protocol (plain-text Telnet commands on port 9761). Controls include power, volume, input selection, channel tuning, picture adjustments, and more.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: null # UNRESOLVED: flow control not stated in source
addressing:
port: 9761
auth:
type: none # inferred: RS-232C has no auth procedure in source
Traits
- powerable # power on/off commands present (ka, POWER)
- routable # input selection commands present (xb, INPUT_SELECT)
- queryable # FF data read mode returns current status
- levelable # volume, contrast, brightness, color, tint, sharpness, backlight, bass, treble, balance controls present
Actions
# === RS-232C Commands ===
- id: power_control
label: Power Control (RS-232)
kind: action
command: "ka"
description: "Control power on/off. Transmission: [k][a][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: enum
values:
- "00" # Power Off
- "01" # Power On
description: "00=Off, 01=On. Send FF to query status."
- id: aspect_ratio
label: Aspect Ratio (RS-232)
kind: action
command: "kc"
description: "Adjust screen format. Transmission: [k][c][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: enum
values:
- "01" # Normal screen
- "02" # Wide screen (16:9)
- "04" # Zoom
- "05" # Zoom 2
- "06" # Set by Program/Original
- "07" # 14:9 (4:3)
- "09" # Just Scan
- "0B" # Full Wide
- "0C" # 21:9
- "10"-"1F" # Cinema Zoom 1-16
description: "Screen format selection"
- id: screen_mute
label: Screen Mute (RS-232)
kind: action
command: "kd"
description: "Select screen mute on/off. Transmission: [k][d][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: enum
values:
- "00" # Screen mute off (Picture on), Video mute off
- "01" # Screen mute on (Picture off)
- "10" # Video mute on
description: "Screen/video mute control"
- id: volume_mute
label: Volume Mute (RS-232)
kind: action
command: "ke"
description: "Control volume mute on/off. Transmission: [k][e][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: enum
values:
- "00" # Volume mute on (Volume off)
- "01" # Volume mute off (Volume on)
description: "00=Mute on, 01=Mute off. Send FF to query."
- id: volume_control
label: Volume Control (RS-232)
kind: action
command: "kf"
description: "Adjust volume. Transmission: [k][f][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "64"
description: "Volume level 00-64 (hex)"
- id: contrast
label: Contrast (RS-232)
kind: action
command: "kg"
description: "Adjust screen contrast. Transmission: [k][g][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "64"
description: "Contrast level 00-64 (hex)"
- id: brightness
label: Brightness (RS-232)
kind: action
command: "kh"
description: "Adjust screen brightness. Transmission: [k][h][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "64"
description: "Brightness level 00-64 (hex)"
- id: color
label: Color (RS-232)
kind: action
command: "ki"
description: "Adjust screen color. Transmission: [k][i][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "64"
description: "Color level 00-64 (hex)"
- id: tint
label: Tint (RS-232)
kind: action
command: "kj"
description: "Adjust screen tint. Transmission: [k][j][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "64"
description: "Tint: Red=00 to Green=64 (hex)"
- id: sharpness
label: Sharpness (RS-232)
kind: action
command: "kk"
description: "Adjust screen sharpness. Transmission: [k][k][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "32"
description: "Sharpness level 00-32 (hex)"
- id: osd_select
label: OSD Select (RS-232)
kind: action
command: "kl"
description: "Select OSD on/off. Transmission: [k][l][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: enum
values:
- "00" # OSD off
- "01" # OSD on
description: "OSD display toggle"
- id: remote_control_lock
label: Remote Control Lock Mode (RS-232)
kind: action
command: "km"
description: "Lock front panel and remote controls. Transmission: [k][m][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: enum
values:
- "00" # Lock off
- "01" # Lock on
description: "00=Lock off, 01=Lock on. Released on main power cycle."
- id: treble
label: Treble (RS-232)
kind: action
command: "kr"
description: "Adjust treble. Transmission: [k][r][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "64"
description: "Treble level 00-64 (hex)"
- id: bass
label: Bass (RS-232)
kind: action
command: "ks"
description: "Adjust bass. Transmission: [k][s][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "64"
description: "Bass level 00-64 (hex)"
- id: balance
label: Balance (RS-232)
kind: action
command: "kt"
description: "Adjust balance. Transmission: [k][t][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "64"
description: "Balance level 00-64 (hex)"
- id: color_temperature
label: Color Temperature (RS-232)
kind: action
command: "xu"
description: "Adjust colour temperature. Transmission: [x][u][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "64"
description: "Color temperature level 00-64 (hex)"
- id: energy_saving
label: Energy Saving (RS-232)
kind: action
command: "jq"
description: "Control energy saving mode. Transmission: [j][q][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: enum
values:
- "00" # Off
- "01" # Minimum
- "02" # Medium
- "03" # Maximum
- "04" # Auto / Intelligent sensor
- "05" # Screen off
description: "Energy saving level"
- id: tune_command
label: Tune Command (RS-232)
kind: action
command: "ma"
description: "Tune to channel. Format varies by region and signal type (analog/digital/satellite). Transmission: [m][a][ ][Set ID][ ][Data...][Cr]"
params:
- name: data
type: string
description: "Multi-byte: channel data + input source. See source for regional variants."
- id: channel_add_del
label: Channel Add/Delete (RS-232)
kind: action
command: "mb"
description: "Add or delete/skip current channel. Transmission: [m][b][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: enum
values:
- "00" # Delete/Skip
- "01" # Add
description: "Channel add or delete/skip"
- id: key_action
label: Key Action (RS-232)
kind: action
command: "mc"
description: "Send IR remote key code. Transmission: [m][c][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: string
description: "Hex key code from key code table (e.g. 08=Power, 02=Vol+, 03=Vol-)"
- id: backlight_control
label: Backlight Control (RS-232)
kind: action
command: "mg"
description: "Control backlight level. Transmission: [m][g][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: integer
min: "00"
max: "64"
description: "Backlight level 00-64 (hex)"
- id: input_select
label: Input Select (RS-232)
kind: action
command: "xb"
description: "Select input source for main picture. Transmission: [x][b][ ][Set ID][ ][Data][Cr]"
params:
- name: data
type: enum
values:
- "00" # DTV
- "01" # CADTV
- "02" # Satellite DTV
- "10" # ATV
- "11" # CATV
- "20" # AV or AV1
- "21" # AV2
- "40" # Component1
- "41" # Component2
- "60" # RGB
- "90" # HDMI1
- "91" # HDMI2
- "92" # HDMI3
- "93" # HDMI4
description: "Input source selection"
# === Network IP Control Commands (Telnet) ===
- id: ip_power
label: Power Control (IP)
kind: action
command: "POWER"
description: "Control power via Telnet."
params:
- name: state
type: enum
values: ["off"]
description: "POWER off. UNRESOLVED: power on command not documented for IP control"
- id: ip_aspect_ratio
label: Aspect Ratio (IP)
kind: action
command: "ASPECT_RATIO"
description: "Set aspect ratio via Telnet."
params:
- name: mode
type: enum
values: ["4by3", "16by9", "setbyoriginal"]
- id: ip_screen_mute
label: Screen Mute (IP)
kind: action
command: "SCREEN_MUTE"
description: "Control screen mute via Telnet."
params:
- name: mode
type: enum
values: ["screenmuteon", "videomuteon", "allmuteoff"]
- id: ip_volume_mute
label: Volume Mute (IP)
kind: action
command: "VOLUME_MUTE"
description: "Control volume mute via Telnet."
params:
- name: state
type: enum
values: ["on", "off"]
- id: ip_volume_control
label: Volume Control (IP)
kind: action
command: "VOLUME_CONTROL"
description: "Set volume level via Telnet."
params:
- name: level
type: integer
min: 0
max: 100
description: "Volume level 0-100 (decimal)"
- id: ip_contrast
label: Contrast (IP)
kind: action
command: "PICTURE_CONTRAST"
description: "Set contrast via Telnet."
params:
- name: level
type: integer
min: 0
max: 100
description: "Contrast 0-100 (decimal)"
- id: ip_brightness
label: Brightness (IP)
kind: action
command: "PICTURE_BRIGHTNESS"
description: "Set brightness via Telnet."
params:
- name: level
type: integer
min: 0
max: 100
description: "Brightness 0-100 (decimal)"
- id: ip_color
label: Color (IP)
kind: action
command: "PICTURE_COLOUR"
description: "Set color via Telnet."
params:
- name: level
type: integer
min: 0
max: 100
description: "Color 0-100 (decimal)"
- id: ip_tint
label: Tint (IP)
kind: action
command: "PICTURE_TINT"
description: "Set tint via Telnet."
params:
- name: level
type: integer
min: 0
max: 100
description: "Tint 0-100 (decimal)"
- id: ip_sharpness
label: Sharpness (IP)
kind: action
command: "PICTURE_SHARPNESS"
description: "Set sharpness via Telnet."
params:
- name: level
type: integer
min: 0
max: 50
description: "Sharpness 0-50 (decimal)"
- id: ip_osd_select
label: OSD Select (IP)
kind: action
command: "OSD_SELECT"
description: "Toggle OSD via Telnet."
params:
- name: state
type: enum
values: ["on", "off"]
- id: ip_remote_lock
label: Remote Control Lock (IP)
kind: action
command: "REMOTECONTROLER_LOCK"
description: "Lock remote control via Telnet."
params:
- name: state
type: enum
values: ["on", "off"]
- id: ip_balance
label: Balance (IP)
kind: action
command: "AUDIO_BALANCE"
description: "Set audio balance via Telnet."
params:
- name: level
type: integer
min: 0
max: 100
description: "Balance 0-100 (decimal)"
- id: ip_color_temperature
label: Color Temperature (IP)
kind: action
command: "PICTURE_COLOUR_TEMPERATURE"
description: "Set color temperature via Telnet."
params:
- name: level
type: integer
min: 0
max: 100
description: "Color temperature 0-100 (decimal)"
- id: ip_equalizer
label: Equalizer (IP)
kind: action
command: "AUDIO_EQUALIZER"
description: "Set equalizer band level via Telnet. Requires sound mode EQ enabled."
params:
- name: band
type: integer
min: 1
max: 5
description: "Frequency band (1-5)"
- name: step
type: integer
min: 0
max: 20
description: "Step value (decimal)"
- id: ip_energy_saving
label: Energy Saving (IP)
kind: action
command: "ENERGY_SAVING"
description: "Set energy saving mode via Telnet."
params:
- name: mode
type: enum
values: ["screenoff", "maximum", "medium", "minimum", "off"]
- id: ip_tune
label: Tune Command (IP)
kind: action
command: "CHANNEL_SETTING_ATSC_ATV / CHANNEL_SETTING_ATSC_DTV"
description: "Tune channel via Telnet. Format varies by signal type."
params:
- name: channel
type: string
description: "Channel number and source (antenna/cable/cablenotphy)"
- id: ip_channel_add_del
label: Channel Add/Delete (IP)
kind: action
command: "CHANNEL_ADD_DELETE"
description: "Add or delete channel via Telnet."
params:
- name: action
type: enum
values: ["add", "delete"]
- id: ip_key_action
label: Key Action (IP)
kind: action
command: "KEY_ACTION"
description: "Send remote key via Telnet."
params:
- name: key
type: enum
values: ["exit", "channelup", "channeldown", "volumeup", "volumedown", "arrowright", "arrowleft", "volumemute", "deviceinput", "sleepreserve", "livetv", "previouschannel", "favoritechannel", "teletext", "teletextoption", "returnback", "avmode", "captionsubtitle", "arrowup", "arrowdown", "myapp", "settingmenu", "ok", "quickmenu", "videomode", "audiomode", "channellist", "bluebutton", "yellowbutton", "greenbutton", "redbutton", "aspectratio", "audiodescription", "programmorder", "userguide", "smarthome", "simplelink", "fastforward", "rewind", "programminfo", "programguide", "play", "slowplay", "soccerscreen", "record", "3d", "autoconfig", "app", "screenbright", "number0"-"number9"]
- id: ip_backlight
label: Backlight Control (IP)
kind: action
command: "PICTURE_BACKLIGHT"
description: "Set backlight via Telnet. Requires Energy Saving off."
params:
- name: level
type: integer
min: 0
max: 100
description: "Backlight 0-100 (decimal)"
- id: ip_input_select
label: Input Select (IP)
kind: action
command: "INPUT_SELECT"
description: "Select input source via Telnet."
params:
- name: source
type: enum
values: ["dtv", "atv", "cadtv", "catv", "avav1", "component1", "hdmi1", "hdmi2", "hdmi3"]
- id: ip_3d
label: 3D Control (IP)
kind: action
command: "PICTURE_3D"
description: "Control 3D mode via Telnet (3D models only)."
params:
- name: mode
type: string
description: "off, 3dto2d, or 2dto3d with direction and depth params"
- id: ip_3d_extension
label: Extended 3D Control (IP)
kind: action
command: "PICTURE_3D_EXTENSION"
description: "Extended 3D options via Telnet (3D models only)."
params:
- name: option
type: string
description: "picturecorrection, colorcorrection, sound, normal, depth, viewpoint, genre with sub-params"
Feedbacks
# RS-232C acknowledgement format: [Command2][ ][Set ID][ ][OK/NG][Data][x]
# OK Ack: normal data received; returns current status for read (FF) mode
# Error Ack: NG with Data 00 = Illegal Code
- id: power_state
label: Power State
type: enum
command: "ka"
values: ["00", "01"]
description: "Query with data FF. Returns 00=Off, 01=On"
- id: volume_mute_state
label: Volume Mute State
type: enum
command: "ke"
values: ["00", "01"]
description: "Query with data FF. Returns 00=Mute on, 01=Mute off"
- id: volume_level
label: Volume Level
type: integer
command: "kf"
description: "Query with data FF. Returns current volume 00-64 (hex)"
- id: contrast_level
label: Contrast Level
type: integer
command: "kg"
description: "Query with data FF. Returns current contrast 00-64 (hex)"
- id: brightness_level
label: Brightness Level
type: integer
command: "kh"
description: "Query with data FF. Returns current brightness 00-64 (hex)"
- id: input_source
label: Input Source
type: enum
command: "xb"
description: "Query with data FF. Returns current input source code"
# UNRESOLVED: IP control feedback/query format not documented in source
Variables
# All level-type parameters are represented as Actions with numeric params above.
# No additional Variables distinct from Actions identified in source.
Events
# UNRESOLVED: no unsolicited notification protocol documented in source
Macros
# UNRESOLVED: no multi-step sequences explicitly described in source
Safety
confirmation_required_for: []
interlocks:
- "During media playback or recording, all commands except Power (ka) and Key (mc) are not executed and treated as NG"
- "With USB-to-Serial converter, ka command works only when TV is on; RS-232C cable allows ka in power-off state"
- "Remote control lock is released when main power is cycled (plug-off, wait 20-30 seconds, plug-in)"
- "With key lock on, TV will not turn on by IR or local key power in standby mode"
# UNRESOLVED: no power-on sequencing requirements stated
Notes
- RS-232C communication uses ASCII codes with Carriage Return (0x0D) terminators and Space (0x20) separators.
- Command format:
[Command1][Command2][ ][Set ID][ ][Data][Cr]where Command1 is j, k, m, or x. - Set ID range: 1-99 (decimal in menu, hexadecimal 0x00-0x63 in protocol). Set ID 0 = broadcast to all connected sets.
- Data
FFin any command queries the current status (read mode). - LG supports PL2303-based USB-to-serial converters (VID 0x0557, PID 0x2008) for models without native RS-232C ports.
- 3-wire RS-232C configuration: RXD, TXD, GND (not standard). Use a crossed (reverse) cable.
- IP Control is enabled via TV menu: Settings > hold 5s on Live TV screen > enter 828 > IP Control Setup > On. Requires reboot. Default password is 828.
- IP Control uses Telnet on port 9761. Response is OK or NG per command.
- IP Control tune command uses different syntax for ATSC vs DVB regions.
- Equalizer requires sound mode set to EQ adjustable mode.
- Backlight control via IP requires Energy Saving set to off.
Provenance
source_domains:
- proaudioinc.com
- knowledge.tiffinmotorhomes.com
- files.remotecentral.com
source_urls:
- https://www.proaudioinc.com/Dealer_Area/RS232C_EN_160526.pdf
- https://knowledge.tiffinmotorhomes.com/Owner_Hub/Allegro_Bus/Allegro_Bus_Component_Manuals/2027_Allegro_Bus_Component_Manuals/LG_External_Control_Device_Setup
- https://files.remotecentral.com/library/22-1/lg/television/index.html
retrieved_at: 2026-06-02T22:09:02.524Z
last_checked_at: 2026-06-02T22:09:02.524Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:09:02.524Z
matched_actions: 45
action_count: 45
confidence: medium
summary: "All 45 spec actions traced to source (dip-safe re-verify). (13 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "exact connector type (DE9 vs phone jack) for this specific model not stated"
- "Network IP Control section marked \"For USA only\" — applicability to other regions unclear"
- "flow control not stated in source"
- "Network IP Control requires enabling via TV menu with password 828; not traditional auth but a setup prerequisite"
- "power on command not documented for IP control\""
- "IP control feedback/query format not documented in source"
- "no unsolicited notification protocol documented in source"
- "no multi-step sequences explicitly described in source"
- "no power-on sequencing requirements stated"
- "Network IP Control marked \"For USA only\" — applicability to other regions unclear"
- "exact connector type for RS-232C on this specific model (DE9 vs phone jack vs USB-only)"
- "IP power-on command not documented; only \"POWER off\" shown"
- "WOL (Wake On LAN) power-on mentioned but no protocol details provided"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0