PVmon - Monitoring a Grid-Tied Solar Inverter with a Palm PDA
For the first year of operation, I walked over to the inverter to manually record readings from the local display. Our inverter did have an RS-232 serial interface, so there was hope for collecting the data automatically. The manufacturer's preferred solution required me to buy another piece of hardware, which would then upload the data to a centralized website. While it would have been nice to have the data accessible to me anywhere on the Internet, this solution required that a computer be attached and powered on. And besides, I was too cheap to buy the extra module.
There was an obsolete, stand-alone program to monitor the inverter, but this was never updated to read everything properly from my model. Also, I would have liked the computer to wake up just once a day (“Wake on Alarm”), append the readings to a file, then turn itself off. Unfortunately, the program was designed with the assumption that the computer would always be running.
It was late summer, and our family was going on vacation. Apart from asking a friend to come over every day to take readings, how could I get the inverter data? I threw together a quick Java program (REALLY rushed, completed the day we left), and used the Windows Task Scheduler to make it run once a day. Even though it was running on a laptop, I was still disappointed with the energy consumption required to take the simple reading.
When we got back from vacation, I had more time to think about the task. Thus, was the PVmon program born.
Theory of Operation - Hardware
Below is a picture of my setup. One of the older Palm PDA's is used, the kind that still has a serial port. I got it at a flea market for $10, which included a Serial Hotsync cable (shown below), and a separate charging cable (not shown). At the top left of the picture is the straight-through (“modem cable”) connection from the inverter. This is what would normally plug into the serial port on the back of a computer. Since both the PDA and Inverter are designed to connect to a computer, we need a null modem adapter to connect them to each other. The one below was built from junk parts I got from a flea market, but such adapters can be found on eBay or the Internet for a dollar or two.
Not only did our inverter use the modem control lines for handshake, it also drew power from them. Therefore, I had to make sure all the wires were connected in the null modem adapter. This might not have been necessary with some other inverter.
I later got a cradle/charger for the PDA ($3 on eBay) – that way, it can stay continuously charged while communicating with the inverter. However, the running program draws so little power, that the battery could provide weeks of operation, anyway.
Theory of Operation – Software
The PVmon program sends commands to the inverter over the serial link, and the inverter responds with data. One set of data (including such things as Power, Voltage, Current, and Temperature) is called a sample. When a sample is taken, the information is displayed on the screen with a time stamp, as well as appended to a log file. The log file is in PalmDoc format, so it can easily be viewed and edited on the PDA, or uploaded as a plain text file (comma-separated values) to a computer for further processing.
Here is a sample of what the log file looks like:
Power kWH,Utility RMS Voltage,PV RMS Current,PV DC In Voltage,Power
If the single button is tapped, a single sample is taken immediately.
The Start/Restart button initiates continuous sampling. In this mode, the next sample is scheduled according to a selected interval (from 1 second to a number of days). The PDA can then be turned off, either by the power button, or by allowing it to time out and go to sleep naturally. When the proper time arrives, the program will wake up and take the sample. When PVmon wakes up in this fashion, it does not bother to turn on the display nor the backlight. Because of this, if samples are taken only infrequently (say, once an hour), power dissipation is very low.
To stop sampling, tap the stop button. Tapping the single button will take one final sample, and stop. And of course, exiting the program (switching to another application) will stop sampling.
The PalmDoc format used for the log file has a limit of 64k records, and each sample consumes one record. This means that if the sampling interval is set to 1 second, only about 18 hours of data can be gathered. If the sample interval is set to 2 hours, about 15 years of data can be gathered, which is probably longer than the life of the inverter. I personally have the sample interval set to 1 hour, but will probably set it to 1 day after I get tired of looking at all the data.
It is possible to store MUCH more information in the log file by putting more than one sample in a record (about 70 samples will fit), or by going to a VFS file system on flash. But there's no pressing need to do so at this time.
If you REALLY want to know how the program works, the source is below. It's GNU public licensed (GPL), so you can even create a derivative if you want.
Solar energy is my passion; I would be honored to try to create a version of PVmon to work with your inverter, as long as you have the specifications on how to communicate with it over RS-232. Just email me.
The version below is customized for a PV Powered PVP2800-XV inverter, but I make no warranty on the accuracy of the readings, as PV Powered would not provide me with a spec, and I had to guess at the protocol.
Download: pvm1_11.zip (PVmon 1.1 Palm Application for PV Powered PVP2800XV, 9k)
Download: pvm1_11_source.zip (PVmon 1.1 Source code, 35k)
Download: pvm2_12.zip (Pvm2 1.2 Palm Application for Xantrex XBM, 7k)
Download: pvm3_10.zip (Pvm3 1.0, Palm Application for Solectria PVI3000 - PVI7500, 9k)
Contact: roderick.young9lycos.com (change the '9' to '@')
Back to Main Page