Summary

LG 49NANO80UNA NanoCell TV. RS-232C serial and Telnet network (port 9761) external control. ASCII protocol with carriage-return termination and Set ID addressing 1-99. Source covers a family of LG TVs (Plasma/LED/LCD); not all commands apply to this model.

Transport

protocols:
  - serial
  - tcp
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
addressing:
  port: 9761  # IP control Telnet port; RS-232C is the primary control port
auth:
  type: none  # inferred: no login procedure for RS-232C; IP control has 3-digit menu password (default 828) only for setup menu, not the telnet session

Traits

# powerable    # inferred from power (ka) command
# queryable    # inferred from FF-data query pattern (transmit FF to read status)
# routable     # inferred from input_select (xb) command
# levelable    # inferred from volume/contrast/brightness/treble/bass/balance commands

Actions

# 01. Power (Command: ka)
- id: power
  label: Power
  kind: action
  command: "ka {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte (00=broadcast, 01-63=specific TV)"
    - name: data
      type: string
      description: "00=Power Off, 01=Power On, FF=Query status"

# 02. Aspect Ratio (Command: kc)
- id: aspect_ratio
  label: Aspect Ratio
  kind: action
  command: "kc {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "01=Normal, 02=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"

# 03. Screen Mute (Command: kd)
- id: screen_mute
  label: Screen Mute
  kind: action
  command: "kd {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "00=Screen mute off (Picture on, Video mute off), 01=Screen mute on (Picture off), 10=Video mute on"

# 04. Volume Mute (Command: ke)
- id: volume_mute
  label: Volume Mute
  kind: action
  command: "ke {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "00=Mute on (Volume off), 01=Mute off (Volume on), FF=Query"

# 05. Volume Control (Command: kf)
- id: volume
  label: Volume Control
  kind: action
  command: "kf {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Volume 00-64 hex (00-100 decimal)"

# 06. Contrast (Command: kg)
- id: contrast
  label: Contrast
  kind: action
  command: "kg {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Contrast 00-64 hex"

# 07. Brightness (Command: kh)
- id: brightness
  label: Brightness
  kind: action
  command: "kh {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Brightness 00-64 hex"

# 08. Color/Colour (Command: ki)
- id: color
  label: Color/Colour
  kind: action
  command: "ki {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Color 00-64 hex"

# 09. Tint (Command: kj)
- id: tint
  label: Tint
  kind: action
  command: "kj {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Tint 00 (Red) to 64 (Green) hex"

# 10. Sharpness (Command: kk)
- id: sharpness
  label: Sharpness
  kind: action
  command: "kk {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Sharpness 00-32 hex"

# 11. OSD Select (Command: kl)
- id: osd_select
  label: OSD Select
  kind: action
  command: "kl {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "00=OSD off, 01=OSD on"

# 12. Remote Control Lock Mode (Command: km)
- id: remote_lock
  label: Remote Control Lock Mode
  kind: action
  command: "km {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "00=Lock off, 01=Lock on"

# 13. Treble (Command: kr)
- id: treble
  label: Treble
  kind: action
  command: "kr {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Treble 00-64 hex"

# 14. Bass (Command: ks)
- id: bass
  label: Bass
  kind: action
  command: "ks {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Bass 00-64 hex"

# 15. Balance (Command: kt)
- id: balance
  label: Balance
  kind: action
  command: "kt {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Balance 00-64 hex"

# 16. Color Temperature (Command: xu)
- id: color_temperature
  label: Color Temperature
  kind: action
  command: "xu {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Color temperature 00-64 hex"

# 17. ISM Method (Command: jp) - Plasma TV only
- id: ism_method
  label: ISM Method (Plasma only)
  kind: action
  command: "jp {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "02=Orbiter, 08=Normal, 20=Color Wash"
  # UNRESOLVED: 49NANO80UNA is LED; ISM not supported. Included for protocol completeness.

# 18. Equalizer (Command: jv)
- id: equalizer
  label: Equalizer
  kind: action
  command: "jv {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Single hex byte: bits 7-5 = frequency band (000=1st, 001=2nd, 010=3rd, 011=4th, 100=5th), bits 4-0 = step value 0-20"

# 19. Energy Saving (Command: jq)
- id: energy_saving
  label: Energy Saving
  kind: action
  command: "jq {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "00=Off, 01=Minimum, 02=Medium, 03=Maximum, 04=Auto (LCD/LED) / Intelligent sensor (PDP), 05=Screen off"

# 20. Tune Command (Command: ma)
- id: tune_channel
  label: Tune Channel
  kind: action
  command: "ma {set_id} {d0} {d1} {d2} {d3} {d4} {d5}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte (or 0 for variant form)"
    - name: d0
      type: string
      description: "High byte channel data (or 00=don't care for digital)"
    - name: d1
      type: string
      description: "Low byte channel data / High byte Major channel"
    - name: d2
      type: string
      description: "Input Source (analog: 00=ATV, 80=CATV) / Low byte Major channel"
    - name: d3
      type: string
      description: "High byte Minor channel (or 00)"
    - name: d4
      type: string
      description: "Low byte Minor channel (or 00)"
    - name: d5
      type: string
      description: "Input Source (digital): 00=ATV, 01=CATV, 02=DTV-Antenna, 06=CADTV, 22=DTV-Antenna(no phy), 26=CADTV(no phy), 40=SDTV, 46/66=CADTV one-part, 90=CADTV"
  # UNRESOLVED: ma format varies by region (Korea/Japan/N.America/Europe) and signal type (analog/digital/cable/satellite). See source pp.9-10 for full encoding table.

# 21. Channel Add/Del (Command: mb)
- id: channel_add_del
  label: Channel Add/Del (Skip)
  kind: action
  command: "mb {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "00=Del (ATSC/ISDB) / Skip (DVB), 01=Add"

# 22. Key (Command: mc)
- id: key_action
  label: IR Key Code
  kind: action
  command: "mc {set_id} {key_code}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: key_code
      type: string
      description: "Hex key code from source: 00=CH+, 01=CH-, 02=Vol+, 03=Vol-, 06=Right, 07=Left, 08=Power, 09=Mute, 0B=Input, 0E=Sleep, 0F=TV, 10-19=Number 0-9, 1A=Q.View, 1E=FAV, 20=Text, 21=T.Opt, 28=Return, 30=AV, 39=Caption, 40=Up, 41=Down, 42=MyApps, 43=Menu, 44=OK, 45=Q.Menu, 4C=List, 4D=Picture, 52=Sound, 53=List, 5B=Exit, 60=PIP/AD, 61=Blue, 63=Yellow, 71=Green, 72=Red, 79=Ratio, 7A=UserGuide, 7C=Smart/Home, 7E=SIMPLINK, 8E=Fwd, 8F=Rew, 91=AD, 99=AutoConfig, 9B=TV/PC, 9E=LiveMenu, 9F=App, AA=Info, AB=ProgramGuide, B0=Play, B1=Stop, B5=Recent, BA=Pause, BB=Soccer, BD=Rec, DC=3D"

# 23. Control Backlight (Command: mg)
- id: backlight
  label: Control Backlight
  kind: action
  command: "mg {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Backlight 00-64 hex"

# 23. Control Panel Light (Command: mg)
- id: panel_light
  label: Control Panel Light
  kind: action
  command: "mg {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "Panel light 00-64 hex"
  # UNRESOLVED: backlight and panel light share opcode mg; documented as two distinct functions in source.

# 24. Input Select (Command: xb)
- id: input_select
  label: Input Select (Main)
  kind: action
  command: "xb {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - 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"

# 25. 3D (Command: xt) - 3D models only
- id: picture_3d
  label: 3D Mode
  kind: action
  command: "xt {set_id} {d0} {d1} {d2} {d3}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - 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: "00=Right to Left, 01=Left to Right (Plasma only)"
    - name: d3
      type: string
      description: "3D depth 00-14 hex"
  # UNRESOLVED: 49NANO80UNA is not 3D. Included for protocol completeness.

# 26. Extended 3D (Command: xv) - 3D models only
- id: picture_3d_extension
  label: Extended 3D
  kind: action
  command: "xv {set_id} {d0} {d1}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: d0
      type: string
      description: "00=3D Picture Correction, 01=3D Depth, 02=3D Viewpoint, 06=3D Color Correction, 07=3D Sound Zooming, 08=Normal Image View, 09=3D Mode (Genre)"
    - name: d1
      type: string
      description: "Per-option: d0=00 -> 00/01; d0=01/02 -> 0-14 (depth) or 0-20 (viewpoint); d0=06/07 -> 00/01; d0=08 -> 00/01; d0=09 -> 00-05 (Standard/Sport/Cinema/Extreme/Manual/Auto)"
  # UNRESOLVED: 49NANO80UNA is not 3D. Included for protocol completeness.

# 27. Auto Configure (Command: ju) - RGB/PC mode only
- id: auto_configure
  label: Auto Configure
  kind: action
  command: "ju {set_id} {data}\r"
  params:
    - name: set_id
      type: string
      description: "Set ID hex byte"
    - name: data
      type: string
      description: "01=Run auto configure (RGB/PC mode only)"

Feedbacks

- id: power_state
  type: enum
  values: [off, on]
  source: "Response to ka {set_id} FF - data 00=Off, 01=On"
- id: volume_mute_state
  type: enum
  values: [on, off]
  source: "Response to ke {set_id} FF - data 00=Mute on, 01=Mute off"
# UNRESOLVED: most commands (kd, kg, kh, ki, kj, kk, kl, km, kr, ks, kt, kc, xb, xu, jq, xt, xv, mb, mg) accept FF as query data and return current state in the same ACK format; not enumerated as individual Feedbacks.

Variables

# UNRESOLVED: settable scalar parameters (volume/contrast/brightness/color/tint/sharpness/treble/bass/balance/color_temperature/energy_saving) are exposed as Actions rather than discrete Variables.

Events

# UNRESOLVED: source does not document unsolicited device-to-host events.

Macros

# UNRESOLVED: source does not document multi-step sequences.

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source does not contain safety warnings or interlock procedures.
# Note: Remote control lock (km 01) disables IR + local keys. External control lock is released by AC power cycle (unplug 20-30s). Standby + key lock prevents IR/local power-on; not safety-critical.

Notes

  • Transport: ASCII over RS-232C, 9600 8N1, carriage-return (0x0D) terminated, space (0x20) delimited
  • Cable: crossed (null-modem) RS-232C cable required
  • USB-to-Serial alternative: PL2303 chip (VID 0x0557, PID 0x2008); works only when TV is powered on
  • Set ID: 1-99 decimal in TV menu, 0x00-0x63 hex in protocol; 0x00 = broadcast to all
  • ACK format (TV -> host): [Cmd2][ ][SetID][ ][OK/NG][Data][x] where x is the literal ASCII 'x' (0x78), NOT a CR. Note this is the response terminator; transmissions use CR.
  • IP control: Telnet to port 9761. 3-digit setup password (default 828) gates the IP Control Setup menu on the TV itself; the telnet session itself has no login
  • WOL power-on: requires Mobile TV On submenu enabled and a WOL mobile app (iOS / Google Play)
  • Media playback/recording restriction: only Power (ka) and Key (mc) commands are accepted; all others return NG
  • Model-specific commands: ISM (jp) is Plasma-only; 3D/Extended 3D (xt, xv) are 3D-models-only; Auto Configure (ju) requires RGB/PC input
  • The protocol is shared across a wide LG TV family; 49NANO80UNA is an LED/NanoCell, non-3D model, so the Plasma/3D actions in this spec will not work on this device but are retained for protocol completeness

Provenance

source_domains:
  - proaudioinc.com
source_urls:
  - https://www.proaudioinc.com/Dealer_Area/RS232C_EN_160526.pdf
retrieved_at: 2026-06-02T01:11:18.020Z
last_checked_at: 2026-06-02T17:22:52.186Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T17:22:52.186Z
matched_actions: 28
action_count: 28
confidence: medium
summary: "All 28 spec actions matched literal RS-232C command mnemonics in source; all transport parameters verified verbatim. (12 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "ISM (jp) is Plasma-only; 3D (xt) and Extended 3D (xv) are 3D-models-only. 49NANO80UNA is LED/NanoCell, non-3D. These actions are included for protocol completeness, not because the device supports them."
- "49NANO80UNA is LED; ISM not supported. Included for protocol completeness."
- "ma format varies by region (Korea/Japan/N.America/Europe) and signal type (analog/digital/cable/satellite). See source pp.9-10 for full encoding table."
- "backlight and panel light share opcode mg; documented as two distinct functions in source."
- "49NANO80UNA is not 3D. Included for protocol completeness."
- "most commands (kd, kg, kh, ki, kj, kk, kl, km, kr, ks, kt, kc, xb, xu, jq, xt, xv, mb, mg) accept FF as query data and return current state in the same ACK format; not enumerated as individual Feedbacks."
- "settable scalar parameters (volume/contrast/brightness/color/tint/sharpness/treble/bass/balance/color_temperature/energy_saving) are exposed as Actions rather than discrete Variables."
- "source does not document unsolicited device-to-host events."
- "source does not document multi-step sequences."
- "source does not contain safety warnings or interlock procedures."
- "Network IP control (Telnet 9761) uses a different command syntax — `KEYWORD value` form (e.g. `VOLUME_MUTE on`, `PICTURE_CONTRAST 50`) — documented in source pp.13-15. Only RS-232C protocol is enumerated in detail above."
- "Power command works in both standby and on-state with RS-232C cable, but only when TV is on with USB-to-Serial converter. Source explicitly notes this asymmetry."

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