Upgrade APC UPS with larger batteries
Jake G August 24, 2022 #Hardware #Modding #ConfigurationI was given an older APC Smart UPS 1500, the batteries were dead, bulging, and leaking. I planned to run 2 desktop computers, a file server, cable modem, router, wifi access point, and a lamp off of the UPS and I wanted them to be able to stay up for more than a few minutes.
NOTE: This is a log of what I have done, it is not meant to be instructional! I cannot be held responsible for anything that happens as a result of using the information on this page. Lots of things can go wrong, you could break your UPS, blow up your house in a hydrogen explosion, your UPS could catch fire and burn your house down (Fires from UPSes and Battery Charges are actually VERY COMMON!), you could even die.
I could have bought the same small capacity batteries it calls for but instead I used two deepcycle batteries in series (24 volts). It is not as simple as simply wiring them up. If the replacement batteries are not sealed batteries then you have to keep the batteries outdoors in a ventillated battery box (explosive hydrogen gas!). The float charge voltage has to be adjusted in the UPS, for flooded lead acid batteries I like a float charge of 13.2 volts per battery, this offers a looooong life for the batteries with very infrequent watering. You also have to make some adjustments to increase the runtime.
I used a linux pc with the minicom program, the serial cable I used is 940-0024D
, it is possible to make these cables yourself.
I attached the serial com cable, installed minicom, and configured the connection parameters.
enter the following then save and exit (for computers with a single com port /dev/ttyS0 should be correct):
/dev/ttyS0
port 2400
baudrate 8
bits N
parity 1
stopbits No
rtscts
Now connect to the APC terminal:
press escape to close the menu, you should now be connected.
Console | Notes |
---|---|
press shift+y should see sm | enables the console. |
press shift+b | shows the current voltage |
press 1 wait a second, press 1 should see PROG | enters programming mode |
press shift+b | to edit the float voltage |
press shift++ until you see FF | sets the float voltage to the lowest setting |
check both batteries are below 13.2 volts. | Check with physical voltmeter that batteries are below are desired float voltage |
press shift+b | to edit the float voltage |
press - until battery voltage is 13.2 volts. | slowly increment while monitoring a physical voltmeter hooked to battery |
press ENTER then UP until you see OK | saves the config |
press shift+y should see sm | enables the console. |
press shift+> | to edit the external batteries variable. |
press shift++ until you see 9 | 9 provides plenty of runtime, adjust as needed. |
press ENTER then UP until you see OK | saves the config |
To exit minicom press ctrl+a, then x, then select exit and press enter.
On Windows:
- use APC powerchute to disable audible alerts
- use APCFIX to correct the battery constant to lengthen runtime
On Linux:
- use APCUPSD to monitor the UPS and perform actions under certain UPS conditions.
More info regarding software:
There is a windows program called APC powerchute. All I used powerchute for was to turn off the audible alerts, I just want it to do its job without beeping, if your fairly close to it you can hear the relay flip without the need for the annoying beep sounds.
APC UPS keeps track of the state of the battery (even the old one you just replaced.) What it does is when the battery gets low on voltage faster than the estimated run time, it shortens the runtime to prolongue the life of the battery, for the tiny built in batteries this is a good thing. What you really want to do is reset this value, it is known as the battery constant, there is probably a way to adjust this value in the programming console, but instead I used a windows program called APCFIX It has the ability to detect your UPS model automatically and adjust this value for you. (NOTE: if you previously installed APC powerchute/client you will need to open Windows services.msc and stop the APC related service before running apcfix)
Lastly use a USB cable to attach the UPS to one of your linux boxes or raspberry PIs (preferrably something you keep powered on during an outage), then you can install APCUPSD which will report the status of the UPS as well as give you the ability to run scripts such as shutting down certain machines (via ssh scripts, etc). APCUPSD is a topic all on its own that I will cover separately.
My UPS sits right next to my file server, router, modem, wifi access point. The batteries are just on the other side of the wall (outside in a battery box) This allows the power leads from the batteries to the UPS to be fairly short which is good when dealing with DC power. I used about 6ft per lead of #4 copper THHN 19 strand wire. I also have a fuse right at the positive terminal of the battery that leads to the UPS, I sized the fuse according to the wire size that I used.
I have been using my UPS like this since 2019, it has seen me through more than a few power outages, generally if the power is out more than 10 minutes I shut down the two desktop computers, but keep everything else up for wifi on my mobile devices and the lamp for light.
I am only just now posting this because I recently did this to another APC UPS unit for a friend and I found myself wishing I had kept better notes the first time I did this!