[Nut-upsuser] Incorrect Values From usbhid-ups

Charles Lepple clepple at gmail.com
Wed Mar 26 13:22:11 UTC 2014

On Mar 23, 2014, at 11:12 PM, Bill S wrote:

> The output of the driver is below.   The incorrect voltage of 136 is
> shown at 0.265256.  It should match input voltage of 119 as shown at
> 0.265219 but it doesn't.  The voltages displayed on the UPS LCD panel
> information however are equal and match the input voltage provided by
> the driver.  There might be other incorrect values in the usbhid-ups
> output but that is the one that has caught my attention so far.

Unfortunately, there aren't many driver failure modes which would easily explain this value. Typical UPS firmware issues include using the wrong HID Usage code (the "Path:" in the debug output) or using the wrong combination of units and exponent so that the values are off by some power of ten.

We might get a little more insight with a higher debug level (please save the output to a file, and send it to the list as a gzip'd attachment), but that seems to be what the UPS is reporting for that value.

Another possibility is that when the UPS is in a passthrough mode, the driver should just copy the input voltage to the output voltage, and ignore the reported output voltage. I don't think this is how the USB HID PDC standard was intended to work, but it would probably make for a simpler implementation in the UPS. You would need to do a bit of testing to determine if, for instance, the ACPresent bit could be used for this purpose, or if it needs to be combined with other bits. (The UPS.Output.ff010043 path is non-standard, so maybe this would tell us something about this case, too.)

It might be helpful to test with a variac, and ramp the voltage up and down to see which bits change as the UPS goes from battery to boost to passthrough.

Charles Lepple
clepple at gmail

More information about the Nut-upsuser mailing list