-
• #2
Rather than simply alerting, does the Bangle.js 2 hardware provide a way to actually reduce the maximum charging voltage limit?
No - I'm afraid this has been asked before, and it's not - it's just a standard run of the mill charge IC with no inputs.
-
• #3
Noted, and understood!
chargent
still looks like a good option given hardware limitations, outside of adding external electronics like a Chargie switch.(And while I did try searching, I must've not looked far enough - pardon the clutter.)
-
• #4
The Chargie seems very cool. Thanks for dropping that name, I had searched for something like that a few months ago without success. I use a Palm Phone with a 770mAh battery and that degraded to about half its tiny capacity in 2 years of use. Charging daily or currently twice a day and using 100%-0% every day will do that fast. The Bangle with its week long runtime will probably degrade more by age than by charging.
As for the Bangle, a workaround would be charging from a powerbank. Many of those cut off the charging when the current is low. The Bangle draws miniscule amounts of current at the end of charge so depending on the powerbank that might hit your target charge level on cut off. Some reviews check the minimal amount of current needed to keep the power on, that would be your charging cut off value ;). -
• #5
As for the Bangle, a workaround would be charging from a powerbank. Many of those cut off the charging when the current is low
That's a really neat tip!
I'd be really surprised if someone hasn't made an inline USB gadget that does that already - but if not you should totally make one!
-
• #6
The Chargie seems very cool. Thanks for dropping that name […]
Sure thing! I'm glad mentioning this was helpful.
As for the Bangle, a workaround would be charging from a powerbank. Many of those cut off the charging when the current is low. […]
My pre-2013 powerbank does this and it has bugged me so much. Now I see that this is a feature! I've got a USB power meter that can be independently powered (so it won't increase the power bank's load) - next time I need to charge my Bangle 2, I'll see how it goes.
I'd be really surprised if someone hasn't made an inline USB gadget that does that already - but if not you should totally make one!
Ah, that's actually why I mentioned Chargie - see "Is there any way Chargie can work without the app?" on the FAQ page.
Chargie was originally intended for managing phones via iOS and Android, but it also supports a hardware cut-off that's committed to memory. Granted, there are probably ways to make a cheaper circuit if you don't support Bluetooth control and all that.
-
• #7
A brief follow-up - my Bangle.js 2 seems to charge at around 98 mA for the majority of time, then by the time it reaches "100%", it has tapered off to 67 mA, where my powerbank then cuts off power. This is before Charge Gently (chargent) even activates. My USB power meter was powered separately for the tests, so it did not impact the powerbank cutoff.
Taking it off the charger, letting the voltage settle, that put my Bangle 2 at around "96%" (and a few hours later, "94%").
This is an excellent solution that turns an aggravation with my powerbank's cut-off into a free hardware charge limiter for my watch, thank you @halemmerich for the idea!
-
• #8
How much power do you get into the Bangle with that 67mA cut off? From battery size I would guess about ~80%/160mAh?
-
• #9
Over a period of 1h:11m:46s, starting from around 36% charge and an (almost certainly inaccurate) calculated battery voltage of 3.8126v, using that 67 mA-ish cut-off…
0.113 Ah (or 0.57442 Wh)
The USB power meter offers a way to calculate capacity, so by setting voltage to 3.8v and estimated charging efficiency to 90%, it results in an inaccurate estimated 0.1364 Ah battery capacity (real capacity is 350 mAh).
I attempted to calculate the voltage with the following (using the
pc
calculation to compare with the Bangle's own estimate):let batteryFullVoltage = 0.3144; let v = analogRead(D3); let v = 4.2 * v / batteryFullVoltage; if (v>=3.95) { let pc = 80 + (v-3.95)*20/(4.2-3.95); // 80%+ } else if (v>=3.7) { let pc = 10 + (v-3.7)*70/(3.95-3.7); // 10%+ is linear } else { let pc = (v-3.3)*10/(3.7-3.3); // 0%+ } Terminal.write("Batt voltage:" + (v).toFixed(4).toString() + "\n");
As it turns out, your estimate was pretty close! If I had drained the battery further, I'd probably have hit your target (I try to not let the battery dip too low, either).
-
• #10
Another solution: I created an app that sends the battery level to Home Assistant, which controls a Shelly plug with the charger.
-
• #11
My bangle ran out of battery and I used the chance to get some more info on the charging.
Green is the current drawn during charging at 5.1V, blue is mAh as counted by my usb measurement gadget with the dotted part being guessed from time and current because it stops counting below 50mA. Red is a guesstimate of mAh ending up in the battery using 3.8V and 90% charging circuit efficiency.
I guess towards the end most of the "charging" current went into producing heat so red and blue probably could taper of a bit earlier.
Actual gross capacity should be 200mAh, so getting roundabout 170mAh in there is not bad. There is probably some unused capacity left after turning off, even if the electronics can not work anymore.
1 Attachment
I've seen two separate apps that provide a way to alert on approaching full battery charge,
chargent
andpowermanager
.Rather than simply alerting, does the Bangle.js 2 hardware provide a way to actually reduce the maximum charging voltage limit?
It looks like the charge controller isn't programmable, but I thought I should double-check. I see mentions of
pin_charging
andpin_voltage
, but those seem to be input-only, and the battery percentage code appears to simply convert an analog voltage value.(As context, I've been working on implementing battery charge voltage limiting for the Flipper Zero multi-tool, which is using a Texas Instruments
bq25896
controlled over I²C.)