Unknown fan and swing mode errors with LG S09EQR using ESPHome lg-controller module
Hello,
I’m using the ESPHome lg-controller module with an LG S09EQR air conditioner. The hardware is assembled on a breadboard following the project schematic, with the LIN driver TJA1027T.
The ESP module successfully connects to the AC unit — when the ESP is disconnected, the AC shows CH03 error (no wired remote). When reconnected, the error disappears, indicating the module is detected. However, the AC does not respond to commands sent by the module. Here is the relevant log snippet:
[19:06:56][D][lg-controller:1358]: update [19:07:08][E][lg-controller:750]: unknown fan mode, using Medium [19:07:08][E][lg-controller:774]: unknown swing mode [19:07:08][D][lg-controller:853]: sending A8.22.00.00.00.00.16.20.40.00.80.00.95 (13) [19:07:14][D][lg-controller:950]: received A8.22.00.00.00.00.16.20.40.00.80.00.95 (13) [19:07:14][D][lg-controller:966]: verified send [19:07:32][E][lg-controller:750]: unknown fan mode, using Medium [19:07:32][E][lg-controller:774]: unknown swing mode
It seems the fan mode and swing mode returned by the AC are unknown to the module, which falls back to defaults and prevents proper command execution. Could you please advise on how to handle this model or update the firmware to support these modes correctly? Thanks in advance!
[19:19:02][D][lg-controller:1358]: update [19:19:02][D][lg-controller:950]: received A8.22.00.00.00.00.16.20.40.00.80.00.95 (13) [19:19:02][D][lg-controller:966]: verified send [19:19:08][D][lg-controller:1358]: update [19:19:12][D][climate:011]: 'LG Bed Room' - Setting [19:19:12][D][climate:040]: Target Temperature: 24.00 [19:19:12][D][climate:396]: 'LG Bed Room' - Sending state: [19:19:12][D][climate:399]: Mode: COOL [19:19:12][D][climate:416]: Swing Mode: UNKNOWN [19:19:12][D][climate:419]: Current Temperature: 26.00°C [19:19:12][D][climate:425]: Target Temperature: 24.00°C [19:19:14][D][lg-controller:1358]: update [19:19:15][E][lg-controller:750]: unknown fan mode, using Medium [19:19:15][E][lg-controller:774]: unknown swing mode [19:19:15][D][lg-controller:853]: sending A8.23.00.00.00.00.19.20.40.00.80.00.91 (13) [19:19:20][D][lg-controller:1358]: update [19:19:20][D][lg-controller:950]: received A8.23.00.00.00.00.19.20.40.00.80.00.91 (13) [19:19:20][D][lg-controller:966]: verified send [19:19:21][E][lg-controller:876]: Unexpected missing previous CA/AA message [19:19:21][D][esp32.preferences:114]: Saving 1 preferences to flash... [19:19:21][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed [19:19:26][D][lg-controller:1358]: update [19:19:32][D][lg-controller:1358]: update
Does the controller actually receive messages from the AC? These messages would start with C8 instead of A8. In the snippets you posted it's just the controller sending things.
Does the controller actually receive messages from the AC?
Is it possible to check this somehow through logging? Or only with an oscilloscope? ))
I thought that the line: "[19:19:20][D][lg-controller:950]: received A8.23.00.00.00.00.19.20.40.00.80.00.91 (13)" is the packet sent by the air conditioner) But is this just the remaining contents of the buffer after sending the data packet to the air conditioner?
I suspect that the R5 1 kOhm resistor should still be replaced with something with higher resistance. I should try 10 kOhm...
I also noticed this fact: the air conditioner stops cooling (the external unit of the air conditioner switches off) if the ESP electronic board is connected to it. That is, the air conditioner continues to operate simply in fan mode. If I disconnect the ESP board, the air conditioner switches off with the CH03 error. Then the error can only be reset by disconnecting the air conditioner.
I thought that the line: "[19:19:20][D][lg-controller:950]: received A8.23.00.00.00.00.19.20.40.00.80.00.91 (13)" is the packet sent by the air conditioner) But is this just the remaining contents of the buffer after sending the data packet to the air conditioner?
That's from the controller (it receives its own messages too). For messages from the AC it should say something like "received C8...."
Replaced R5 with 10 kOhm. Nothing changed in the logs.
Это от контроллера (он тоже получает свои сообщения). Для сообщений от AC он должен сказать что-то вроде "получил C8...."
I did some investigation using my basic oscilloscope. As I suspected, the signal levels on the LIN bus differ significantly depending on the transmission direction. This is due to the different hardware logic at each end of the line.
In the first oscilloscope screenshot, we see transmission from the ESP to the LG unit. The TJA1027 transceiver correctly pulls the line low (the signal levels look fine and expected).
In the second oscilloscope screenshot, we see transmission from the LG unit to the ESP. Here, the line is not pulled low enough, which seems to be the result of the voltage divider (1 kΩ and 12 kΩ resistors). It’s worth noting that the measurements were taken after replacing the 1 kΩ resistor with a 10 kΩ one — meaning that with 1 kΩ, the situation was even worse.
Next, I probed the Rx pin on the ESP. Surprisingly, there was a valid signal, despite the voltage level issues on the LIN bus. Interestingly, this signal repeats every 24 seconds. If I remember correctly, older LG A/C units send this kind of data every 30 seconds?
So based on all this, I suspect that LG may have changed the protocol used between the air conditioner and the wired remote in newer models. Alternatively, in my LG S09EQR, the manufacturer not only left the CN_REMO connector and the nearby components unpopulated (I installed these components myself, according to the schematic from the LG service manual), but also changed something in the firmware. Still, it's important to remember that the air conditioner shows a CH03 error when the ESP is disconnected, and clears the error once the ESP is connected back. So, the logic for handling signals from the wired remote is present in the air conditioner's firmware.