The 18650 cell has become a ubiquitous standard in the lithium battery world. From power drills to early Tesla vehicles, these compact cells power all manner of portable devices. A particularly common use is in laptop batteries, where they’re often built into a pack using the Smart Battery System. This creates a smart battery that can communicate and report on its own status. PackProbe is a software tool built to communicate with these batteries, and you might just find it comes in handy.
The code runs on the WiFi-enabled Arduino Yún by default, but can be easily modified to suit other Arduino platforms. Communicating over SMBus using the Arduino’s I2C hardware, it’s capable of working with the vast majority of laptop batteries out there which comply with the Smart Battery System. With that standard being minted in 1994, it’s spread far and wide these days.
It’s a great way to harvest not only the specifications and manufacturing details of your laptop battery pack, but also to check on the health of the battery. This can give a clear idea over whether the battery is still usable, as well as whether the cells are worth harvesting for those in the recycling business.
You’re not limited to just the Arduino, though. There’s a similar tool available for the ESP8266, too.
That is sweet – I’ve been looking into making something similar – thank you
I made an extension lead that goes from the battery connector in the laptop to various batteries that don’t fit and used software on the laptop.
There’s also Nirsoft’s BatteryInfoView, which runs on Windows. It’s really handy if you’re in IT.
Are these types of batteries a dying breed? It seems most laptops today come with internal flat batteries instead of the standard 18650 cells.
Still, good to know there is a rather universal way to access the battery parameters.
Only if you buy a “use and throw away” ultrabooks, but not the still upgradeable ones.
All the reputable brands that actually give a damn about their customers have model lines that use screws and tabs to hold the flat pack in the laptop instead of glue, easy and quick to replace.
Sometimes my laptop stays in my backpack for days.
I was hoping this was going to be a hack to check its battery charge without pulling it out.
I think in that case the laptop is the I2C master, probably even while ‘shut down’ so you’d probably have to man-in-the-middle it. Could be done though.
Or, just install software on the laptop that reads the chip in the battery pack such as voltage, temperature and battery wear. HWinfo32 for example. No need to buy an external device to measure whether the battery cells are wearing out.
Shouldn’t that I2C connection also be available to the laptop itself? If so, why not make it a piece of software for Linux running on the laptop?
well, it is actually another ec on the mainboard that talks to the chip on the battery. you can talk to that via
/sys/kernel/debug/ec/ec0/io
or to talk to the battery without additional hardware, you could take it out of the laptop, plug a modified video cable (or some pieces of wire) in and use /dev/i2c if your laptop has an external video port.