[Nut-upsdev] APC protocols and drivers (was: Documenting the NUT driver-qualification process)

Ted Mittelstaedt tedm at mittelstaedt.us
Wed Jul 30 02:40:32 UTC 2014

On 7/29/2014 1:32 PM, Arnaud Quette wrote:
> Hi Ted
> there was a drift from the initial topic.
> worth a new thread!
> 2014-07-27 9:13 GMT+02:00 Ted Mittelstaedt <tedm at mittelstaedt.us
> <mailto:tedm at mittelstaedt.us>>:
>     On 7/26/2014 12:18 PM, Arnaud Quette wrote:
>         Hi Eric,
>         sorry for the lag, summer time...
>         I'm first seconding Charles comments
>         2014-07-09 12:31 GMT+02:00 Eric S. Raymond <esr at thyrsus.com
>         <mailto:esr at thyrsus.com>
>         <mailto:esr at thyrsus.com <mailto:esr at thyrsus.com>>>:
>              I think the time for me to get involved in NUT
>         documentation has come
>              again.
>         welcome back
>              Late last week I had to buy a UPS under time pressure.  The
>         Eaton unit
>              that thus project gifted me with in 2006(?) died during a
>         severe
>              thunderstorm watch, so it was off to MicroCenter to get a
>         replacement
>              pronto.
>              I wound up buying an APC BN700MC.  It was what they had in the
>              performance range I needed.  The removable battery door was
>         pleasing.
>              Based on the experience, I have updated the UPS HOWTO:
>         http://www.catb.org/esr/ldp/UPS-HOWTO.html
>              The bad news, however, is that (a) this is not a
>         NUT-supported device,
>         I've logged an entry for the APC Modbus:
>         https://github.com/networkupstools/nut/issues/139
>              and (b) the (poorly documented) NUT process for discovering and
>              customizing a driver failed at the first step.  Running
>         upsstart
>              gave a driver fail message containing no clues as to how to
>         recover.
>         yup, definitely room for enhancement!
>         I've got some ideas, beside from the obvious need to improve the
>         documentation, that I'll like to discuss.
>              This is definitely USB and probably a fairly generic hidups
>         device.
>              There is no good reason for customizing a driver profile to be
>              so difficult.
>         well, I'm unsure since I'm just opening this "APC Modbus Pandora
>         box"
>         but if I understand correctly, your new unit is a microlink one.
>     MAYBE.
>     HIS UPS is a BackUPS not a SmartUPS.  Originally the APC BackUPS DID NOT
>     SUPPORT any Smart protocol (the original UPSLink protocol)
>     But over the years it's been observed that APC has somewhat "fudged" on
>     the BackUPS UPSes.  Newer ones did appear to implement the UPSlink
>     protocol over USB.
>     Microlink protocol is officially only for APC SmartUPSes.  Officially,
>     what your supposed to get with a BackUPS is dumb signalling only.  But,
>     with the newer BackUPSes that have USB output, some seemed to act like
>     SmartUPSes even though they were not.
>     APC has very much blurred the line on the model BN UPSes.  These are the
>     APC UPSes that look like an oversized power strip.  That's the one
>     that he has.  They seem to have dropped monitoring ports completely
>     on these UPSes that are under 700VA in size.  They used to make
>     monitoring ports
>     on these UPSes all the way down to 350VA.  But the current models,
>     only the 700VA unit like the one he bought, still support the
>     monitoring port.  That port is the special wide RJ45 that has 10
>     conductors not 8.
>     It is selectable between serial and USB depending on what cable is used
>     with it.
>         though the serial version should be Modbus only,
>     There is no "serial only" APC UPS that supports Modbus, in fact no
>     APC smart UPS since the Microlink protocol was implemented has been
>     "serial only", all have been dual-use  Serial and USB.
>         I can't say at first if
>         the USB ones implement if full Modbus over HID or any other mean.
>         I would need traces to give more info.
>     The BackUPSes with USB ports might implement full UPSlink over HID.
>     Or they might implement Microlink over HID
>     Or they might implement nothing like either of that.
>     But they definitely don't implement Modbus.
>     It is best I think to refer to BackUPS and SmartUPS in the
>     documentation.  Please do not refer to APC UPSes in a generic
>     fashion. And please don't assume that any APC BackUPS implements any
>     particular
>     protocol over USB or Serial unless you have directly tested it.  APC
>     BackUPS upses are the "cheap, poor relations" and are for consumers and
>     penny-pinching businesses that are too cheap to spend a couple
>     hundred bucks on decent gear.  Purchasers who want full
>     functionality should be
>     encouraged to buy an APC SmartUPS.
> thanks for these details, still too blurry for the little time I
> currently have!
> my aim there is not to understand APC offering. I don't have time nor
> interest in that!
> my aim is simply to have people happy, which generally means supporting
> their unit, so developing code. period.
> So, if someone (maybe you):
> 1) can clarify APC situation WRT protocols (both serial and USB ;
> microlink / UPSLink / whatever-nameLink)

OK here's the general rule of thumb FOR SMARTUPS ONLY:

APC models with a model # starting with SUA - UPSLink
APC models with a model # starting with SMT - Microlink
APC models with a model # starting with SMT dated 2014
or later - Microlink & Modbus

A firmware update exists that can make SOME Microlink-only into
Microlink & Modbus

Here's the general rule of thumb for BACKUPS:

Backups with Serial Port - dumb signalling.
Backups with Serial & USB port - dumb signalling on serial,
HID UPS signalling on USB

> 2) and has access to unit(s) to provide sniff

I have a number of different APC UPSes.  I can setup a test Linux server 
that you would have root access to with both serial and USB ports 
plugged into whatever version of APC UPS you want to play with.


> I can check to develop some generic code in "blind mode" (no access to
> devices), for modbus or else, that also supports APC.
> cheers,
> Arno

More information about the Nut-upsdev mailing list