Li-Ion powered WP34s


In the spirit of tinkering, I purchased another HP30B and added a Li-ion battery. The battery is a 400mAH li-po rescued from a first generation Apple iPod nano that was headed to the trash. I designed a simple circuit that contains a li-ion charger and a low dropout 3.3V linear regulator, built on to a small circuit board that fits neatly into a slot in the rear cover.

The case required some small modifications. I put the battery directly behind the LCD display. In the 30B there is a small metal plate behind the display. Under the plate is a "honeycomb" of plastic which I had to cut away to make room for the cell. It only took a few minutes with a sharp pair of diagonal cutters.

I took the DC power supply and round connector from an old cell phone. I got a little sloppy in cutting the hole for the connector, but it doesn't look terrible. After I took this picture, I added a small LED next to the connector as a charge indicator.

The capacity of the new li-ion cell is a close match to the pair of CR2032 that are normally used in the calculator. As the battery voltage drops below about 3.5V the output of the regulator will begin to drop. When the battery is nearly depleted it should trigger a low batt condition on the calculator. The regulator contains a low battery detection circuit, but it simply provides a low signal on a pin. The WP34S would have to be programmed to acccept this and act accordingly.

The charging circuit will allow this to be plugged in at all times, just like my HP45 with no battery :)

There is still a chance that if left uncharged long enough that the li-ion cell may be damaged from over-discharge. A fully discharged li-ion cell is about 2.7V, which would present about 2.5V to the calculator, low enough to trigger a low-batt alert. Also, the charger has a "soft start" charge for extremely low cell voltages to prevent damage.

I would like to replace the round power connector with a small USB connector, which would allow charging from any number of USB devices and adapters I have laying around.

Here is a picture of the inside of the modified calc (minus the charge LED).


You may want to consider a different battery. The first-generation Nano was recently recalled due to a possible (though rare) fire hazard.


Now that is interesting! I have been working on something very similar. I haven't got any pictures yet. I am still waiting for the PCBs, and probably won't get them before my holiday. So it is not very likely that I will post any updates on this before May.

My solution is a mini or micro USB connector that would provide the power for recharging the battery as well as connecting the WP34s to the PC for communication and re-flashing. There will be 3 versions of this. One including the Li-Ion handling, one without that and just the USB, and one external PCB to fit into the original HP flash-cable to convert it from RS232 to USB.

But lets talk about the li-ion version. As far as I know the voltage should never drop below 3V to avoid damage to the cell. In order to achieve that, I have designed a little circuit that disconnets the battery when it falls below 3V, drawing only a few nA from the battery. I also plan on using one of the CR2032 as a memmory backup, so no data is lost when the li-ion disconnects itself.

The charging is simply done by a voltage and current limiting circuit.

I quite like your idea of putting the battery under the display (I was going to take one of the CR2032s out and use the space there). How do you make sure the display is still held in place? Maybe it is possible to only partially cut out the display support.

It is interesting how different people have similar ideas :)



The battery fits the spot behind the display perfectly. The thickness of the cell is just greater than the vertical plastic supports you can see in the picture. It holds the back of the LCD in place very nicely. Here's a picture of the back of the case after clearing space for the battery. You can see where I cut away the matrix of plastic spacers:

These batteries are readily available as replacements for the iPod Nano. You can get them on Ebay (and other places I'm sure) for about $5US shipped. Considering the space available and the price, I think they are a very good choice.

How does your charger work? Are you using an integrated solution or are you using discrete components? Also, what are you using for a regulator? The calculator doesn't want to see anything above 3.6V.

I was under the impression that although the available capacity does not decrease substantially if you cut off the discharge at 3V, that Sanyo and other manufacturers consider the end-discharge voltage 2.7V. With the regulator I use that would be about 2.5V to the calculator. At such low discharge currents, I don't expect cell damage unless the cell drops below 2V.

I have a few spare PC boards and I'd be happy to send you one if you want to play with this design too.

Do keep us informed as to your progress. I'd love to see the USB version in action.

Mike M.


Hi Mike,

sounds like I should consider using a bigger battery. I went for this one: as it has a thickness of only 1.5mm and would fit between the calculator PCB and the housing.

For the charging circuit I am using a resistor that limits the charging current to the battery to roughly 20mA and a shunt regulator that clamps at 4.1V. This means the battery won't get up to 100% charge, but avoids the very tight tolerance that would need to be observed at 4.2V. As I said before, I also disconnect the battery when the voltage drops below 3V. The calculator is powered via a diode, which means the supply voltage ranges from 2.4V to 3.5V. This should make the calculator turn itself off before the battery disconnects itself, and the upper limit 3.5V should also not be a problem for the ARM processor. One of the CR2032 will be connected via a diode too, so it will only power the calculator for memory backup when the li-po is disconnected. The voltage will also be too low for the calculator to run, so the user will know he needs to recharge.

All this is only true if everything goes to plan of course :)


We can surely talk about updating the threshold values of the power management routines in WP 34S. The current values are 2.5V for "low" and 2.1V for "off". The later is meant to prevent a total RAM loss. Since WP 34S has a means of making a backup of RAM to flash so that's probably not the biggest problem.

Adding a monitoring of an external pin to indicate a low power situation is certainly possible, there are unused I/O pins available on the board.

To Harald: If you implant USB you should consider making ERASE and RESET functions available. They might be controlled by the serial handshake lines. It shouldn't be hard to make the functions available as soft buttons on the flash tool.


To Harald: If you implant USB you should consider making ERASE and RESET functions available. They might be controlled by the serial handshake lines. It shouldn't be hard to make the functions available as soft buttons on the flash tool.

I have thought about having buttons for reset and erase, but didn't go for that because I didn't know where to put them. And since reset is available anyway and erase is needed only once, I thought that would be OK. But if there is a way to make them soft buttons, that would be perfect! I just don't know enough about USB, so I am not sure how to do that. I am using this chip FTDI, it does have some configurable pins, that might be used for that purpose. I will look into it and would be grateful for suggestions :)


The FTDI chip or similar is what I would have suggested. The pins to connect are all available on the pads of the pogo connector. The SDK contains the necessary schematics.


The FTDI chip or similar is what I would have suggested. The pins to connect are all available on the pads of the pogo connector. The SDK contains the necessary schematics.

That is not what I meant, the connection on the calculator is easy. It is the generating of the signals via USB that I don't knwo how to do. Can you help with that?


The pins need to be connected to some standard handshake lines in a way that plugging the cable in does not do any harm (reset or erase). It should then be possible to program them from the application. If this isn't easily possible with the standard UART driver there is still the device specific driver FTDI provides. It needs special programming. If the driver can coexist with the standard UART driver this would be the best solution. The pins were then programmed as GPIO pins, not as handshake lines. There is a nice program from FTDI (MProg) which allows to change the characteristics of the chip. It's even possible to rename the device to your liking, such as "WP 34S".


OK, I'll have a look at it when I get the PCBs. It is probably best if I contact you then, because I am still not sure on how the software side might work and which pins on the device would be best with respect to easy software implementation.
I really like the idea of this, because it means we could do away with the whole process of resetting and erasing, as this could be done automatically when starting the flash process.


I really like the idea of this, because it means we could do away with the whole process of resetting and erasing, as this could be done automatically when starting the flash process.

Erasing probably only when needed...


There were many compromises in the design of this circuit. The two integrated circuits I used were SOIC packages. These were the smallest pitch parts that I could comfortably solder. I sized the board to fit at the top of the case, between the two screw posts. However, I couldn't easily get a power connector to fit on the board. I relocated the board below the battery and that left room to add a larger power connector.

I had initially considered adding a USB to serial adapter, but decided to keep things simpler. The chip you mentioned is a SSOP, and the pins are much too small (0.25mm) for my shaky hands. Even adding the two resistors needed for low battery detection proved to be a problem in the available space. Keep in mind that the design required a good sized ground-pour to act as a heat-sink.

Edited: 1 Apr 2012, 2:59 p.m.


The soldering doens't scare me - I have done smaller stuff. The ground pour might be something to consider with your "large" 400mAh battery. I was planing on using a 60mAh one. The low charge current results in less than 100mW of losses - so no problem there. I will look into using a bigger battery in the space you proposed though. I like that idea, seems easier than my original solution.



SOIC packages are huge.

I have very shaky hands, and I have no problem soldering TSSOP packages, which are even smaller than SSOP packages, by hand. The key is you do not solder each pin individually. Just be liberal with flux and solder each side of the chip in one go, soldering all the pins at once!

Here is a picture comparing TSSOP to SOIC on the two sides of the board on my 50g serial cables.



Maybe with practice :)

Do you tin the gold pads before you solder? How do you keep the part aligned properly?

Mike M.


I do not tin the pads. I used to use boards with pre-tinned pads, but it's much easier to solder the chips if they are not tinned, so I'm glad I switched. The tinning made it so the chip slid around too much.

I hold the chip with a tweezers when I solder the first two corners, but I have to rest my hand on the table when I do this to keep it steady, as I would otherwise be shaking too much. Then I release the tweezers and "paint" the two sides, each in one stroke, soldering all the pins at once.



I'm encouraged. I'm going to try the tssop packages on my next design. I'll order extras just in case :)

Mike M.



Since the IT powers that be won't let me access Photobucket here at work, and I haven't seen it mentioned anywhere in this thread (that I can find -- I may be suffering from "duh - it's right there" syndrome), what IC(s) are you using for charge control and voltage regulation?

Since it would seem from the discussion that "they" are SOs, I'm guessing the charge controller is a MAX1811. I have a couple candidates in mind for low drop voltage regulators: MAX1818 or MAX8881, for example...

I'm in the very early stages working on a landscape calculator prototype with a Freescale MCF51JM128 (with USB), SDCard, and a 4-line 20-character display, and I'd like to use a Li-ion cell, charged from the USB port.



I didn't mention them, so you are not going crazy. I'm using a Maxim MAX1811 for charge controll and MAX884 for regulation. I chose these parts for the low external parts count and ease of soldering. I have the MAX1811 set to charge to 4.2 volts and limited to 100mA. It can charge at 500mA but I wanted to stay safe and cool. The regulator is linear, but since the voltage drop is small it is fairly efficient, with a low external parts count compared to switching regulators (and electrically quieter).

I've got a few extra boards and would be happy to send you one if you want to play with it.
Mike M.

Possibly Related Threads...
Thread Author Replies Views Last Post
  USB flashing/Li-po boards patryk 6 750 09-08-2013, 12:31 PM
Last Post: patryk
  An old friend powered up after 30 years !! Peter Charter (Durban) 19 1,570 10-22-2012, 01:36 PM
Last Post: Dave Shaffer (Arizona)
  [WP34S] WP34S firmware on the AT91SAM7L-STK dev kit? jerome ibanes 1 404 10-04-2012, 04:59 PM
Last Post: Paul Dale
  I Wish HP Higher End Calcs Were Solar-Powered! Jeff 3 448 01-31-2012, 03:51 AM
Last Post: Eric Smith
  [wp34s] Incomplete Gamma on the wp34s Les Wright 18 1,528 12-06-2011, 11:07 AM
Last Post: Namir
  [wp34s] Romberg Integration on the wp34s Les Wright 2 512 12-04-2011, 10:49 PM
Last Post: Les Wright
  Solar powered 41cx !! John Robinson 1 293 08-29-2011, 10:08 PM
Last Post: Crawl
  solar powered programmable hugh steers 7 687 10-29-2004, 10:39 AM
Last Post: Tom (UK)
  Powered from USB? Sergei Frolov 3 417 12-07-2003, 01:07 PM
Last Post: Veli-Pekka Nousiainen
  hp 41 battery powered heater db (martinez, ca.) 0 213 03-27-2001, 08:42 PM
Last Post: db (martinez, california)

Forum Jump: