
(c) APC
Just before you’ll call me an UPS maniac – here’s one more review. My current choice for 1-3 box server setup – APC Smart-UPS 1000VA USB & Serial 230V is not really similar to the SC1000 reviewed by me earlier, as the latter has a somewhat simplified design internally and also the box itself is different (standalone/desktop vs standalone/RM). And the non-SC is a full-sine model, and has a richer LED display.
Overview
This UPS passed all my test scenarios. In short:
- properly indicates OB and LB status (no surprises like Ever)
- shuts down properly on shutdown command and returns OL when power is back (ditto)
- reports accurate charge and runtime values – calibrated and calculated by UPS internally
- acts correctly when anytime between LB (nut forced shutdown action) and load shutdown the power returns (shuts down the load anyway to properly power-cycle your systems)
As I have mentioned in one of my earlier posts, this behaviour is absolutely critical for a serious unattended UPS system, other than just UPS toys for desktops where the user is usually there to do the shutdown and then recover if anything goes wrong.
Connectivity of SUA1000I model at the back plate:
- 8 IEC output sockets
- 1 IEC input socket
- battery contact plug
- USB port
- DB9 female port (not straight RS232)
- management card slot
As you see you have 2 (or 3) options to link this UPS to your nut system:
- USB – works with usbhid-ups driver
- serial – via a 940-0024C cable – works with apcsmart driver
- management card – should work via SNMP (not tested)
USB and serial connectivity (while using the appropriate driver) report a bit differently. While the HID interface is pretty generic, the serial one seems to offer more details and an additional advantage of hacking the UPS using special PROG mode if required (see below). The relevant ups.conf section requires just driver and port lines for valid operation (port=auto for USB), but in my setup I have also set pollinterval/pollfreq to 2 seconds (the former for apcsmart, the latter for usbhid-ups).
For serial connection you need 940-0024C cable. If it does not come in your package, you cna either buy it or build it. The pinout for 940-0024C follows (courtesy NUT documentation):
USB connection
upsc output:
battery.charge: 100 battery.charge.low: 10 battery.charge.warning: 50 battery.mfr.date: 2011/11/15 battery.runtime: 6960 battery.runtime.low: 120 battery.temperature: 23.4 battery.type: PbAc battery.voltage: 27.4 battery.voltage.nominal: 24.0 device.mfr: American Power Conversion device.model: Smart-UPS 1000 device.serial: YS0412121583 device.type: ups driver.name: usbhid-ups driver.parameter.pollfreq: 2 driver.parameter.pollinterval: 2 driver.parameter.port: auto driver.version: 2.6.0-exported driver.version.data: APC HID 0.95 driver.version.internal: 0.35 input.sensitivity: high input.voltage: 244.8 output.voltage: 244.8 output.voltage.nominal: 230.0 ups.beeper.status: enabled ups.delay.shutdown: 20 ups.delay.start: 30 ups.firmware: 600.3.I ups.firmware.aux: 1.5 ups.load: 16.2 ups.mfr: American Power Conversion ups.mfr.date: 2004/03/17 ups.model: Smart-UPS 1000 ups.productid: 0002 ups.serial: YS0412121583 ups.status: OL ups.test.result: No test initiated ups.timer.reboot: -1 ups.timer.shutdown: -1 ups.timer.start: -1 ups.vendorid: 051d
upscmd -l output:
Instant commands supported on UPS [apcusb]: beeper.disable - Disable the UPS beeper beeper.enable - Enable the UPS beeper beeper.mute - Temporarily mute the UPS beeper beeper.off - Obsolete (use beeper.disable or beeper.mute) beeper.on - Obsolete (use beeper.enable) load.off - Turn off the load immediately load.off.delay - Turn off the load with a delay (seconds) load.on - Turn on the load immediately load.on.delay - Turn on the load with a delay (seconds) shutdown.reboot - Shut down the load briefly while rebooting the UPS shutdown.return - Turn off the load and return when power is back shutdown.stayoff - Turn off the load and remain off shutdown.stop - Stop a shutdown in progress test.battery.start.deep - Start a deep battery test test.battery.start.quick - Start a quick battery test test.battery.stop - Stop the battery test test.panel.start - Start testing the UPS panel test.panel.stop - Stop a UPS panel test
upsrw output:
[battery.charge.low] Remaining battery level when UPS switches to LB (percent) Type: STRING Value: 10 [battery.runtime.low] Remaining battery runtime when UPS switches to LB (seconds) Type: STRING Value: 120 [input.sensitivity] Input power sensitivity Type: STRING Value: high [ups.delay.shutdown] Interval to wait after shutdown with delay command (seconds) Type: STRING Value: 20 [ups.delay.start] Interval to wait before (re)starting the load (seconds) Type: STRING Value: 30
The upsc ups.status field – in addition to OL/OB/LB also reports CHRG and DISCHRG sub-states.
Serial connection
upsc output:
battery.alarm.threshold: 0 battery.charge: 100.0 battery.charge.restart: 00 battery.date: 11/15/11 battery.packs: 001 battery.runtime: 7500 battery.runtime.low: 120 battery.voltage: 27.40 battery.voltage.nominal: 024 device.mfr: APC device.model: Smart-UPS 1000 device.serial: YS0412121583( device.type: ups driver.name: apcsmart driver.parameter.pollinterval: 2 driver.parameter.port: /dev/ttyS0 driver.version: 2.6.0-exported driver.version.internal: 2.03 input.frequency: 50.00 input.quality: FF input.sensitivity: H input.transfer.high: 253 input.transfer.low: 208 input.transfer.reason: simulated power failure or UPS test input.voltage: 243.3 input.voltage.maximum: 243.3 input.voltage.minimum: 240.4 output.voltage: 243.3 output.voltage.nominal: 230 ups.delay.shutdown: 090 ups.delay.start: 000 ups.firmware: 600.3.I ups.id: UPS_IDEN ups.load: 014.9 ups.mfr: APC ups.mfr.date: 03/17/04 ups.model: Smart-UPS 1000 ups.serial: YS0412121583( ups.status: OL ups.temperature: 022.5 ups.test.interval: 1209600 ups.test.result: NO
upscmd -l output:
Instant commands supported on UPS [apcserial]: calibrate.start - Start run time calibration calibrate.stop - Stop run time calibration load.off - Turn off the load immediately load.on - Turn on the load immediately shutdown.return - Turn off the load and return when power is back shutdown.stayoff - Turn off the load and remain off test.battery.start - Start a battery test test.battery.stop - Stop the battery test test.failure.start - Start a simulated power failure test.panel.start - Start testing the UPS panel
upsrw output:
[battery.alarm.threshold] Battery alarm threshold Type: ENUM Option: "0" SELECTED Option: "T" Option: "N" [battery.charge.restart] Minimum battery level for restart after power off (percent) Type: ENUM Option: "00" SELECTED Option: "15" Option: "30" Option: "45" Option: "60" Option: "75" Option: "90" [battery.date] Battery change date Type: STRING Value: 11/15/11 [battery.runtime.low] Remaining battery runtime when UPS switches to LB (seconds) Type: ENUM Option: "120" SELECTED Option: "300" Option: "480" Option: "660" Option: "840" Option: "1020" Option: "1200" Option: "1380" [input.sensitivity] Input power sensitivity Type: ENUM Option: "H" SELECTED Option: "M" Option: "L" [input.transfer.high] High voltage transfer point (V) Type: ENUM Option: "253" SELECTED Option: "257" Option: "261" Option: "265" [input.transfer.low] Low voltage transfer point (V) Type: ENUM Option: "208" SELECTED Option: "204" Option: "200" Option: "196" [output.voltage.nominal] Nominal output voltage (V) Type: ENUM Option: "230" SELECTED Option: "240" Option: "220" [ups.delay.shutdown] Interval to wait after shutdown with delay command (seconds) Type: ENUM Option: "090" SELECTED Option: "180" Option: "270" Option: "360" Option: "450" Option: "540" Option: "630" Option: "000" [ups.delay.start] Interval to wait before (re)starting the load (seconds) Type: ENUM Option: "000" SELECTED Option: "060" Option: "120" Option: "180" Option: "240" Option: "300" Option: "360" Option: "420" [ups.id] UPS system identifier Type: STRING Value: UPS_IDEN[ups.test.interval] Interval between self tests (seconds) Type: ENUM Option: "1209600" SELECTED Option: "604800" Option: "0"
In serial connection mode there are no CHRG/DISCHRG sub-states reported, but there are more settings you can change with upsrw.
The PROG mode
If you do not care about losing your warranty and/or accidentally breaking your UPS device, you can enter the programming mode. Caution: you can break your device. You have been warned.
This mode can be useful when you need to change the battery constant. For example when you have replaced your batteries and after calibrating them the data reported still does not seem to make sense. You can also calibrate load measurement, battery voltmeter, input voltage voltmeter, and change other dangerous settings.
To use it connect to the UPS via a serial line 2400 8N1 and SW flow control (minicom is your friend). Send “Y” character. Response: “SM“. Send “1” and again “1” with a 1-2 second gap. Response: “PROG“. You are in programming mode. To change battery constant: Send “0” (zero). Response: current battery constant in hexadecimal format. Use “+” and “–” to change (you will hear the UPS beeper clicking). Fianlly send “R” and the response will be: “BYE“. To confirm your changes send “Y” (response: “SM“) and “0” (zero) (response: battery constant).
Other settings (in former example the “0” was the command):
- B: Calibration of the battery voltmeter
- L: Calibration of line voltmeter
- P: Calibration of load measurement
I calibrated my line voltmeter (it was a bit off) by using a real voltmeter, changing the parameter and observing if my real voltmeter and UPS measurement match. For more information check the excellent APCUPSD manual and this message on monitoring.nut.user.
Operation data
My APC Smart 1000 fully charged was able to support a load of about 43% for 29 minutes. Here’s how it went:

APC Smart 1000 discharge cycle with 43% load
Related articles
- UPS APC Smart SC1000 with NUT / Linux (rootprompt.apatsch.net)
- UPS Orvaldi 1000GE with NUT / Linux (rootprompt.apatsch.net)
- UPS Ever Duo II Pro with NUT / Linux – bad idea (rootprompt.apatsch.net)
1 Response to “APC Smart 1000 (SUA1000I) with NUT / Linux”