Home macOS Optimised Battery Charging
Post
Cancel

macOS Optimised Battery Charging

I use my Macbook in clamshell mode most of the time. Back in the day with my old Retina Macbook, I disconnected my charger couple of times a week to discharge the battery regularly. This simple practice enabled me to use my Macbook with an external display while conditioning the battery for maximum cell life. My battery started failing around 680 cycles (health 86%) and eventually, it was time to replace it at 873 (health 70%).

Battery

As for my newer Macbook Touch, it is a different story. I have a Belkin docking station nowadays and I really liked the type-C thunderbolt option that feeds all my power, data, display, etc to my device with a single piece of cable. However, I am no longer be able to discharge my device regularly while in clamshell mode.

Background

Since the arrival of the macOS release BigSur, optimised charging is built in to help your battery’s lifespan, but it was too good to be true according to my experience.

I noticed during the day, that my Macbook charged up to 80% then paused. The remaining 20% was finished later on the afternoon when the device was less utilised. But it required the device to be discharged first, which happens mostly on weekends for me. My battery health declined fast, which means I was losing capacity. For about 110 cycles, my capacity was around 92% compared the original design and it declined with a higher rate than my old Retina one.

Luckily, that dodgy built-in keyboard failed (twice) on me, which resulted getting a brand new bottom case replacement (battery, keyboard, etc) as part of this repair program.

To avoid getting my battery worn out fast again, I started searching for solutions and I think I found something promising.

Solution

I bumped into this Github project which enables pausing the charging at any level you like. To be fair, it does not solve the problem described earlier, I am still unable to discharge my device while connected to the docking station. But at least, it allows the user to control the battery charging to prevent overcharging while in clamshell mode. The bonus is that it is a simple, command line program available via brew, which can be scripted for further adjustments and management.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ brew tap zackelia/formulae

$ brew install bclm

$ sudo bclm write 77

$ sudo bclm read 
77

$ sudo bclm 
OVERVIEW: Battery Charge Level Max (BCLM) Utility.

USAGE: bclm <subcommand>

OPTIONS:
  --version               Show the version.
  -h, --help              Show help information.

SUBCOMMANDS:
  read                    Reads the BCLM value.
  write                   Writes a BCLM value.
  persist                 Persists bclm on reboot.
  unpersist               Unpersists bclm on reboot.

  See 'bclm help <subcommand>' for detailed help.

As mentioned on the project’s page, sources [1] [2] [3] claim that the Li-Ion batteries are best between 40% and 80% charge levels so I limited my device to the recommended 77%. I have been running like this for some time and it seems, that the battery is performing well, capacity is stable.

I cannot claim (yet), that it will prolong my battery’s life but it is worth to try.

This post is licensed under CC BY 4.0 by the author.

AWS EKS StackSet created cluster access recovery

AWS Codepipeline Stuck at Cloudformation Prepare Stage

Comments powered by Disqus.