Reading Serial data from Solar Inverter for data logging project

Project: Monitor a serial port on my solar inverter and log the data.

I have a solar inverter that has a serial port for monitoring and communication. It's intended to be connected to a laptop and uses some software to communicate over a comm port. I was thinking it would be and ideal project for arduino to have it connected to the serial port of the devivce and either store the data on an SD card or have it send wireless data to a PC elsewhere in the house.

I need some help on where to start with this project. i.e how to start, where to start.

I'm OK when working on the PC side things . I setup a serial port monitor on my PC, This monitors data from comm1 which is connected to the solar inverter. I can see the software (solar brower from samil) sends a start string and the solar inverter then replies and starts sending data to the host.

Here is the first connection data captured from SerialMon
-- captured serial data-----

Device opened by: SolarPower Browser.exe (7044)

Get baudrate: 9600

Get bits: 8N1

Get baudrate: 9600

Get bits: 8N1

Set baudrate: 9600

DTR: On

Set bits: 8N1

T "U" AA 00 00 00 00 00 01 0B "S28124H467" 01 03 "I"
T "U" AA 00 00 00 00 00 04 00 01 03
R 88
R "U"
R AA
R 0
R 0
R 0
R 0
R 0
R 80
R 0A
R "S"
R "2"
R "8"
R "1"
R "2"
R "4"
R "H"
R "4"
R "6"
R "7"
R 3

I basically want to know where to go from here. I.e is the project feasible? how would I setup arduino to start comms with a serial port on the inverter, then how to capture and store the received data.

Yes this looks perfectly feasible.

The above data presumably means something to you, if not you'll have to decode it yourself or find the details elsewhere.

The first thing to do though is to get these bytes into an Arduino, for that you will need to convert the voltage levels from +-12v that RS232 uses to 0-5V that the Arudino uses. You also need to invert the signal.

Luckily for you (and all of us I guess) this can be easily done with one of 100s of chips designed for this purpose, have a look at the MAX232 and friends.

The rest is just programming :slight_smile:


Rob