Page 1 of 1

Pi-Top battery replacement and upgrades

Posted: Sun Oct 20, 2024 7:28 am
by Adam
A what now? It's a Raspberry Pi laptop. A what? A Raspberry Pi is (was?) a low cost single board ARM computer. Originally this was a single core sub-1GHz CPU with only a little bit of RAM. Starting with the 3rd generation hardware, these have been updated to quad-core CPUs and since the 4th generation you've been able to get units with up to 8GB of RAM, putting these things into the relm of usable general purpose computers.

For several years I've been toying with the notion of building a Raspberry Pi laptop in the guts of one of my decommissioned laptops. I had a Lenovo W510 lined up for this, but wasn't able to find a reasonable solution for the keyboard/trackpad. The unit on the Lenovo is a ribbon cable connection, which is fine, but wasn't USB, which was less fine. There were a few custom PCB solutions for a controller that translated to USB, but it was quickly becoming convoluted.

Fast forward to a few weeks ago and I found an "as-is" Pi-Top on eBay in unknown condition for $50. These devices came out back ~2014 with the 3rd generation PCB.
PXL_20241006_153824244.jpg
So green. It was supposed to come with a cover that slides in to cover up the Pi and the "hub". The latter acts as the battery controller and HDMI interface to the built-in screen. It didn't come with a power supply, but I found 12V power supply laying around that was enough to get it powered on. Further investigation revealed the SD card was corrupt, fortunately I have plenty of those laying around too.

The original vendor of this is still around and still maintains 'Pi-Top OS' for this and subsequent generations of this hardware. It's a custom version of the Raspbian distro for Raspberry Pis, which in turn is based on Debian Linux. The main attraction of this OS is that it has their hub driver built in, which allows the Pi to get battery charge info via the GPIO connection. The bad news for this hardware is the battery showed 0% and wouldn't take a charge.

So I went shopping. A "correct" 18V 2.5A power supply was $15 and a st of heat sinks was $4.50. The Pi3B that came in this unit didn't "require" a heat sink, but while using it the temps would frequently spike to < 80C and it would thermal throttle. The simple aluminium heat sinks shown above for the SoC and Ethernet controller lowered the idle temps by 15C and the full load temps by 20C. Score. So obviously, it's time to overclock. Bumping the 1.2GHz CPU up to 1.4GHz did make a difference, but this particular Pi3 is really held back by the 1GB of RAM.

Now for the battery. Disassembly is easy, the whole thing is 3 pieces. The keyboard pops off by just pulling on it. The base and screen are held together with screws at the hinges. I didn't need to take the screen off to access the battery. Once off, there's a connector to the hub (power button) and USB to the Pi. After that you can take the hub of the mounting rails.
PXL_20241006_105009115.jpg
The little ball-top screws play two roles - that's what the keyboard snaps into as well as serving as the hold-down for the battery cover. I had already taken several of them out before taking the above photo. Then the cover comes right off.
PXL_20241006_105214021.jpg
After pulling the foam tape off, you can see the 4 cell "battery" and read the part number on the cells. You can buy compatible cells from eBay for ~$10/ea, so I did.
PXL_20241006_105826122.jpg
New cells are rated for +100 mAh and have wire leads instead of tabs. Tabs are tack-welded to the PCB.
PXL_20241006_105924119.jpg
PXL_20241006_105952544.jpg
PXL_20241006_110141895.jpg
These come right off with some small snips. I then cut the wire leads from the new cells to length and soldered them to the PCB (not shown). New "battery" assembled! You can see the new cells have some electronics on them. Charge controller?
PXL_20241006_152543226.jpg
PXL_20241006_152529504.jpg
Installation is reverse of removal.
PXL_20241006_153644419.jpg
Fixed!
PXL_20241006_153847830.jpg
PXL_20241006_154049944.jpg
With the Pi3, this thing should get a solid 10 hours of battery life. What's next? The 1GB RAM is fairly limiting. Conveniently, I have a Pi4 with 8GB of RAM. Also conveniently the max output current of the hub meets the increased power requirements of the Pi4, so now I have that. The only change needed was to add a micro USB to USB-C adapter as the Pi4 moved to USB C for power input. This did impact the battery life, though. I'm down to ~6 hours, but that's fine as the Pi4 performs really well, even without overclocking. Maybe I'll try that next. Should be able to go from 1.5GHz to 1.8GHz without any issues. The Pi4 is the end of the line for this chassis, though, as the hub can't meet the Pi5 power requirements as it's significantly more powerful than the Pi4 (new generation of ARM running at 2.4GHz).

Re: Pi-Top battery replacement and upgrades

Posted: Sun Oct 20, 2024 1:21 pm
by kevm14
Adam wrote: Sun Oct 20, 2024 7:28 am So obviously, it's time to overclock. Bumping the 1.2GHz CPU up to 1.4GHz did make a difference, but this particular Pi3 is really held back by the 1GB of RAM.
lol

That escalated quickly and predictably.

Re: Pi-Top battery replacement and upgrades

Posted: Sun Oct 20, 2024 5:10 pm
by Adam
kevm14 wrote: Sun Oct 20, 2024 1:21 pm
Adam wrote: Sun Oct 20, 2024 7:28 am So obviously, it's time to overclock. Bumping the 1.2GHz CPU up to 1.4GHz did make a difference, but this particular Pi3 is really held back by the 1GB of RAM.
lol

That escalated quickly and predictably.
Conveniently the Raspberry Pi makes it really easy to modify the clock speed - there's a config file in /boot that, among other things, has the CPU/RAM/GPU clock speed and voltage settings in it, so just change it to whatever you want. Unless it's too much, then it won't boot.

Re: Pi-Top battery replacement and upgrades

Posted: Mon Oct 21, 2024 7:45 am
by kevm14
DIY laptop is definitely the next level of complexity. I realize this is a hardware post but what is the OS and what can it do?

Re: Pi-Top battery replacement and upgrades

Posted: Fri Oct 25, 2024 6:10 pm
by Adam
It's Linux, so it can do whatever you want. The Pi-Top distro is an overlay on Raspbian, the official Raspberry Pi distro, which in turn is based on Debian. This instance is running the 6.1 kernel, which is the second newest "long term" kernel and will get patches for 5 years through 2026 via normal channels and 5 more through 2033 via the Civil Infrastructure Platform.

Raspbian is an "educational" distro focused on learning STEM topics and "Maker" activities so it comes with IDEs for various programming languages and easy access to to other things like PCB design, CAD software, and even Mathmatica. There's also various games. For learning.

This H/W is also powerful enough to easily run emulators for every 16-bit and older console, plus some newer ones.

The Pi itself is a unique SBC in that in addition to standard I/O like USB, it also has a 40-ping GPIO interface and can be setup to run all sorts of peripheral interfaces like RS-232, SPI, etc... The Pi5 also has a PCIe interface (via a ribbon connection) for all sorts of things. Through the GPIO interface, you can install various "Hats" to give you additional functionality - like an interface to the hub board in this laptop. There are also fun things like PoE and the new cool thing, an AI processing chip (an ASIC that, like a GPU is suited for the types of calculations used by today's LLMs).

It can also do basic things like running a web browser and posting to a forum on the internet.

Re: Pi-Top battery replacement and upgrades

Posted: Sat Oct 26, 2024 5:24 am
by kevm14
That's a lot of things. Does that distro work on other hardware?

Re: Pi-Top battery replacement and upgrades

Posted: Thu Nov 07, 2024 6:53 pm
by Adam
kevm14 wrote: Sat Oct 26, 2024 5:24 am That's a lot of things. Does that distro work on other hardware?
Not directy, but it's based on Debian which is. Pi-Top and Raspberry Pi maintain Debian repos of their custom software for various architectures, so you could, more of less, create a version of this OS running on an x86_64 machine or similar.