So, I’ve dug up my corebooted t440p and decided to check if it’ll work with the battery from my t480, and it did! Well, sort of.

Since coreboot also replaces the embedded controller firmware (mb sometimes they keep blobs of it, idk, but certainly not in case of t440p), we won’t get those nasty “battery not supported, pay me” messages even if they’ve changed the verification since then.

However, I suspect some batteries may be unprepared for the power draw of earlier models. I’ve tested it on 2 batteries, one was a 22wh → 72wh conversion with BMS built on top of a cheap controller with rather unpleasant feedback from battery repair people; the other one was a more trustworthy 72wh clone powered by bq8050. The latter one worked ootb, while the former somewhat worked: fine in uefi, fine in grub, drop voltage to 0 as soon as the os starts loading → poweroff. If the power supply is plugged in during boot, the battery works fine (may drop voltage again under load, haven’t tested it myself).

Soo, basically the use case is that you can try to retrofit the guts of a newer battery into older thinkpads if those run core/libreboot.

  • fl42vOP
    link
    fedilink
    arrow-up
    3
    ·
    2 months ago

    I didn’t build it, although I’ve been entertaining the idea for quite a while. I just happened to have 2 dead batteries, one 72wh with a locked controller (2 parallel cells simply fell off due to bad spot welding) that I later bricked while trying to unlock, and a 22wh with one of the packs dead. So, after fixing the welding (tbh I’ve just soldered those cells since I didn’t have a spot welder myself at the time) I just swapped out the working controller with the locked one. T480 doesn’t seem to mind, so whatever. Although I eventually decided to set the charge threshold at ~90% since it seemed to me the BMS overcharges the batteries

    As for building, there’s this beauty (also there’s a hackaday article about it; includes a link to the blog post outlining how it was done) for t420 which seems to include a PoC-ish smbus implementation for an attiny, as we’ll as a prototype based on bq3060. Verification may be a problem, tho, if the board runs on EC firmware from lenovo (also, I’ve been looking at coreboot docs for x230 today, and yap, they sometimes do keep blobs with EC firmware, although there were tutorials on patching it to remove the verification). Also, if you happen to have a battery based on bq8030 ic, this blogpost has a disassembler for its firmware, which makes it possible to more or less see how the battery side of verification is done and implement it some other way. Dumping the firmware is also quite simple using theese scripts (tested on the second battery mentioned in the post)