APC's smart protocol tested for APC SmartUPS 600 from 1990 REV-5 APCC 901 640-0901

Character Meaning Typical results Other info Return value in quotes or Status without quotes
^A Model string SMART-UPS 700 Spotty support for this query on older models Not tested
^N Turn on UPS n/a Send twice with > 1.5s delay between chars

Only on 3rd gen SmartUPS and Black Back-UPS Pros

Not tested
^Z Capability string (long string) See "Capabilities" section for more info Not tested
A Front panel test Light show + "OK" Also sounds the beeper for 2 seconds Works
B Battery voltage 27.87 This obviously varies a lot based on the current charge.

Compare this to the nominal battery voltage

Works
C Internal temperature 036.0 Units are degrees C Works
D Runtime calibration !, then $ Runs until battery is below 25% (35% for Matrix)

This updates the 'j' values - only works at 100% battery charge

Can be aborted with a second "D"

Not tested
E Automatic selftest intervals 336 Writable variable

Values:

  • 336 (14 days)
  • 168 (7 days)
  • ON (at power on) (note extra space)
  • OFF (never)
Returns only 'OK'
F Line frequency, Hz 60.00 If this varies much, have a word with your local electrician Works ('50.00'Hz here, Europe/Germany)
G Cause of transfer O Writable variable

Values:

  • R (unacceptable utility voltage rate of change)
  • H (high utility voltage)
  • L (low utility voltage)
  • T (line voltage notch or spike)
  • O (no transfers yet since turnon)
  • S (transfer due to U command or activation of UPS test)
Not tested
I Measure-UPS
Alarm enable
FF (not yet decoded)(bitmapped table, coming soon) Returns nothing
J Measure-UPS
Alarm status
0F,00 (not yet decoded)(bitmapped table, coming soon) Returns nothing
K Shutdown with grace period OK Send twice with > 1.5s delay between chars

Older units may send "*" instead of "OK"

Also see grace period

Not tested
L Input line voltage 118.3 Does not necessarily read 000.0 on line failure Works
M Maximum line voltage 118.9 This is the max voltage since the last time this query was run Works
N Minimum line voltage 118.9 Like the one above, this one also resets itself on every query Works
O Output voltage 118.3 Also see on battery output voltage Works
P Power load % 023.5 Relative to the capacity of the UPS Works
Q Status flags 08 See status flags section for more info Works (Only '08' and '10' tested)
R Turn dumb BYE Only on 3rd gen Smart-UPS, Smart-UPS v/s, Back-UPS Pro

UPS must receive command to enter smart mode continue communications after sending this

Returns nothing
S Soft shutdown OK Command executes after grace period

UPS goes online when power returns

Only works when on battery

Works (just tested with the default value, nothing has been written by me)
U Simulate power failure !, then $ See async notifier section for info on ! and $ Works (Received 'OK' only)
V Firmware revision GWD Can be used to determine abilities of hardware '6FI'
W Self test OK Tests battery, like pushing the test button on the front panel

Also see test results entry

Works (Received Nothing)
X Self-test results OK Values:
  • OK - good battery
  • BT - failed due to insufficient capacity
  • NG - failed due to overload
  • NO - no results available (no test performed in last 5 minutes)
Works Only 'OK' tested)
Y Enter smart mode SM This must be sent before anything else on this page will work.

Also see turn dumb command to exit smart mode

Works
Z Shutdown immediately n/a Send twice with > 1.5s delay between chars

UPS switches the load off immediately (no grace period)

Works
a Protocol info (long string) Returns three main sections: Sections are separated with a period Works 'D1' (no long string)
b Firmware revision 50.9.D Decoding above info:
  • 50 = SKU (variable length)
  • 9 = firmware revision
  • D = country code (used in capability decoding)
Works? 'CF'
c UPS local id UPS_IDEN Writable variable

Up to 8 letter identifier for keeping track of your hardware

Works? 'D1'
e Return threshold 00 Writable variable

Minimum battery charge % to return from shutdown after power returns

Values:

  • 00 = 0% (UPS switches on immediately)
  • 01 = 15%
  • 02 = 25%
  • 03 = 90%

This prevents excessive cycling during multiple power failures

Not tested
g Nominal battery voltage 024 The battery voltage that's expected to be present in the UPS normally

Compare to the actual voltage reading

Nothing received
f Battery level 099.0 Percentage

It's much easier to use this rather than doing math on the current battery voltage and the nominal battery voltage

Nothing received
h Measure-UPS
Ambient humidity
042.4 Percentage

Only works on models with the Measure-UPS SmartSlot card

Nothing received (I assume wrong UPS)
i Measure-UPS
Dry contacts
00 Bitmapped hex variable

Component values:

  • 10 = contact 1
  • 20 = contact 2
  • 40 = contact 3
  • 80 = contact 4
Nothing received
j Estimated runtime 0327: Minutes

Must be calibrated to be effective

Nothing Received
k Alarm delay 0 Writable variable

Values:

  • 0 = 5 second delay after power failure
  • T = 30 second delay
  • L = alarm at low battery only
  • N = alarm disabled

Does not affect low battery warning

Not tested
l Low transfer voltage 103 Writable variable

See capabilities to get values for a UPS

UPS goes on battery after voltage drops below this point

Not tested
m Manufacturing date 11/29/96 Format may vary by country (MM/DD/YY vs DD/MM/YY) Nothing received
n Serial number WS9643050926 Unique for each UPS Nothing Received
o On-battery voltage 115 May be a writable variable on 220/230/240 VAC units Nothing received
p Shutdown grace delay 020 Writable variable - seconds

See capabilities to read values

Sets the delay before soft shutdown completes

Not tested
q Low battery warning 02 Writable variable - minutes

See capabilities to read values

The UPS will report a low battery this many minutes before it runs out of power

Not tested
r Wakeup delay 000 Writable variable - seconds

See capabilities to read values

The UPS will wait this many seconds after reaching the minimum charge before returning online

Not tested
s Sensitivity H Writable variable

See capabilities to read values

Meaning of values:

  • H - highest
  • M - medium
  • L - lowest
  • A - autoadjust (Matrix only)
Not tested
u Upper transfer voltage 132 Writable variable

See capabilities to read values

UPS goes on battery after voltage rises above this poiont

Not tested
v Measure-UPS
Firmware
4Kx Firmware information for Measure-UPS board Not tested
t Measure-UPS
Ambient temperature
80.5 Degrees C

Only works on models with the Measure-UPS SmartSlot card

Nothing received (I assume wrong UPS)
x Last battery change 11/29/96 Writable variable

This holds whatever the user sets in it, much like the UPS local id variable

Not tested
y Copyright notice (C) APCC Only works if firmware letter is later than O Nothing received
z Reset to factory settings CLEAR Resets most variables to initial factory values except identity or battery change date

Not on SmartUPS v/s or BackUPS Pro

Nothing received
- Capability cycle (various) Cycle through possible capability values

UPS sends | afterward to confirm change to PROM

Not tested
@nnn Shutdown and return OK UPS shuts down after grace period with delayed wakeup after nnn tenths of an hour plus any wakeup delay time

Some older models send * instead of OK

Not tested
0x7f Abort shutdown OK Abort shutdown - use to abort @, S, K

Also known as the delete key in some places

Not tested
~ Register #1 n/a See register 1 table Not tested
' Register #2 n/a See register 2 table Not tested
7 Dip switch positions n/a See dip switch table

Only makes sense on models which actually have dip switches

Not tested
8 Register #3 n/a See register 3 table Not tested
9 Line quality FF Values
  • 00 - unacceptable
  • FF - acceptable
Works
> Battery packs n/a SmartCell models: returns number of connected packs

Non-SmartCell models: returns number set by user (use + and -)

Not tested
[ Measure-UPS
Upper temp limit
NO,NO Degrees C
Writable variable
Values: 55,50,45,...,05 for both
Use - to enumerate through left side, + to enumerate through right side
Not tested
] Measure-UPS
Lower temp limit
NO,NO Degrees C
Writeable variable
See 'lower temp limit' above
Not tested
{ Measure-UPS
Upper humidity limit
NO,NO %
Writable variable
Values: 90,80,70,...,10 for both
Use - and + to change values
Not tested
} Measure-UPS
Lower humidity limit
NO,NO %
Writable variable
Values: 90,80,70,...,10 for both
Use - and + to change values
Not tested
Matrix-UPS and Symmetra commands
^ Run in bypass mode n/a If online, "BYP" response is received as bypass mode starts

If already in bypass, "INV" is received and UPS goes online

If UPS can't transfer, "ERR" received

< Number of bad battery packs 000 Returns count of bad packs connected to the UPS
/ Load current n/a True RMS load current drawn by UPS
\ Apparent load power n/a Output load as percentage of full rated load
^V Output voltage selection n/a Writable variable

Values:

  • A - Automatic (based on input tap)
  • M - 208 VAC
  • I - 240 VAC
^L Front panel language n/a Writable variable

Values:

  • E - English
  • F - French
  • G - German
  • S - Spanish

Also 1, 2, 3, 4 - unknown

w Run time conservation n/a Writable variable

Values:

  • NO - disabled
  • 02 - leave 2 minutes of runtime in battery
  • 05 - leave 5 minutes
  • 08 - leave 8 minutes

Dip switch information

Bit Switch Option when bit=1
0 4 Low battery alarm changed from 2 to 5 mins. Autostartup disabled on SU370ci and 400
1 3 Audible alarm delayed 30 seconds
2 2 Output transfer set to 115 VAC (from 120 VAC) or to 240 VAC (from 230 VAC)
3 1 UPS desensitized - input voltage range expanded
4-7 - Unused at this time

Status flags

Some common things you'll see:
BitMeaning
01 = runtime calibration occurring
Not reported by Smart UPS v/s and BackUPS Pro
11 = SmartTrim
Not reported by 1st and 2nd generation SmartUPS models
21 = SmartBoost
31 = on line
41 = on battery
51 = overloaded output
61 = battery low
71 = replace battery

Alert messages

CharacterDescription
! Line Fail - sent when the UPS goes on-battery, repeated every 30 seconds until low battery condition reached. Sometimes occurs more than once in the first 30 seconds.
$ Return from line fail - UPS back on line power, only sent if a ! has been sent.
% Low battery - Sent to indicate low battery, but not on SmartUPS v/s or BackUPS Pro models
+ Return from low battery - Sent when the battery has been recharged to some level only if a % has been sent previously
? Abnormal condition - sent for conditions such as "shutdown due to overload" or "shutdown due to low battery capacity". Also occurs within 10 minutes of turnon.
= Return from abnormal condition - Sent when the UPS returns from an abnormal condition where ? was sent, but not a turn-on. Not implemented on SmartUPS v/s or BackUPS Pro models.
* About to turn off - Sent when the UPS is about to switch off the load. No commands are processed after this character is sent. Not implemented on SmartUPS v/s, BackUPS Pro, or 3rd generation SmartUPS models.
# Replace battery - Sent when the UPS detects that the battery needs to be replaced. Sent every 5 hours until a new battery test is run or the UPS is shut off. Not implemented on SmartUPS v/s or BackUPS Pro models.
& Check alarm register for fault (Measure-UPS) - sent to signal that temp or humidity out of set limits. Also sent when one of the contact closures changes states. Sent every 2 minutes, stops when the alarm conditions are reset. Only sent for alarms enabled with I. Cause of alarm may be determined with J. Not on SmartUPS v/s or BackUPS Pro.
| Variable change in EEPROM - Sent whenever any EEPROM variable is changed. Only supported on Matrix UPS and 3rd generation SmartUPS models.

Register 1

All bits are valid on the Matrix UPS. SmartUPS models only support bits 6 and 7. Other models do not respond.

Bit Meaning
0 In wakeup mode (typically lasts < 2s)
1 In bypass mode due to internal fault - see register 2 or 3
2 Going to bypass mode due to command
3 In bypass mode due to command
4 Returning from bypass mode
5 In bypass mode due to manual bypass control
6 Ready to power load on user command
7 Ready to power load on user command or return of line power

Register 2

Matrix UPS models report bits 0-5. SmartUPS models only support bits 4 and 6. SmartUPS v/s and BackUPS Pro report bits 4, 6, 7. Unused bits are set to 0. Other models do not respond.

Bit Meaning
0 Fan failure in electronics, UPS in bypass
1 Fan failure in isolation unit
2 Bypass supply failure
3 Output voltage select failure, UPS in bypass
4 DC imbalance, UPS in bypass
5 Command sent to stop bypass with no battery connected - UPS still in bypass
6 Relay fault in SmartTrim or SmartBoost
7 Bad output voltage

Register 3

All bits are valid on the Matrix UPS and 3rd generation SmartUPS models. SmartUPS v/s and BackUPS Pro models report bits 0-5. All others report 0-4. State change of bits 1,2,5,6,7 are reported asynchronously with ? and = messages.

Bit Meaning
0 Output unpowered due to shutdown by low battery
1 Unable to transfer to battery due to overload
2 Main relay malfunction - UPS turned off
3 In sleep mode from @ (maybe others)
4 In shutdown mode from S
5 Battery charger failure
6 Bypass relay malfunction
7 Normal operating temperature exceeded

Capabilities

Upon sending a ^Z, your UPS will probably spit back something like this (truncated here for the example):

#uD43132135138129uM43229234239224uA43110112114108 ....

It looks bizarre and ugly, but is easily parsed. The # is some kind of marker/ident character. Skip it. The rest fits this form:

Then it's followed by the choices, and it starts over.

Matrix-UPS models have ## between each grouping for some reason.

Acknowledgements

Large parts of this data were contributed or corrected by Steven Freed. This guy is some sort of APC UPS god. Many thanks.
Valid HTML 4.01!