Prolink UPS Modbus/Serial Interface

Foreword

This is a work in progress, but I wanted to post in case someone else is looking to do something similar and it saves some time reverse-engineering in the interface.

Caution: It looks like the UART interface isn't isolated on the UPS mainboard, rather on the USB communications board, which we are bypassing. This *may* mean that there is a risk of dangerous voltages being present on the UART interface.


Many (most?) prosumer Prolink UPS models include a USB port for management, but the Viewpower software they come with is a little clunky.

When connected via USB, the UPS enumerates as a USB HID device, but internally, the communication board at the back just has a UART interface to the main UPS control/inverter board. I soldered some wires to bring the interface out, and after a bit of poking around, I was able to query the UPS from Realterm. The interface runs at 2400 8N1, and has a simple command set that I'm planning to duplicate on an Arduino. The Arduino will then act as a Modbus RTU device, allowing the UPS to be monitored from a Modbus RTU master.


Command Set

When the Viewpower software sends "QS" followed by a carriage return, the UPS answers with a series of values including the input voltage, output voltage, and line voltage.

Wires soldered on to UART interface on the UPS USB communications card