03-01-2025, 10:39 AM
I’ve been experimenting with ways to tweak this. I’ve managed to set up a system where the battery cuts off from charging when it hits a certain point but remains available for discharge down to a lower threshold if the phone needs it.
Here’s how the scripts work under various conditions:
Project Repositories:
For PinePhone: https://github.com/alivellani/manage_pinephone_bat_temp
Librem 5: https://github.com/alivellani/manage_librem_battery
On the PinePhone, managing this is pretty straightforward because the driver includes a ‘charge behavior’ driver that you can manipulate directly. For the PinePhonePro, you can find the charge behaviour control at this path:
/sys/class/power_supply/{battery_type}/charge_behaviour
The Librem 5, however, threw a curveball my way. It doesn’t support modifying charge behavior through the usual driver settings. The workaround I found on the wiki, using the charge LED as a control point. Here’s how I control it:
/sys/class/leds/chg_en/brightness
This lets me toggle the charging on and off
I have attached a Anker Zolo power bank to the back of the phone which keep providing power to the pinephone pro with a velcro tape. And I just charge the power bank.
Heads-up: This setup is still very much DIY. Make sure you really dig into the scripts before deploying them. If your phone turns into Charmander that is all on you!
Cheers!
Here’s how the scripts work under various conditions:
- Standard Charging: The phone charges to a predetermined upper limit (like 90%) and then stops to prevent battery strain.
- Continuous Power Supply: If it remains plugged in post-charge, the phone priorities drawing power directly off the charger, sparing the battery , and only use the battery if the power supply is not producing enough juice.
- Reconnection Nuances: Unplugging and replugging doesn’t immediately resume charging. It waits until the battery drops below a set lower threshold (say, 60%), which helps in maintaining battery health by avoiding short, unnecessary charge cycles.
- Handling Power Fluctuations: For those times when the power source is unstable or you’re frequently plugging and unplugging, the script ensures that repetitive charging doesn’t kick in unless truly needed.
- Customization: The thresholds for both the upper and lower limits can be adjusted to fit personal usage patterns and battery longevity goals.
Project Repositories:
For PinePhone: https://github.com/alivellani/manage_pinephone_bat_temp
Librem 5: https://github.com/alivellani/manage_librem_battery
On the PinePhone, managing this is pretty straightforward because the driver includes a ‘charge behavior’ driver that you can manipulate directly. For the PinePhonePro, you can find the charge behaviour control at this path:
/sys/class/power_supply/{battery_type}/charge_behaviour
The Librem 5, however, threw a curveball my way. It doesn’t support modifying charge behavior through the usual driver settings. The workaround I found on the wiki, using the charge LED as a control point. Here’s how I control it:
/sys/class/leds/chg_en/brightness
This lets me toggle the charging on and off
I have attached a Anker Zolo power bank to the back of the phone which keep providing power to the pinephone pro with a velcro tape. And I just charge the power bank.
Heads-up: This setup is still very much DIY. Make sure you really dig into the scripts before deploying them. If your phone turns into Charmander that is all on you!
Cheers!