[HCL] <Santak> <MT*-PRO / Castle C*K> PARTIALLY supported by <blazer_ser> #1039
Labels
DDL
documentation-protocol
Submitted vendor-provided or user-discovered protocol information, or similar data (measurements...)
Eaton
HCL
Qx protocol driver
Driver based on Megatec Q<number> such as new nutdrv_qx, or obsoleted blazer and some others
Background
Santak is a Chinese company focused on manufacturing UPSes. They have some strange but close relationship with the world-famous brand Eaton. Almost all their UPSes are equipped with an RS232 communication port with an extended version of the classic
Blazer (Q1)
communication protocol.Testing with
blazer_ser
I have a Castle C1K on hand, which is an online ("double conversion") UPS with two built-in 12V batteries and 1kVA output capacity. I can make it work by using
blazer_ser
driver:Most thing works. The battery voltage reports 2.28 because the Castle C*K series it reports the battery voltage as the multiplier of voltage of single piece of battery (2.28 * 12V = 27.36V), unlike the MT*-PRO series that reports the voltage directly. This can be solved by setting flag
in theory, but seems like it does not work:
Further commands
Q6
by reverse engineeringSantak provided a companion software written in Java to use with their product called WinPower. It has almost everything we need on the display panel, including estimated battery percentage, estimated remain time and so on. I have contacted Santak to ask for a copy of the communication protocol document, but they require me to apply as an enterprise and sign a copy of NDA. So official support is not feasible. Thus, I decided to decompile the application in an attempt to seek for something useful.
I would say this first, that the process is definitely not easy. The decompiled class file that contains logic about processing serial port communication and parse for the response is 700KB in size, and every field in response has a magic number as an identifier. Luckily after analyzing with serial port packet capture, I found the most interesting query command:
Q6
. It has the same request and response format asQ1
, just differences in response fields. I made some notes about each field, but pay attention that I was not able to understand some of them, and others might not actually being used.Example
I tried to look through the code of
blazer_ser
but programming in C is still a little difficult for me. Hope someone would add this query (maybe as an extension toblazer_ser
, something likeprotocol = santak
) to the driver sometime.The text was updated successfully, but these errors were encountered: