MPP Solar PIP-1012-MSE interfacingApril 2022
Recently I purchased a PIP-1012-MSE solar inverter from MPP Solar. It is a 1kW, 12v inverter with integrated MPPT solar charger. This allows me to run 230v appliances from solar/battery and automatically switch to grid power when solar power is unavailable.
There appear to be a number of similar models on eBay. These generally have an IEC mains input, terminal block AC output, terminal block PV and battery inputs along the bottom of the unit and USB and serial (RJ-45) ports on the side of the unit. It isn't clear to me which model is the original, and at the time of writing I haven't had this unit operational for long, so it remains to be seen if they are reliable.
I wanted to be able to pull operational data from this unit via serial, so that I could feed it in to MRTG and similar tools. Initially, I tried connecting using the USB port, which appeared in Linux as a USB HID device (0665:5161). The HID driver had claimed this, but another website suggested that the cypress_m8 kernel driver would be more suitable. Unfortunately, I was unable to get the Cypress driver to claim this, so I reverted to a pure serial connection using the supplied DB9 to RJ-45 cable.
After some searching, I found a document listing the command set for another solar inverter (copied here in case that link stops working). This document suggested connection via serial at 2400-8-N-1, as opposed to the supplier's documentation, which listed 19200-8-N-1. The former was the correct setting.
Once connected, the command format is command<checksum>\r where <checksum> is the CRC16 checksum of the command. For example, for the command QPIGS, you would send QPIGS\xb7\xa9\r.
Below is some example code that will send the given command to the unit and get the response.