Powering a Palm m100 with a LiPo battery

07.07.2021

The Palm m100 or m105 are PDAs, which run tipcally with two AAA batteries. Each battery has a voltage of 1.5V. In this case the batteries are connected in series, so the total voltage is 3V. A boost regulator transform these 3V into 3.3V, which then powers nearly the hole the system. For this project it was initalied planed to connect a microntroller to the Palm and it should be powered with a rechargeable battery. So why not powering the hole Palm with a rechargeable battery? The idea regarding the microcontroller was discarded relatively quickly, in order not to make everything too complicated. Therefore, only the idea of supplying the Palm with a lithium polymer battery was left.

A lithium polymer battery supplies up to 4.2V when fully charged. When it is empty and should not be damaged, it only supplies 3.6V. So, given is a 3.6V - 4.2V input voltage range (compared to the 2.0 - 3.0V range of two AAA batteries). In addition, a boost regulator regulates the usual 3V to 3.3V. And an analog-digital converter measures the input voltage, which then gets displayed on a battery statusbar in Palm OS.

So first of all it was necessary to locate the boost regulator. Some kind Reddit-Users helped me with this, so I soon knew that this was the voltage regulator:

A ML4851-3, which has a maximum input voltage of 3V. Using it to regulate the 4.2V/3.6V of the LiPo was not an option. A reddit user suggested to me to use a LDO (Low dropout regulator). So the idea was to use a LDO to regulate the 4.2V to 3.3V and bypass the boost regulator. Since I had only a 3V LDO and the used components are fine with a 0.3V voltage difference, I replaced the boost regulator with the 3V LDO. Fortunately, also the Motorola CPU used, can, according to the data sheet, be operated with a voltage deviation of +/- 0.3V. 3.3 is the "standard" voltage, so 3V from the LDO is still within the limit.

The second step was to measure the voltage of the different pins of the original boost regulator. There were 3.3V on the "Rest" pin and on Vout. GND, of course was ground and Vin needed the 3V input voltage.

The thrid step was to desolder the old voltage regulator. Since the new LDO (a LDK120M30R) was quite small, I used a PCB, which extended the pins to a 2.54mm grid dimension. According to the data sheet of the LDO, it needed two ceramic 1µF condenstor, to to its job. The old Vin and Rest connection points, where the old voltage regulator was placed, were wired to the "out" pin of the LDO. Also the old input pin, where the AAA batteries were placed in, were connected to the LDO, since I was not sure if there wasn't something between the battery and the old voltage regulator that needed to be supplied with voltage.

The fourth step was to handle somehow the battery statusbar in Palm OS. When 3V were applied to the input of the Palm, the batterie statusbar was full and with only 2V it was empty. So a voltage divider should divide the voltage of the LiPo battery to the required range. The voltage was read by a ADS7843, which is a touch screen controller with four analog-digital-converters. "IN3" (pin 7) of the ADS7843 was responsible for the battery statusbar. When it was shortned to ground, the battery statusbar showed an empty graph, which was the verification, that pin 7, was the correct pin. The ADC only requires 0.1 µA. So I used a 1MOhm and a 1.5MOhm resistor for the voltage devider. Which provides 2.52V on the 1.5MOhm resistor when the LiPo battery has a voltage of 4.2V (fully charged) and 2.16 when the LiPo battery is empty (3.6V). This means, that when the battery statusbar shows a half empty status, the LiPo is full and when the battery statusbar is empty, the LiPo battery is empty, too. In order to get the voltage devider working, I needed to solder the touch controller out, bend pin 7 up and soldered the touch controller back in place. Afterwards, I soldered a wire to pin 7 and the voltage devider and secured it with some hot glue.

(The red wire next to resitor "103", was only soldered in for testing purpose and got removed later.)

Last step, after some testing, was to put everything together. For charging the LiPo battery I'm using a "TP4056" charing module. With a standalone micro-USB-port on a PCB, I was a bit more flexible for placing the port:

After some trimming of the Palm m100 hosing, isolating everything with kapton tape and soldering some wires to the TX and RX pins of the docking-connector for some futrure projects, everything was ready for putting back togther. Luckily everthing fittted in the m100 housing:

When the backlight is on and a stresstest was running, the complete system consumes only 72mA, which is just fine for the LDO, which can provide upto 200mA. So everything looked fine. But unfortunately after one week of standby for the Palm m100, the Lipo battery was completly empty. So hopefully I'm able to publish an update with a fix soon. But so far, I want to thank the discord users "dmitrygr" and "jercos" for their help and support.

And this is the final modification (for now):


Misc