I'm submitting an answer with this question - not because I feel it's the ultimate answer, but only to make sure that at least one answer is posted before the question is closed as a Duplicate. Please note that I don't feel it actually is a duplicate, though there have certainly been similar questions; questions mostly along the lines of, "Why Doesn't 'Optimized Battery Charging' work as expected?"
That said, this answer addresses the replacement option (as in replace Apple's "Optimized Battery Charging" feature) in the question.
I've looked at a few options for replacement of "Optimized Battery Charging", and done a bit of research/reading. A few of the references I used for this answer are listed below. Here's the answers:
It seems that there are many who are either disappointed or confused with Apple's implementation of "Optimized Battery Charging". Trying to give Apple credit for what they do, I suspect this has something to do with their penchant for inscrutability; perhaps they feel it's not in their customer's interests to communicate details regarding their macOS? For example, one possible explanation for the apparently errant behavior in the question is given in a passage from the AlDente
documentation:
Keeping your battery at a lower percentage, such as under 80%, over weeks without doing full cycles (100%-0%) can result in a disturbed battery calibration. When this happens, your Macbook might turn off with 40-50% left or your battery capacity will drop significantly. However, this is only due to a disturbed battery calibration and not because of a faulty or degraded battery. To avoid this issue, we recommend doing at least one full cycle (0%-100%) every two weeks. Even if your battery calibration gets disturbed, doing 4+ full cycles will recalibrate your battery and the capacity will go up again.
Good explanation, but it doesn't seem to fit the pattern described in the question. Furthermore, some of the discussion in References 7 & 8 (and some questions here on SE) suggest that something may not be quite right with "Optimized Battery Charging".
Apple's sponsored online forums inevitably provide no useful information explaining why "Optimized Battery Charging" appears to be operating incorrectly. AFAICS, there are no answers from Apple (or anyone else) for restoring the functionality of "Optimized Battery Charging" under the conditions cited in the Question.
So, let's evaluate some alternatives; the alternatives discussed here all implement what can be called "Limited Battery Charging" - as opposed to "Optimized Battery Charging". The apps are further limited to those supporting Macs with Apple Silicon - not Intel processors:
AlDente
[REFs 1 & 2] is available in a free/open-source version, and in a "Professional" version. The functionality of the free version is rather limited compared to the Pro version, but the free version does support the manual application of a limited charge capacity - and therefore meets the criteria as a replacement; i.e. "Limited Battery Charging". There is some interesting reading in some of the AlDente
issues; this one appears to document the discovery of how support for the Apple Silicon Macs came to pass!
Battery-Toolkit
[REF 6] and AlDente
are both coded in Swift, and have a GUI interface. By way of comparison, alDente
is about a year older than Battery-Toolkit
, and has a larger following. This may explain why alDente
has a much larger set of Open issues.
battery
[REFs 3 & 4] is notable as the authors implemented a CLI version of "Limited Battery Charging" (aka charge limiter) for Apple Silicon Macs. This occurred while they were trying to find an upgrade to enable limited battery charging support for M1 in mclm
- as documented in the discussion of this issue. Note that the discovery of SMC keys in firmware by the Asahi Linux project, and a brief polling script contributed by '@thloh85' were instrumental in the development of battery
.
The CLI version of battery
is a tiny 17kB bash
script installed at /usr/local/bin/battery
. The "active" part of the script is contained in a half-dozen functions that set SMC values. Of some importance (IMHO) is the fact that battery
has an un-install option - in case you get tired of it or decide to return to Apple's "Optimized Battery Charging"
Finally, batt
(REF 5) is also a CLI tool very similar to battery
. It's newer than battery
, and consequently has not achieved as large a following. The README.md
at the batt
GitHub repo is informative, and worth reading. It also has an un-install option in the script.
That seems to be what's on offer for "Limited Battery Charging" for Apple silicon-equipped Macs.
References
AlDente - Charge Limiter, commercial edition
AlDente - Charge Limiter, open-source edition
battery; fm 'actuallymentor'
battery; a fork of #3 fm 'double-thinker'
batt; fm charlie0129
Battery-Toolkit; fm mhaeuser
a discussion @ MacRumors: 'Alternative for battery charging for m1/m2'
a discussion @ MacRumors: 'Charge limiter app AlDente - now works on M1 Macs'