VR-25 / acc

Advanced Charging Controller
https://github.com/Magisk-Modules-Repo/acc
GNU General Public License v3.0
1.71k stars 107 forks source link

Proposal: If using voltage for stop/resume, and cooldown enabled, measure voltage during cooldown. #211

Closed DmitriK closed 9 months ago

DmitriK commented 1 year ago

Background: I have a Pixel 7a that ends up being plugged in most of the time. I'm trying to configure acc to maintain a voltage of about 3.92 for battery longevity. Unfortunately, the voltage limit files seem to only have a resolution of 0.1 V, so the best I can do there is limit charging voltage to either 3.9V (too low, more capacity loss than I'd like) and 4.0V (what I have enabled). I've tried to figure out a sensible capacity where the voltage would settle around 3.92, but for some reason the capacity/voltage relationship on my device keeps changing pretty wildly (sometimes 38% gives me the 3.92V rest volage, this morning it wanted 50% for the same thing). This leaves using voltage thresholds (whis has worked pretty well on a previous device I had), but this ends up being pretty unreliable because of my 4V limit and the fact that the voltage goes up quite a bit while charging (so the ideal stopping condition might look like voltage=3.99V, current<=100mA, but I don't think acc can do a current-based stopping condition like that) Proposal: I was thinking that a way of solving this might be if acc would check the stopping voltage at the end of the cooldown period, which would allow for stopping at more of a 'rest' voltage rather than the charge voltage. Specifically I'm thinking it would sample right before it resumes charge after the cooldown timer. I don't know if it makes sense for this to be a separate boolean option, or if it would be automatic if using voltage thresholds and a cooldown period is enabled.

VR-25 commented 12 months ago

Voltage is already measured within the cooldown loop, every ${loopDelay[0]} seconds (5 by default). Lowering this value boosts sensitivity: acc -c a ':; loopDelay[0]=2'.

acc -c a 'line': appends a line to the config acc -c d pattern: deletes all lines matching pattern :; comands or : tag; commands: one-line script