Jaguar: Portrait of Xena
Valid HTML 4.01 Transitional

Acer Aspire 5, A515-54-51DJ (2019)
Hacking

Jim Carter, 2019-10-06

Table of Contents

Power Measurements

I would like to re-run benchmark tests on my own machines, both the old and new laptops.

PassMark seems widely used in product reviews, and it looks like it tests the CPU's speed doing a collection of relevant tasks. But it runs on Windows only and is not free: $29 for a single user license. But there is a package from the same company called BurninTest Linux for $95.

I looked at several N Best Benchmark Suites articles to see what was available. One suite, that I've used before, is Phoronix Test Suite by Michael Larabel and Matthew Tippett. It is a very comprehensive suite of both synthetic (low level) and application tests (complete programs including games), but the problem is, nobody runs the complete suite, which would be too arduous, and they choose different tests, so comparing between reports is not really possible. It also takes a fair amount of learning to get it set up and running, and to understand what to expect from the various tests.

I also tried out some of the other benchmark suites which I wasn't familiar with, but all of them had limitations or issues that kept them from really fulfilling my needs.

I'm thinking over what I want to do, and there are actually two branches to this: first, to compare the speed of the new laptop with the old one and others of my machines, and second, to put a high but consistent load on the machine to test battery life. For comparisons I have my own simple benchmark which does SHA-512 sums of a lot of files, plus it tests I/O speed by catting files to /dev/null (taking the buffer cache into account). This benchmark is unsophisticated and does not differentiate various aspects of the CPU architecture, nor does it test graphics at all, but within its limitations I think it will be sufficient to give me an idea of the capabilities of the new laptop.

Acer uses light web browsing as their battery benchmark task, and they claim that the A515-54-51DJ can do it for 11 hours. This I have to see. This kind of benchmark also matches my typical workload: a lot of staring at the screen and reading documentation on the web, interspersed with more intense jobs like compilations for which I don't want to have to wait around, but which are a minority part of the energy drain.

I now have written my own suite of test scripts. In all cases the screen is at normal brightness as I normally use it, i.e. the default values, and DPMS is turned off so the screen will stay on (xset -dpms; +dpms to restore).

Summary of battery life test results. The tests were done currently, i.e. when the new laptop was just received and the old one was about 3.7 years old and the battery capacity was down to about 63% of new. Run times in hours.

Test E5-573G (Old) A515-54-51D1 (New)
CPUpig 1.1 hr 1.5 hr
Slideshow 3.6 hr 6.2 hr
Movie 2.6 hr 5.1 hr

Detailed results for the old laptop (tested currently):

Recharging

Most power measurements were made with a Kill-a-Watt meter on the plug, including power converter inefficiencies. Where noted, the instantaneous or average power was inferred from the battery's voltage, charge and/or current.

In the first recorded test, the battery had about 70% charge. Line power was 24W with CPU off, 47W during boot. 16.3V, current 0.669A, charge 1.06Ahr, charging took 90 min or 1.5hr. Recharging after complete battery drain: 135min or 2.25hr.

Battery state: when the battery voltage is 17.3V, the upower daemon considers it to be fully charged, and the charging current is under 100ma. The criterion for starting the test (on the old laptop) is that the charging current will be 100ma or less. When you switch to discharging, the voltage will drop to around 16.97V.

The battery in the old laptop has a charge_full_design of 2.50 Ahr and charge_now (when fully charged) of 1.59 Ahr (63%). This battery is about 3.7 years old, explaining the decreased capacity.

Preliminary fixups with cpupig.sh

Command line arguments for running the test:
eatbattery.sh -e cpupig.sh -p hibernate -L "Battery Rundown: cpupig" >& ../doc/cpupig.out &

When the machine is idle, screen on, and fully charged, CPU temp was 42C and line power was 9W; 8W was seen another time.

The first attempt of cpupig.sh ran for 2002 sec (33min). On line power: 23W; measured by a Kill-a-Watt meter on the plug, including power converter inefficiencies. On battery: power 20W ± 0.6W by multiplying the reported voltage and current out of the battery, with different and fewer inefficiencies included. That's why the line and battery powers differ. CPU temp 94C. Stopped when battery voltage went below voltage_min_design (14.80V) plus 0.05V, which is way too high. This is going to have to be fixed.

Per this article on BatteryUniversity.com, for a classic lithium cobalt oxide cell the nominal cell voltage is 3.6V; this is the open circuit voltage when the cell is half charged. The voltage of a discharged cell is 2.8V to 3.0V; discharging more than this can damage the battery. The maximum voltage is 4.2V; during charging, when the voltage reaches this level the charger should switch to a constant voltage mode. If the chemistry is tweaked, the halfway and maximum voltages can be increased slightly. The lithium iron phosphate chemistry has a half voltage of 3.2V or 3.3V (and correspondingly lower maximum, which is not stated).

Lithium ion (cobalt oxide) batteries (on Wikipedia). All these values are volts per cell.

On the old laptop the voltage_min_design is 14.80V, or 3.70V per cell, which is bogus! I'm changing to a fixed minimum of 12.0V. Yeah, sure. An unknown daemon, probably upowerd, made the machine suspend to disc (successfully resumed). The last report gives 13.62V (3.40V/cell), 1.44A, 19.54W, 0.57Ahr (3%). At 50% of elapsed time the voltage was 14.71V or 3.678V/cell and the ending voltage per cell was 0.28V lower. It was 0.28V higher (15.83V for 4 cells) at 223sec (3.7min) into the test, so the unknown daemon picked a reasonable lower limit on voltage, allowing some charge to remain for hibernation. I'm going to raise the test program's cutoff, but it will be below the unknown daemon's limit, letting the daemon suspend to disc.

cpupig.sh (successful test)

This test ran for 3895 secs, 65 mins. The voltage halfway through was 14.74V (3.68V/cell), current 1.38A, power 19.7W ± 0.7W. Voltage when it was killed was 13.62V (3.40V/cell).

slideshow.sh

Command line for this test:
eatbattery.sh -e slideshow.sh -p hibernate -l "Battery Rundown: Slideshow" >& ../doc/slideshow.out &

The test ran 12909sec = 215min = 3.6hr. After 900sec (15min), voltage 16.6V, current 0.38A, power 6.2W. CPU temperature 40C. After 2626 sec, the average dc/dt (derivative of charge) is 1.192e-4 Ahr/sec = 0.429A. Every 15 secs a picture is displayed, and sampling intervals are important, whether the increased load for rendering the picture gets into the sampling interval. This is actually seen in the current history as well. With 1.240Ahr remaining, the remaining time estimated from dc/dt is 10403sec = 2.88hr. This goes only 2min past the actual stopping time.

Ending voltage was 13.60V (3.40V/cell); voltage 50% through was 15.05V (3.76V/cell).

movie.sh

Command line for this test:
eatbattery.sh -e movie.sh -p poweroff -l "Battery Rundown: Movie" >& ../doc/movie.out &

It ran for 9503 sec (158min, 2.6hr), repeating the movie 16 times. Power was a little variable, 8.6W ±0.5W. Ending voltage was 13.60V (3.40V/cell); voltage 50% through was 15.13V (3.78V/cell).

Detailed results for the new laptop:

Battery Conditioning

Command line: eatbattery.sh -e cpupig.sh -p hibernate -L "Battery Rundown: cpupig" >& $j/cpupig-1.out &

First run: cpupig ran for 6024sec (1.67hr), running the battery from 3.108Ahr (100%) to 0.258Ahr (8%). The voltage was 16.734V (starting), 14.605V (50%), 13.574V (8%). All cores were over 70% used (due to hyperthread it's not clear what this means), The CPU temperature was up to 62C (compare to 94C for the old laptop).

Charging the battery afterward: 20:09 0.49Ahr; 21:08 1.610Ah; 21:39 2.418Ahr; 22:09 2.978Ahr, 17.17V (16.84V while discharging).

I discharged and recharged the battery a total of 3 times. The need to do this on modern batteries may be an urban legend, but I have the test program to do this without a lot of work, and I want to avoid uncertainty about how representative the test conditions were.

cpupig.sh

Command line for this test:
./eatbattery.sh -e cpupig.sh -p hibernate -L "Battery rundown: cpupig" |& tee ../doc/cpupig.new.out

It ran for 5219sec (90min, 1.5hr). Power was around 27W. Starting voltage was 16.778V (4.19V/cell); 50% through was 14.551V (3.63V/cell); ended at 4% charge, 13.517V (3.38V/cell).

slideshow.sh

Command line for this test:
eatbattery.sh -e slideshow.sh -p hibernate -l "Battery Rundown: Slideshow" >& ../doc/slideshow.new.out &

It ran for 22229sec (370min, 6.2hr), almost twice what the old laptop did. As seen on the old laptop, the instantaneous power varies a lot depending on whether it was rendering a photo at the time of measurement. The average power was computed as starting charge*voltage minus ending charge*voltage, divided by time in hours. (The raw data has charge in amp-hours/10000, should be 1000, sorry.) it came out to 8.48W. Starting voltage was 16.915V (4.23V/cell); 50% through was 15.201V (3.80V/cell); and with 4% left it was 13.261V (3.32V/cell.

Acer uses light web browsing as their battery life test, claiming 11hr on this test. Very likely their test conditions were different from mine. Speculative differences are: screen brightness at 50%; shorter and/or text-only pages; more time between page views. Also Windows may be able to do power management tricks specific to this model, that Linux doesn't know about.

movie.sh

Command line for this test:
eatbattery.sh -e movie.sh -p hibernate -l "Battery Rundown: Movie" >& ../doc/movie.new.out &

Due to some network problems, I played a local copy of the movie whereas the old laptop played it off a local HTTP server. This should not have affected the power significantly.

It ran for 18454sec (307min, 5.1hr), almost twice the run time of the old laptop. Power was variable, 8.73W to 9.68W. Starting voltage was 16.885V (4.22V/cell), 50% through was 15.048V (3.76V/cell), and with 2% left it was 13.547V (3.39V/cell). These voltages were almost identical to the old laptop.

Power use in various activities; powers in watts at the plug. The values for both laptops were when they were first purchased.

Activity E5-573G (Old) A515-54-51D1 (New)
Charging, machine off 22W 28W
Windows, idle, screen 90% 11W --
Windows playing Big Buck Bunny 13W --
Linux idle, screen off 12W 5W - 3W
Linux idle, screen on 15W 12W - 8W
Linux, all cores loaded (cpupig) -- 32W (varies, 25W..42W)
Linux playing Big Buck Bunny (GStreamer/VLC) 18W 9.2W
Linux, light web browsing -- 8.5W
Linux playing OpenArena 1st person shooter game 33W --
memtest86+ SMP mode, all cores 24W --
1 memory stick, suspend to RAM 0.42W 0.41W
2 memory sticks, suspend to RAM 0.65W --

For battery charging, including when suspended to RAM, the A515-54 (new) appears to follow a policy like this: a constant current is fed into the battery until its voltage reaches an upper bound, Then that voltage is maintained on the battery until the current drops below a cutoff, believed to be about 100mA, and then it turns off charging until the battery voltage declines to another cutoff, which one source suggests is 4.05V/cell (16.20V), but I can't figure out how to measure it.

The power in S3 (suspend to RAM) was measured by recording the battery charge times voltage, then suspending the machine overnight without AC power, and measuring (without power) the charge times voltage the next morning. Mind the units and scale factors; the charge is reported in micro amp hours while the voltage is in microvolts. If you convert the charge times volts to joules, and divide by the elapsed time in seconds, you get the average power in watts. A full battery could keep the machine in S3 for 118hr (4.9 days).

Fingerprint Reader

(Work in progress) **UPDATE

Jaguar: Portrait of Xena