The Lenovo Thinkpad X230, T430 & T530 generation have a battery authenticity check built in the embedded controller. This prevents aftermarket batteries from being charged. Luckily the EC can be patched.
1. Update firmware
Lenovo has updated their firmware which prevents this patch. It’s best to update the Thinkpad’s firmware, which includes BIOS and Embedded Controller, to the version listed below, but not newer. You can download the firmware updates on the Lenovo driver page. To find out your current BIOS version, boot into the BIOS setup.
|t430||BIOS 2.81 (G1ETC1WW) EC 1.13 (G1HT35WW)|
|t430s||BIOS 2.75 (G7ETB5WW) EC 1.16 (G7HT39WW)|
|t530, t530i||BIOS 2.76 (G4ETB6WW) EC 1.13 (G4HT39WW)|
|w530||BIOS 2.75 (G5ETB5WW) EC 1.13 (G4HT39WW)|
|x230||BIOS 2.75 (G2ETB5WW) EC 1.14 (G2HT35WW)|
|x230t||BIOS 2.73 (GCETB3WW) EC 1.14 (GCHT25WW|
You can download the image I created to update my Thinkpad X230t to BIOS 2.73.
Copy the firmware to a USB drive
sudo dd if=gcuj32us.img of=/dev/sdx bs=4M status=progress conv=fsync
Boot from this USB drive and apply the update.
There is a caveat: the update mechanism requires a fully charged battery to be present. This was a problem since my original battery was dead and the aftermarket battery hardly had a charge. This cancelled the update. However when I rebooted, a message appeared saying the EC was being updated! So the BIOS wasn’t updated, but the EC was! This can be checked in the BIOS setup.
Now we can create our patched firmware.
2. Patch the firmware
Clone the repository
git clone https://github.com/hamishcoleman/thinkpad-ec
Check if your laptop model is included in the patch
Configure the patch
This patch was originally made to allow the use of old style thinkpad keyboards (like in the X220. Best keyboards ever!) by modifying the EC. This keyboard patch is enabled by default. The battery patch is disabled by default. Change this to the use case.
make patch_disable_keyboard clean && make patch_enable_battery clean
Build the patched firmware
Now we will build the firmware image for the thinkpad X230t
Make sure you have all the needed built tools installed. This will take a couple of minutes.
My image only had the battery patch enabled.
Write patched firmware to USB drive
sudo dd if=patched.x230t.img of=/dev/sdx bs=4M status=progress conv=fsync
Boot from the USB drive to apply the patch
Follow the on screen instructions.
Reboot and check if the battery can be charged.