lslqtz / bclm_loop

A background looping utility that maintains the battery level of Apple Silicon based Mac computers.
MIT License
37 stars 0 forks source link

A few questions... #1

Closed seamusdemora closed 1 month ago

seamusdemora commented 1 month ago

My Mac is Ventura 13.7. bclm worked through 13.6.9, but after todays' upgrade, it is kaput.

I've "installed" via sudo cp ~/Downloads/bclm_loop /usr/local/bin && sudo chmod 755 /usr/local/bin/bclm_loop; "Optimized Battery Charging" is OFF.

There was a note in the README I didn't understand :

Just create a new plist in /Library/LaunchDaemons

Can you explain how to do that, please?

I tried running from the cmd line:

sudo bclm_loop loop
Use software-based battery level limits. (SMCKey "CHWA" not found)
Limit status will be changed. (Current: true, Last: false)
Charging status has changed! (Current: false, Last: nil)
SMC has opened!
Limit status has changed! (Limit)
MagSafe LED status has changed! (Full)
SMC has closed!
SMC has opened!
Limit status has changed! (Limit)
MagSafe LED status has changed! (Full)
SMC has closed!
SMC has opened!
Limit status has changed! (Limit)
MagSafe LED status has changed! (Full)
SMC has closed!
^C

That seemed to be going nowhere. Since then, I've tried this:

% sudo bclm_loop persist 
%

But nothing seems to be happening - I guess maybe b/c of the plist I've not created ?

I wonder: I use a program called LaunchControl - could I create a system daemon to run bclm_loop instead of a plist?

lslqtz commented 1 month ago

When you run bclm_loop loop, charging should be throttled.

If you want to start it on boot, then this command sudo bclm_loop persist will create the launchdaemon for you.

Try to see if it is there: ls /Library/LaunchDaemons | grep -i com.lslqtz.bclm_loop.

seamusdemora commented 1 month ago

This command sudo bclm_loop persist will create the launchdaemon for you.

Try to see if it is there: ls /Library/LaunchDaemons | grep -i com.lslqtz.bclm_loop.

Yes - it's there. I wonder why bclm_loop appears to be doing nothing?

lslqtz commented 1 month ago

This command sudo bclm_loop persist will create the launchdaemon for you. Try to see if it is there: ls /Library/LaunchDaemons | grep -i com.lslqtz.bclm_loop.

Yes - it's there. I wonder why bclmloop appears_ to be doing nothing?

When it does not detect a power adapter change, it will not take action, but will silently detect (in the background). It will be executed three times when it is first started or when the power adapter is changed to ensure that it is as effective as possible. Silent detection is to avoid excessive and useless logging.

When you execute the sudo bclm_loop persist command, it will complete silently without any prompt. This seems to be a behavior of the original version as well. If nothing is displayed, it means it succeeded.

Just try to see if the charge limit works even after a reboot (it may not work briefly during the reboot process because the battery is no longer taken over by the system and bclm_loop).

seamusdemora commented 1 month ago

Yes - it's there. I wonder why bclmloop appears_ to be doing nothing?

When it does not detect a power adapter change, it will not take action, but will silently detect (in the background). It will be executed three times when it is first started or when the power adapter is changed to ensure that it is as effective as possible. Silent detection is to avoid excessive and useless logging.

OK - it's been nearly 24 hours; the led on the adapter plug is still green, and the battery icon in the "menu bar" (?) still says 100% charge. After posting my question above, I briefly turned "Optimized Battery Charging" ON - and then back to OFF.

What constitutes a "power adapter change"?

When you execute the sudo bclm_loop persist command, it will complete silently without any prompt. This seems to be a behavior of the original version as well. If nothing is displayed, it means it succeeded.

Yes - that's the command I've entered: sudo bclm_loop persist.

But note the parenthetical message I got in the first line when I ran sudo bclm_loop loop:

(SMCKey "CHWA" not found) ... that doesn't sound good, but it may mean nothing? I just wanted to make sure you'd seen it.

So what do you think I should do? Re-boot, or ... ???

Just try to see if the charge limit works even after a reboot (it may not work briefly during the reboot process because the battery is no longer taken over by the system and bclm_loop).

I've just checked my system w/ LaunchControl (see attached screen shot); it shows bclm_loop is running, but still nothing happening??

Screenshot 2024-09-29 at 5 48 53 PM
lslqtz commented 1 month ago

OK - it's been nearly 24 hours; the led on the adapter plug is still green, and the battery icon in the "menu bar" (?) still says 100% charge. After posting my question above, I briefly turned "Optimized Battery Charging" ON - and then back to OFF.

What constitutes a "power adapter change"?

Yes - it's there. I wonder why bclmloop appears_ to be doing nothing?

When it does not detect a power adapter change, it will not take action, but will silently detect (in the background). It will be executed three times when it is first started or when the power adapter is changed to ensure that it is as effective as possible. Silent detection is to avoid excessive and useless logging.

OK - it's been nearly 24 hours; the led on the adapter plug is still green, and the battery icon in the "menu bar" (?) still says 100% charge. After posting my question above, I briefly turned "Optimized Battery Charging" ON - and then back to OFF.

What constitutes a "power adapter change"?

When you execute the sudo bclm_loop persist command, it will complete silently without any prompt. This seems to be a behavior of the original version as well. If nothing is displayed, it means it succeeded.

Yes - that's the command I've entered: sudo bclm_loop persist.

But note the parenthetical message I got in the first line when I ran sudo bclm_loop loop:

(SMCKey "CHWA" not found) ... that doesn't sound good, but it may mean nothing? I just wanted to make sure you'd seen it.

So what do you think I should do? Re-boot, or ... ???

Just try to see if the charge limit works even after a reboot (it may not work briefly during the reboot process because the battery is no longer taken over by the system and bclm_loop).

I've just checked my system w/ LaunchControl (see attached screen shot); it shows bclm_loop is running, but still nothing happening??

Screenshot 2024-09-29 at 5 48 53 PM

For first use, you need to manually discharge it to 80%. It does not have a forced discharge function, because this function will make the system unable to recognize the adapter, which makes the charging status unintuitive. The firmware limitation does not have this disadvantage, but it cannot be applied in some high-version systems and firmware due to technical limitations.

The fact that chwa cannot be found is a technical detail, indicating that only software-based charge limits can be applied.

What constitutes an adapter change? Simply unplug or plug in your power cord...

seamusdemora commented 1 month ago

@lslqtz :

For first use, you need to manually discharge it to 80%. It does not have a forced discharge function, because this function will make the system unable to recognize the adapter, which makes the charging status unintuitive. The firmware limitation does not have this disadvantage, but it cannot be applied in some high-version systems and firmware due to technical limitations.

The fact that chwa cannot be found is a technical detail, indicating that only software-based charge limits can be applied.

What constitutes an adapter change? Simply unplug or plug in your power cord...

AHH-H-H !! So I first need to manually discharge it to 80%. OK, I can do that. May I assume a little more or less than 80% is OK??

Thanks!

lslqtz commented 1 month ago

@lslqtz :

For first use, you need to manually discharge it to 80%. It does not have a forced discharge function, because this function will make the system unable to recognize the adapter, which makes the charging status unintuitive. The firmware limitation does not have this disadvantage, but it cannot be applied in some high-version systems and firmware due to technical limitations. The fact that chwa cannot be found is a technical detail, indicating that only software-based charge limits can be applied. What constitutes an adapter change? Simply unplug or plug in your power cord...

AHH-H-H !! So I first need to manually discharge it to 80%. OK, I can do that. May I assume a little more or less than 80% is OK??

Thanks!

I recommend a bit less than 80%, this might be a documentation bug, I'll put this note in README.md to prevent problems.

seamusdemora commented 1 month ago

The "manual discharge" to 78% worked fine for me on macOS Ventura 13.7. bclm-loop appears to be working pretty much as expected. Something else you might want to add to your documentation is a note stating that the LED on the MagSafe connector is "Green" in color - this might confuse some who have come from bclm.

I noticed you've released a new version. Does this new version also have the requirement to "manually" get the battery below 80% before bclm-loop will begin functioning? In any case, the new release sounds very interesting - I'll look forward to trying it.

lslqtz commented 1 month ago

The "manual discharge" to 78% worked fine for me on macOS Ventura 13.7. bclm-loop appears to be working pretty much as expected. Something else you might want to add to your documentation is a note stating that the LED on the MagSafe connector is "Green" in color - this might confuse some who have come from bclm.

I noticed you've released a new version. Does this new version also have the requirement to "manually" get the battery below 80% before bclm-loop will begin functioning? In any case, the new release sounds very interesting - I'll look forward to trying it.

Yes, but usually the update takes less time, so the charge control should not be interrupted for too long. If a higher percentage is acceptable (not necessarily 100%), then you can ignore it.

Thanks for the suggestion, I have adjusted the documentation.

When the battery is no longer charging (for any reason, including but not limited to reaching the target battery level or insufficient power from the power adapter), MagSafe LED will turn green, which may be inconsistent with system behavior (which only turn green when fully charged).