How to silence "bad battery" alarm in a APC Back-UPS 550 UPS?

Solution 1:

Download the APC UPS Daemon command line tool and use it to disabled the APC Back-UPS 550 alarm.

Note: This advice is based on software that was last updated in 2016 and I recommended in another answer back in 2020. I know I have successfully used it on macOS back in the “OS X” days in the past but haven’t in years. So hopefully this will work for you.


This only works if you have a data cable that can connect to the APC UPS’s data port from your PC. But if you can, you are in luck! And if you somehow can’t, the alarm is typically just a piezo buzzer connected to the UPS mainboard by a modular 2-3 wire connector. Meaning open up your UPS, find that connector and just literally disconnect it. But software disabling is honestly better since it is not invasive and easy to reverse.

That said, there is a cool command line tool called the APC UPS Daemon that can allow you to control an APC UPS from the command line easily without having to install the official PowerChute GUI software. It’s available for Mac and Windows as precompiled binaries as well as RPMs and Deb packages for Linux in addition to pure source code that you can compile an pretty much any system.

This blog post from 2012 does a decent job of explaining specifically how to use the APC UPS Daemon software to disable alarms. Here is the command line flow once you get the APC UPS Daemon software software installed and apctest is available:

sudo apctest
 
2012-11-18 23:30:50 apctest 3.14.8 (16 January 2010) debian
 Checking configuration ...
 Attached to driver: usb
 sharenet.type = DISABLE
 cable.type = USB_CABLE
 
You are using a USB cable type, so I'm entering USB test mode
 mode.type = USB_UPS
 Setting up the port ...
 Hello, this is the apcupsd Cable Test program.
 This part of apctest is for testing USB UPSes.
 
Getting UPS capabilities...SUCCESS
 
Please select the function you want to perform.
 
1) Test kill UPS power
 2) Perform self-test
 3) Read last self-test result
 4) View/Change battery date
 5) View manufacturing date
 6) View/Change alarm behavior
 7) View/Change sensitivity
 8) View/Change low transfer voltage
 9) View/Change high transfer voltage
 10) Perform battery calibration
 11) Test alarm
 12) View/Change self-test interval
 Q) Quit
 
Select function number: 6
 
Current alarm setting: ENABLED
 Press...
 E to Enable alarms
 D to Disable alarms
 Q to Quit with no changes
 Your choice: Select function: d
 
New alarm setting: DISABLED
 
1) Test kill UPS power
 2) Perform self-test
 3) Read last self-test result
 4) View/Change battery date
 5) View manufacturing date
 6) View/Change alarm behavior
 7) View/Change sensitivity
 8) View/Change low transfer voltage
 9) View/Change high transfer voltage
 10) Perform battery calibration
 11) Test alarm
 12) View/Change self-test interval
 Q) Quit
 
Select function number: 6
 
Current alarm setting: DISABLED
 Press...
 E to Enable alarms
 D to Disable alarms
 Q to Quit with no changes
 Your choice: Select function: q
 
1) Test kill UPS power
 2) Perform self-test
 3) Read last self-test result
 4) View/Change battery date
 5) View manufacturing date
 6) View/Change alarm behavior
 7) View/Change sensitivity
 8) View/Change low transfer voltage
 9) View/Change high transfer voltage
 10) Perform battery calibration
 11) Test alarm
 12) View/Change self-test interval
 Q) Quit
 
Select function number: q
 
2012-11-18 23:32:59 End apctest.

Note that if you get an error like this when running sudo apctest:

apctest FATAL ERROR in apctest.c at line 313
Unable to create UPS lock file.
  If apcupsd or apctest is already running,
  please stop it and run this program again.
apctest error termination completed

It means that the apcupsd (APC UPS daemon) is active and running. You need to stop the apcupsd process to run apctest. How to do that depends on what OS — and what method you used — to install it.

On a Linux system simply running sudo service apcupsd stop or outright killing the process with the PID via a command like kill -TERM [PID] should be enough to stop the process.

More extensive details on usage and debugging of apctest can be found here at the University of Waterloo’s Wiki page on acupsd or in this blog post.