It's interesting to read this. Because I recently had something similar happened to me and I had mixed feelings like the author here.
I have the original Framework 13, but I have almost changed everything inside of it (motherboard AMD 7840U, wifi 7, ram 96GB, ssd, better hinge, the CNC shell, hdmi dongle v3, APU Fan, speakers v2, webcam v2). I still was using the original battery and it was at 60% health. So, I decided to update to the 61W battery.
After changing the battery, I decided to turn on the battery charge limit to keep the battery at a cool 60% charge to increase its lifespan.
First interesting thing I faced was realizing that Framework has 2 methods for the battery limit implementation. You have to use framework-tools and set it on the ec instead of the standard Kernel module. The kernel allows you to set the min and max, but the ec just allows you to set the max, and it will automatically set max-5 as the min.
But what was more frustrating, was realizing and when it gets to that threshold it constantly discharges 5-9W until it gets to the min and then charges the battery again back to the threshold. So, if you set a threshold it keeps charging that 5% once an hour, instead of parking the battery and waiting for the natural discharge to get to the min (which should be days later, since when you're plugged in the battery is not used for anything, it's like your laptop is off, not sleep, off).
But the good thing is the ec code is open source, I found the code, dug into it, found a bug, fixed it, flashed it, and for the past 2 weeks my battery is working perfectly.
I opened a PR, then found a multi hundred forum post of people talking about something similar with no proper solution, or any fixes in the ec. And my PR has been sitting there with no attention from Framework. Setting a battery threshold is actually worse for your battery because of this bug, but nobody is in a rush to fix it!
So, I'm mad that Framework operates this way, their circuitry, power delivery, and software is flawed (just read the forum thread[1]). On the other hand I'm happy I can see the code, find the bug, and fix it at least for myself! Feels like the hardware version of Linux! If you are technical, you can literally change how your kernel behaves. You can't recommend it to your Mom, but you definitely prefer it to the closed alternatives.
[1] https://community.frame.work/t/tracking-battery-flipping-bet...
It's crazy, the last time any PRs got merged was back in January 2024 [0]. Seems it has just become a black hole completely ignored by anyone at framework.
[0] https://github.com/FrameworkComputer/EmbeddedController/pull...