I don’t think the cheapest APC Back-UPS units can be monitored except in Windows

TL;DR: Despite otherwise seeming to work correctly, I can’t monitor a Back-UPS BX1600MI in Linux without seeing a constant stream of spurious battery detach/reattach and power fail/restore events that last less than 2 seconds each. I’ve tried multiple computers and multiple UPSes of that model. It doesn’t happen in their own proprietary Windows software, so I think they’ve changed the protocol.

Apart from nearly two decades ago when I was given one for free, I’ve never bothered with a UPS at home. Our power grid is very reliable. Looking at availability information from “uptimed“, my home file server has been powered on for 99.97% of the time in the last 14 years. That includes time spent moving house and a day when the house power was off for several hours while the kitchen was refitted!

However, in December 2023 a fault with our electric oven popped the breaker for the sockets causing everything to be harshly powered off. My fileserver took it badly and one drive died. That wasn’t a huge issue as it has a redundant filesystem, but I didn’t like it.

I decided I could afford to treat myself to a relatively cheap UPS.

I did some research and read some reviews of the APC Back-UPS range, their cheapest offering. Many people were dismissive calling them cheap pieces of crap with flimsy plastic construction and batteries that are not regarded as user-replaceable. But there was no indication that such a model would not work, and I felt it hard to justify paying a lot here.

I found YouTube videos of the procedure that a technician would go through to replace the battery in 3 to 5 years. To do it yourself voids your warranty, but your warranty is done after 3 years anyway. It looked pretty doable even for a hardware-avoidant person like myself.

It’s important to me that the UPS can be monitored by a Linux computer. The entire point here is that the computer detects when the battery is near to exhausted and gracefully powers itself down. There are two main options on Linux for this: apcupsd and Network UPS Tools (“nut“).

Looking at the Back-UPS BX1600MI model, it has a USB port for monitoring and says it can be monitored with APC’s own Powerchute Serial Shutdown Windows software. There’s an entry in nut‘s hardware compatibility list for “Back-UPS (USB)” of “supported, based on publicly available protocol”. I made the order.

The UPS worked as expected in terms of being an uninterruptible power supply. It was hopeless trying to talk to it with nut though. nut just kept saying it was losing communications.

I tried apcupsd instead. This stayed connected, but it showed a continuous stream of battery detach/reattach and power fail/restore events each lasting less than 2 seconds. Normally on a power fail you’d expect a visual and audible alert on the UPS itself and I wasn’t getting any of that, but I don’t know if that’s because they were real events that were just too brief.

I contacted APC support but they were very quick to tell me that they did not support any other software but their own Windows-only Powerchute Serial Shutdown (PCSS).

I then asked about this on the apcupsd mailing list. The first response:

“Something’s wrong with your UPS, most likely the battery is bad, but since you say the UPS is brand new, just get it replaced.”

As this thing was brand new I wasn’t going to go through a warranty claim with APC. I just contacted the vendor and told them I thought it was faulty and I wanted to return it. They actually offered to send me another one in advance and me send back the one I had, so I went for that.

In the mean time I found time to install Windows 10 in a virtual machine and pass through USB to it. Guess what? No spurious events in PCSS on Windows. It detected expected events when I yanked the power etc. I had no evidence that the UPS was in any way faulty. You can probably see what is coming.

The replacement UPS (of the same model) behaved exactly the same: spurious events. This just seems to be what the APC Back-UPS does on non-Windows.

Returning to my thread on the apcupsd mailing list, I asked again if there was actually anyone out there who had one of these working with non-Windows. The only substantive response I’ve got so far is:

“BX are the El Cheapo plastic craps, worst of all, not even the BExx0 family is such a crap – Schneider’s direct response to all the chinese craps flooding the markets […] no sane person would buy these things, but, well, here we are.”

So as far as I am aware, the Back-UPS models cannot currently be monitored from non-Windows. That will have to be my working theory unless someone who has it working with non-Windows contacts me to let me know I am wrong, which I would be interested to know about. I feel like I’ve done all that I can to find such people, by asking on the mailing list for the software that is meant for monitoring APC UPSes on Unix.

After talking all this over with the vendor they’ve recommended a Riello NPW 1.5kVA which is listed as fully supported by nut. They are taking the APC units back for a full refund; the Riello is about £30 more expensive.

9 thoughts on “I don’t think the cheapest APC Back-UPS units can be monitored except in Windows

  1. I have very old (15+ years) chinese UPS (branded Ippon, it is big name in Russia) which works perfectly (with QX protocol), and new one (about 2 years old) from same brend which flickers an unusable wis nut…

    Looks like it is some common theme for cheap UPSes now.

  2. My solution, for a Cyberpower vp1200eilcd was a udev rule to turn off auto suspend when connected. Mine also had constant disconnects before:

    SUBSYSTEM==”usb”, ATTR{idVendor}==”0764″, ATTR{idProduct}==”0501″, GROUP=”nut”, ATTR{power/autosuspend}=”-1″

    1. Hmm, that’s interesting!

      $ cat /sys/bus/usb/devices/4-5/power/autosuspend

      I’ll give that a go, thanks.

      $ echo ‘-1’ | sudo tee /sys/bus/usb/devices/4-5/power/autosuspend
      $ cat /sys/bus/usb/devices/4-5/power/autosuspend


      Nope, doesn’t help:

      2024-02-24T20:44:55.040442+00:00 specialbrew systemd[1]: Started UPS power management daemon.
      2024-02-24T20:46:51.756684+00:00 specialbrew apcupsd[23281]: Battery disconnected.
      2024-02-24T20:46:52.725564+00:00 specialbrew apcupsd[23281]: Battery reattached.

    1. When I looked it up in nut’s hardware compat list it said in yellow with three out of five stars, “based on publicly available protocol”. I foolishly thought this would be good enough. Hopefully by talking about it, nobody else will make the same mistake as me.

  3. FWIW, BX1200MI works for me on Linux with apcupsd without any issues. apcaccess reports firmware 294201G -302201G.

    1. That’s interesting! I’ve uninstalled apcupsd everywhere now and am using nut. I can’t seem to find a way to show UPS firmware from nut. I do still have the APC as I don’t think it’s totally a lost cause.

      I would say that the other person on the apcupsd mailing list who said they were seeing the same said that they had working BX1600MI before and it’s only the newer replacements that are behaving this way, while still being the same model number.

      Also here is someone with a BX1200MI who is seeing the same thing too: https://github.com/networkupstools/nut/issues/2347#issuecomment-1976005631

      I would have some concern about replacing your BX1200MI in case the same thing starts happening to you.

      1. Yeah, I bought it a couple of years ago, in 2021.

        > I can’t seem to find a way to show UPS firmware from nut.

        dmesg also shows the firmware version on connect.

Leave a Reply

Your email address will not be published. Required fields are marked *