Close

Cracked the signal

A project log for Solar inverter datalogger improvements

Reverse engineering of a wireless datalogger for solar micro inverters.

robin-dorstRobin Dorst 10/17/2022 at 13:290 Comments

I managed to decode the signal. The main problem was, I had some of the logic analyzers settings wrong and the signal got inverted. But the lc12s transceivers I ordered finally arrived and I was just able to sniff both the signal from the data box and the inverter with it.

Normally the lc12s can be configured to work on different channels and at different baud rates, but all of solar decided to just stick with the default settings. So after sniffing a few the signals send by the box I found this Pattern:

0x43 0xC0 BoxID BoxID 0x00 0x00 ID ID ID ID 0x00 0x00 0x00 0x00 Checksum

An important note is that both the inverters and the box's id's are already in hex and don't need to be converted.

Also I am not quite sure what the box id is for but I think as long as you are always using the same one it should be fine and is only needed if there are multiple boxes close to each other.

The response from the inverter looks as follows:

0x43 0xC0 BoxID BoxID 00 00 ID ID ID ID XX XX XX 00 XX VDC VDC DC DC VAC VAC AC AC 00 XX XX XX

VDC = Voltage DC

DC = Current on DC side

VAC = Voltage AC

AC = Current on AC side

ID = Inverter id

All places marked with an XX Iam not yet sure what they mean if anything at all.

There are still two parameters missing, the inverter type and the daily/total power generation.

But I have already written some code for the ESP32 to get all the values every Minute and upload them to an influxdb instance running on my Raspberry Pi server. Check it out on my GitHub.

Discussions