Current version: 1.3.0 · Read the release notes
An unofficial, fully local replacement for the discontinued LG A/C Smart Diagnosis Android app.
Listen to the diagnosis tones from an LG air conditioner with an iPhone or computer, verify the LG packet, and see the result in a clean one-page website. No account, cloud upload, telemetry, or internet connection is required after setup.
- Requests microphone permission when the website opens.
- Uses one large Start listening button.
- Finds LG's acoustic sync signal and stops automatically after the complete packet.
- Corrects the acoustic bitstream with LG's recursive FEC method.
- Accepts a result only after LG's CRC matches.
- Shows temperatures, mode, fan command, compressor state/frequency, current, voltages, fan speed, and EEV pulses.
- Decodes existing PCM WAV files with Upload recording.
- Saves the original WAV and a PNG result screenshot together.
- Displays a desktop QR code for opening the website on an iPhone.
- Works entirely on the local network.
The decoder has been verified with real recordings from an LG RS-Q19ENZE (2023 split AC), including recordings made close to the indoor unit and from farther away.
The website displays the exact values carried by the validated LG packet. For example, input current is transmitted in 0.1 A steps, so 2.0 A is the exact packet value but not a hidden hundredths-level measurement.
Other LG models may use compatible packets, but they have not all been physically tested. Please open an issue with a recording and model number if you test another model.
- Windows 10 or Windows 11
- Python 3.11 or newer from python.org
- The computer and iPhone connected to the same private Wi-Fi network
- Download this repository and extract it.
- Open PowerShell inside the extracted folder.
- Run:
powershell -ExecutionPolicy Bypass -File .\start.ps1The first run creates a private Python environment, installs the pinned dependencies, and creates a local HTTPS certificate. Later runs reuse those files.
The terminal prints two addresses:
PC: https://localhost:8443
iPhone: https://<your-computer-LAN-IP>:8443
Keep the PowerShell window open while using the website. If Windows Firewall asks, allow access on Private networks only.
iPhone microphone access requires HTTPS. The project creates its own local certificate authority so the audio never needs a public web server.
- Start the project once so the
certsfolder is created. - Open a second PowerShell window in the project folder.
- Run:
powershell -ExecutionPolicy Bypass -File .\scripts\serve_ca.ps1- On the iPhone, open the printed
http://<LAN-IP>:8080/lg-ac-local-ca.ceraddress in Safari. - Allow the profile download.
- Open Settings → General → VPN & Device Management and install the profile.
- Open Settings → General → About → Certificate Trust Settings and enable full trust for LG AC Local CA.
- Stop the temporary certificate server with
Ctrl+C. - Open the desktop website and scan its iPhone QR code.
The private CA key remains inside the ignored local certs folder and is never included in this repository. If the computer's LAN IP changes, rerun scripts\setup_https.ps1 and restart the server.
- Put the indoor unit into LG Smart Diagnosis/service diagnosis mode according to its manual.
- Open the website on the iPhone and allow microphone access.
- Tap Start listening.
- Start the AC diagnosis tones.
- Keep the phone near the indoor unit until the website stops automatically.
- Review the CRC-verified result.
- Tap Save result to store the original audio and result screenshot on the PC.
You can also tap Upload recording and select an existing PCM WAV file. Uploaded WAV bytes are preserved unchanged.
The default Windows folder is:
Documents\LG AC DIGNOSIS LOCALWEBSITE\DAIGNOES HISTORY\
└─ YYYY-MM-DD\
└─ hh-mm-ss AM or PM\
├─ Original Audio.wav
└─ Result Screenshot.png
Every save receives its own AM/PM time folder. If two saves happen during the same second, the later folders receive (2), (3), and so on.
Open settings.json in Notepad. Its default content is:
{
"save_folder": ""
}An empty value uses the default Documents history folder. To choose another location, enter an absolute path and use doubled backslashes:
{
"save_folder": "D:\\LG AC Diagnosis History"
}Save the file and restart start.ps1. The application creates the folder automatically.
Advanced users can temporarily override the setting in PowerShell:
$env:LG_AC_SAVE_DIR = 'D:\LG AC Diagnosis History'
.\start.ps1The LG_AC_SAVE_DIR environment variable takes priority over settings.json.
.\.venv\Scripts\python.exe -m pip install -r requirements-dev.txt
.\.venv\Scripts\python.exe -m pytest -qThe test suite covers CRC, recursive FEC, audio synthesis/decoding, API persistence, exact uploaded-audio preservation, and same-second history folder handling.
Python 3 is required:
./scripts/setup_https.sh
./start.shThe website and decoder are cross-platform, although the supplied iPhone certificate-installation steps and save-folder examples focus on Windows.
backend/ FastAPI server, streaming capture, persistence, QR generation
decoder/ LG packet, FEC, CRC, thermistor, and audio decoder
frontend/ One-page microphone/upload/result website
scripts/ Local HTTPS certificate setup and CA bootstrap helpers
tests/ Decoder and API verification
docs/ Protocol notes, research notes, and repository images
settings.json User-editable diagnosis history location
The repository deliberately excludes generated certificates/private keys, recordings, saved results, APK files, decompiled app evidence, virtual environments, and local reports.
- 8-FSK acoustic symbols
- 4-symbol packet synchronization
- Recursive systematic convolutional decoding with
0x13feedback and0x1Dparity - Four terminating bits
- Native LG CRC validation
- Fixed user and service packet lengths
See the acoustic protocol notes for the detailed signal and packet model.
- Audio and results remain on the computer and local network.
- There are no cloud requests, accounts, analytics, or telemetry.
- Do not port-forward ports
8443or8080to the internet. - Use the temporary port
8080certificate server only for installing the public CA certificate, then stop it. - Keep the generated
certsfolder private. - On shared Wi-Fi, set the optional
LG_AC_PINenvironment variable before starting the server.
This is an independent community project and is not affiliated with or endorsed by LG Electronics. LG and product names are trademarks of their respective owners. Use it as a diagnostic aid, not as a substitute for qualified electrical or refrigeration service.
MIT License. You may use, copy, modify, and share the source code. See LICENSE.

