Recently I've found a need to program an APC Smart-UPS SC 450VA. Power into a remote office would occasionally blip sending the UPS alarm wailing which was causing some complaining.
Doing some digging I found it is possible to program the conditions that would set the audible alarm off or disable it completely. What I couldn't find was the programming information in a single location. This is my attempt to document all of the steps needed from making your own console cable to the actual programming into a single post.
Here are the sources that have done the hard work.
Console cable:
wejn.org
pinoutguide.com
Protocol/Programming:
networkupstools.org
kirbah.github.io
conetrix.com
The Smart-UPS SC 450 uses a DB9 serial port with a proprietary pinout for a serial console connection.
The console cable can be purchased from APC, or you can make your own for a fraction of the cost. You probably already have a Cisco console cable laying around. I had a Cisco console to USB cable on hand so I only had to purchase a DB-9 male to RJ-45 female adapter from Amazon for ~$5. Using the two sites linked making the cable took a few minutes.
Usual disclaimer that doing this could brick your UPS, so proceed carefully.
The real tricky part is programming. The smart protocol commands are case-sensitive. The websites display the commands with correct case, but it took me longer than it should have to realize I needed to use that correct case. The first resource I found was on networkupstools.org, but while it states some variables are writable it does not actually tell you how to write them. kirbag.github.io provides the steps to start programing a variable, and finally conetrix.com gives the information on how to actually change the variables.
Here is how I changed the alarm delay after connecting to the UPS with PuTTY.
After connecting the terminal screen will be blank so just start typing:
Y - Enable smart mode
1 two second delay 1 - Enter programming mode
k - Alarm delay variable
+ key - Cycle through variable options (0, T, L, N for this example)
k - Verify new variable
R - Exit smart mode
In practice that looks like this:
Replace the k variable with the one you need, and cycle through the states with + or - for your UPS.