WP-34S: Battery Level - some questions


I was fooling around with benchmarking different operations on the WP-34S and ran into some problems:

1) The timings were fluctuating significantly. I was using the ticks function and have a working crystal, so this was surprising. I set the fast mode but it had no perceivable effect.

2) Occasionally, the calculator would just turn itself off in the midst of running the benchmark loop. There seemed no rhyme or reason to it.

I suspected the battery level, but it was showing 2.9 whenever I checked it.

Because I was using the tick function to terminate the test after a certain time, I was not watching the calculator closely during the tests, but when I started noticing these issues, I started watching and realized that during the test, the battery annunciator would flicker on and off. Only during running the benchmark loop - it was never on otherwise. This confirmed my suspicion that it could be the batteries. I checked the level repeatedly, in between every loop, but it was a rock solid 2.9

So, I removed the batteries and clipped on an external battery pack with two new D cells. And started rerunning the tests.

Now, not only were the results very consistent, but they were also much faster between 30% and 70% faster, depending on the test. The calculator never turned itself off.

So, I guess the issue was my batteries, but this led me to some questions:

1) The level never showed less than 2.9 when I tested it. Yet, when running the program the battery annunciator would flicker on and off. I assume that means that the level was dropping below some threshold during execution. What is that threshold and is it normal for the voltage to drop that significantly while executing?

2) How accurate is the level indicator?

3) Is there anyway of telling if the calculator is executing in fast or slow mode because of battery level?

4) When the calculator turns itself off during execution of a program - could that be because of a voltage level (even though when I turned it back on the level showed as 2.9 again). What is that threshold? Is there any value left in memory that would indicate why the calculator turned itself off?


While running a program, the WP 34S draws more current. There is loss of voltage in the batteries from an increase in ionic resistance under a pulse discharge. This can be enough to drop the WP 34S out of fast mode--even though the batteries have a good voltage when measured without a load. Check out Dave Jone's EEVBlog starting about 18 minutes in (watch the whole thing-its worth it).

Mark Hardman


Here are two defines from main.c:

SUPC_BOD stands for "Supply Controller Brown Out Detector" which is the part of the device used to detect the current battery voltage level. To detect the actual voltage the firmware adjusts the SUPC_BOD to varying thresholds and checks if it detects a "brown out" situation, i. e. the actual battery level is below the threshold". When the voltage goes below 2.2V the device is turned off. At 2.5V the low voltage annunciator is turned on and the maximum speed is reduced to SLOW mode.

It looks like your batteries have developed a high internal resistance which makes the voltage drop if current is high. Maximum speed draws more than 40mA from the batteries which may cause the behavior you noticed.


Out of curiosity, do different types of computation draw different levels of current?

When the firmware is adjusting the brown out threshold to determine the battery level, is it drawing as much current as a program when its running?

I noticed that the BATT function returns right away. Could it do some dummy calculations for second or two to create a spike in power draw and then probe the battery to get a more accurate idea of the state of the batteries?


Just embed BATT in a program to see the voltage level under load. It might be necessary to let the program run for a while. Don't use PSE with a nonzero argument to display the value because this puts the calculator into a low power mode while it's waiting for the time to elapse. VIEW is a better choice.

Edited: 16 Sept 2013, 2:52 p.m.


Quite informative. Thanks for the link!

Possibly Related Threads...
Thread Author Replies Views Last Post
  Four-Level RPN and the Real World Matt Agajanian 14 3,065 12-13-2013, 03:57 PM
Last Post: Manolo Sobrino
  [WP-34S] Unfortunate key damage with update to V3 :( svisvanatha 5 1,465 12-10-2013, 11:37 PM
Last Post: Les Bell
  WP-34S (Emulator Program Load/Save) Barry Mead 1 807 12-09-2013, 05:29 PM
Last Post: Marcus von Cube, Germany
  DIY HP 30b WP 34s serial flash/programming cable Richard Wahl 2 1,155 12-04-2013, 11:14 AM
Last Post: Barry Mead
  WP 34S/43 ?'s Richard Berler 3 1,007 11-10-2013, 02:27 AM
Last Post: Walter B
  My FrankenCulator (wp-34s) FORTIN Pascal 4 1,054 11-09-2013, 06:18 PM
Last Post: FORTIN Pascal
  WP 34S Owner's Handbook Walter B 5 1,319 11-09-2013, 05:34 PM
Last Post: Harald
  wp 34s overlay and programming. FORTIN Pascal 6 1,451 11-08-2013, 01:28 PM
Last Post: Nick_S
  m.dy in display of WP-34S Harold A Climer 3 905 11-05-2013, 11:28 AM
Last Post: Andrew Nikitin
  WP 34s : An old problem coming back Miguel Toro 2 817 11-05-2013, 03:00 AM
Last Post: Marcus von Cube, Germany

Forum Jump: