So this is a total long shot, and it goes well beyond my limited wheelhouse of making un[der]documented things work nicely. It also means inviting those cosy with under-bonnet stuff to chime in.
The magnificent open-source utility, Charge Limiter (which does what other, more proprietary battery management utilities can do), is what I began to use a while back for setting maximum charge settings for my MacBook Pro batteries. Because of this, I’m keeping OEM batteries alive and healthy a lot longer than I’d be able to otherwise.
Across my Core iX MacBook Pro models (and, ostensibly, the same applies for Core iX MBAs and MBs), the utility worked as designed and described. As Charge Limiter’s description denotes, it alters two System Management Controller keys/parameters: BCLM (“Battery Charge Level Max”) and BFCL (“Battery Final Charge Level”).
Enter the Core 2 Duo MacBook Pro — specifically, the early A1260/A1261 2008 models. The utility runs the script, as usual, but troubles appear before setting a value:
As seen above, “ keyNotFound(code: "BCLM") ” displays because the utility cannot get a value from the SMC. The script continues to run and complete, as expected.
Of course, this override setting maps to nothingthe utility that revision of the SMC is aware of, suggesting one of two things:
1) the SMC keys used with the pre-Core-iX Macs is probably different. I’d imagine it’s not too different, considering communication between MagSafe adapter and Mac behaves the same, regardless whether the MagSafe adapter is connected to a C2D MacBook or a later Core iX MacBook. Or,
2) the SMCs of pre-Core iX MacBooks simply lack anything like a BCLM/BFCL key, behaving in a more basic, “dumb”, all-or-nothing SMC key, a binary 1 or 0 — with one being “fully charged” and the other “not fully charged.”
This is where my technical knowledge trails off, as I don’t exactly know how to poll the SMC to reveal its keys/parameters (namely, to explore whether BCLM and BFCL functions happen under differently-named keys/parameters for the C2D Macs, which I have a hunch they do). Try as I have, it seems there are staggeringly few discussions elsewhere which discuss SMC keys/parameters or ho to know what a certain Mac uses for its specific SMC.
“It’s 2024. Why does this matter, B S Magnet?”
I want to buy a new-in-box OEM battery for my A1261. (I know somebody who knows somebody who knows a grasshopper…) I would like to get it, but only provided I can find a way to cap the charge on it to 80 per cent, to extend the battery’s lifetime (as finding another, years from now, will likely be next-door-to-impossible). Yes, I do keep my A1261 running 24/7, as I use it daily for various dedicated tasks.
I also want to keep A1261 running on said potential Apple battery without re-dealing with the problem of battery bloat endemic to all the aftermarket trash I’ve bought, paid for, and watched fail, over and over, since 2021. Even if I wasn’t looking at an OEM battery, it could also come in useful for keeping B-grade aftermarket batteries, such as those from NewerTech, in “good health” for longer than they might otherwise.
With Charge Limiter, I could make changes to source code, to point to and to adjust the correct SMC keys/parameters specific to pre-Core iX MacBooks, to then build a version of it for my C2D Mac — if I knew how to find the C2D-specific keys.
But I don’t. So I defer to the many brilliant minds around here, if they’re up for a challenge.
The magnificent open-source utility, Charge Limiter (which does what other, more proprietary battery management utilities can do), is what I began to use a while back for setting maximum charge settings for my MacBook Pro batteries. Because of this, I’m keeping OEM batteries alive and healthy a lot longer than I’d be able to otherwise.
Across my Core iX MacBook Pro models (and, ostensibly, the same applies for Core iX MBAs and MBs), the utility worked as designed and described. As Charge Limiter’s description denotes, it alters two System Management Controller keys/parameters: BCLM (“Battery Charge Level Max”) and BFCL (“Battery Final Charge Level”).
Enter the Core 2 Duo MacBook Pro — specifically, the early A1260/A1261 2008 models. The utility runs the script, as usual, but troubles appear before setting a value:
As seen above, “ keyNotFound(code: "BCLM") ” displays because the utility cannot get a value from the SMC. The script continues to run and complete, as expected.
Of course, this override setting maps to nothing
1) the SMC keys used with the pre-Core-iX Macs is probably different. I’d imagine it’s not too different, considering communication between MagSafe adapter and Mac behaves the same, regardless whether the MagSafe adapter is connected to a C2D MacBook or a later Core iX MacBook. Or,
2) the SMCs of pre-Core iX MacBooks simply lack anything like a BCLM/BFCL key, behaving in a more basic, “dumb”, all-or-nothing SMC key, a binary 1 or 0 — with one being “fully charged” and the other “not fully charged.”
This is where my technical knowledge trails off, as I don’t exactly know how to poll the SMC to reveal its keys/parameters (namely, to explore whether BCLM and BFCL functions happen under differently-named keys/parameters for the C2D Macs, which I have a hunch they do). Try as I have, it seems there are staggeringly few discussions elsewhere which discuss SMC keys/parameters or ho to know what a certain Mac uses for its specific SMC.
“It’s 2024. Why does this matter, B S Magnet?”
I want to buy a new-in-box OEM battery for my A1261. (I know somebody who knows somebody who knows a grasshopper…) I would like to get it, but only provided I can find a way to cap the charge on it to 80 per cent, to extend the battery’s lifetime (as finding another, years from now, will likely be next-door-to-impossible). Yes, I do keep my A1261 running 24/7, as I use it daily for various dedicated tasks.
I also want to keep A1261 running on said potential Apple battery without re-dealing with the problem of battery bloat endemic to all the aftermarket trash I’ve bought, paid for, and watched fail, over and over, since 2021. Even if I wasn’t looking at an OEM battery, it could also come in useful for keeping B-grade aftermarket batteries, such as those from NewerTech, in “good health” for longer than they might otherwise.
With Charge Limiter, I could make changes to source code, to point to and to adjust the correct SMC keys/parameters specific to pre-Core iX MacBooks, to then build a version of it for my C2D Mac — if I knew how to find the C2D-specific keys.
But I don’t. So I defer to the many brilliant minds around here, if they’re up for a challenge.
Last edited: