Tweets
Replying to @josecastillo
actually wait, hmm. does that more than make up for it? before, I had the BOD disabled entirely in sleep mode. now it’s enabled, even if it is only checking once an hour. there’s no way around it: this requires some experimentation…
(original)
Replying to @josecastillo
the code! I did up the brownout detector to one sample per second in wake mode, just so we catch any voltage dip caused by the LED. This seems to eat up an extra 80 nA. But I also dial it back to once an hour in sleep mode, which more than makes up for it. https://github.com/joeycastillo/Sensor-Watch/commit/b91f025542b4be42182de218630ea442eb119ddc
(original)
Replying to @the_perigoso
in practice the LAP indicator won’t light up for this condition; the battery’s not “low” at this point, just low enough that we need to switch regulators. Currently I have it set to show the low battery condition at 2.2 volts, which is definitely a coin cell on its last legs.
(original)
Replying to @the_perigoso
Yep, assumption is there’s no going back until a fresh battery is installed. Say you’re at 2.7 V and you light up the LED, causing a dip to 2.6 V. It’s still only a matter of time before you hit 2.5, and we want to have the right voltage regulator selected for when you get there.
(original)
Replying to @josecastillo
This is great. I’m running on the high efficiency mode all the way down to ~2.6V; at that point the brownout detector notices, and my interrupt handler swaps it to full range mode (I’m turning on the LAP icon to mark the change). And the thing runs — if dimly — down to 1.4 volts!
(original)
Replying to @gabrielcsapo, @pauls_3d_things, @reinhard_at and @sqfmi
I’ve been following Paul’s progress with great interest! And I have a Watchy coming in April, hopefully. It’s a really fascinating problem space, and I love seeing different people’s approaches to it; those Sharp memory displays are particularly fun and pretty, and so low power!
(original)
Replying to @LM4050WG2
The board I’m testing with is super clean, was assembled with stencils and a PnP so no flux residue or or leftovers from rework. Now though I’m wondering if certain routing choices could improve things further; we’re getting very deep into the weeds now!
(original)
Replying to @gennyble
My original scenario (2 hours awake, 22 in sleep per day) the range is 431-667 days. Again, totally in theory; this assumes that we can make use of all of the 100 mAh in the coin cell. But it’s reasonably promising. Power consumption is QUITE LOW now! https://twitter.com/josecastillo/status/1492910473221705734
(original)
Replying to @josecastillo
To be clear, this is the best case scenario: you take the watch off at all times it’s in sleep mode. Sleep consumes more energy when you’re wearing the watch, and it’s going to be a mix. But for any given spot on the “hours awake” axis, anticipate battery life in the shaded area.
(original)
Replying to @josecastillo
Y’all. It’s not much. On the order of 0.21µA, or 210 *nanoamperes*. But it’s clearly visible when swapping between the two modes, and guess what: it all adds up! Implementing this will give us an extra twenty days of typical use. And it’s all so much better than where we started!
(original)
Replying to @josecastillo
pretty pretty, tho!
(original)
Replying to @josecastillo
okay I’m still going to bike to the shop but y’all. yesterday I was jogging in shorts and a t-shirt. what happened.
(original)
Replying to @getur
Fun side note: my accelerometer’s data sheet mentions that the address pin is pulled high by default, so in addition to the extra zeroes on the bus, tying the address pin low could burn maybe an extra 30~180 µA, all day, every day?
(original)
Replying to @crulge
That’s the idea! The joy is the gateway drug :)
(original)
Replying to @AbolTaabol and @jackieis_online
I adore this! The design principles alone are such a powerful reframing of what technology should be doing. Implementing these principles would detonate probably 90% of the technology I interact with in a day; it’s staggering how tech has built a world that so devalues the human.
(original)
oh snap! Did I just find another fraction of a microampere?! I think I’m going to have to bike to the shop to check this one out; it would be so monumentally easy to implement…
(original)
Replying to @AbolTaabol
Bob was at least a reimagining of how we present things to users! We’ve been stuck in the same idioms for too long. If anything, cloud based apps do represent a similar reimagining; but it’s a reimagining that’s been utterly captured by commercial interests and vendor lock-in.
(original)
Replying to @AbolTaabol
I had to reinstall Windows 95 last night (because of reasons); this reminds me of a moment during the setup process that I felt I had to screenshot.
(original)
Replying to @josecastillo
nostalgia is so hot right now! https://archive.org/details/bryce4
(original)
this is the ideal UI design. You may not like it, but this is what peak performance looks like.
(original)
Replying to @josecastillo
Three! Hard mode kept me from wasting that second guess. Wordle 239 3/6*
⬛🟨🟨⬛⬛
🟩⬛🟨🟩⬛
🟩🟩🟩🟩🟩(original)
Replying to @josecastillo
four. Wordle 238 4/6*
🟨🟨⬛⬛⬛
🟨🟨🟨⬛⬛
⬛⬛🟨🟩🟨
🟩🟩🟩🟩🟩(original)
Replying to @rohansingh
brb starting my death metal band “Nuclear Apes”
(original)
Replying to @josecastillo
the truth is that we might get it, for a time. For as long as we are here, we might get the oceans. But not forever. because the truth is, friends, we are perishable.
your watch battery will die one day.
you will die one day.
we are salty, impermanent kingdoms.
(original)
Replying to @josecastillo
the poem is about something far deeper than battery life, and yet, whenever someone emailed asking “can it do wifi” or “what about syncing via bluetooth”, I couldn’t help but think about how perishable we all are. Me, you, the gadget. We want it all, while we’re alive to have it.
(original)
Replying to @josecastillo
I desperately wanted to figure out a way, in last week’s battery life update, to incorporate a poem by Robert Bly. The Slim Fir Seeds seemed relevant to the conversation:
(original)
Side note: it’s wild to think — especially on the especially good days — about the fact that all of this will pass. (DARK THREAD! 1/n)
(original)
Also sometimes the bullet, and the gun! https://twitter.com/gheja_/status/1492307989147144198
(original)
Replying to @josecastillo
side note: this was a very Casio-forward kind of day; calculated the micro watts for this table using my handy FX-260 Solar II. Love that constant function; what a brilliant UX.
(original)
Sensor Watch power consumption:
How it started / How its going https://twitter.com/josecastillo/status/1492254521568989191(original)
Replying to @josecastillo
This is an excellent amount of win for a day and a half of effort. /thread
(original)
Replying to @paolo__init__
I’m sure that’ll be my code name shortly before they haul me to Guantanamo Bay.
(original)
Replying to @josecastillo
(I promise I won’t take it out of the lab looking like this)
(original)
Replying to @josecastillo
okay there’s one last test to do, and I admit, there’s no way this looks good. But it’s important! Current consumption is temperature dependent, so I can’t measure it on my bench at 25° C and call it a day. I have to measure it on a wrist, warmed up by body heat of about 37° C.
(original)
Replying to @davidskeck
Definitely worthy of a section, for sure!
(original)
Replying to @josecastillo
ANYWAY! I should wrap up this thread and eat lunch. I’m super proud of what we did here, and I hope this thread shared some useful knowledge. Also: if you want a Sensor Watch board of your own, there are 10 days left in the campaign. It’s $35 — affordable! https://www.crowdsupply.com/oddly-specific-objects/sensor-watch
(original)
Replying to @the_perigoso
In this case, the LCD refresh frequency refers to how often the segments get energized, so you really have to keep it above 30Hz or the segments start to flicker (they start to discharge before the controller gets around to re-energizing them).
(original)
Replying to @hadwac
It’s the Nordic PPK2, yes! https://www.digikey.com/en/products/detail/nordic-semiconductor-asa/NRF-PPK2/13557476
(original)
Replying to @josecastillo
This also lets me measure the impact of each individual change:
• Disable button debouncing: 0.1 µA
• Lower LCD refresh rate: 0.15 µA
• Lower reference refresh frequency: 3.2 µA
That was the big one. That one-line change cut our sleep mode power consumption by a third. 🔥(original)
Replying to @josecastillo
Final test! I set up the project to toggle these enhancements on and off each minute and traced the results. 11.48µA in sleep with the old settings. 7.75µA with the new ones. You can see the floor clearly fall; before, we never dipped below 7.5µA. Now we bottom out at just 5 µA!
(original)
Replying to @bwshockley
yes definitely! And thinking about it now, it wouldn’t even need to be baked in; I think there may be enough in the watch library and Movement’s API to allow someone to write a “deep sleep” watch face that lets you set these settings, and enters/exits deep sleep on that schedule.
(original)
Replying to @josecastillo
I should prolly think through the UX for this use case. Perhaps an option to enable in settings. Maybe it’s not that rare for someone to wear a different watch for a while; if Sensor Watch could detect this condition, it could wait nearly 3 YEARS for you to want to wear it again.
(original)
Replying to @josecastillo
I suppose there’s one further frontier: turning the screen off. I resist this bc it’s not a great user experience, but maybe it could make limited sense. If you don’t interact with the watch for a month, maybe it’s in a drawer; no sense burning 4µA then… https://twitter.com/hyperkomplexe/status/1492160808264028165
(original)
Replying to @josecastillo
Added a purple line to that chart from earlier (rounded up to 8.5 µA since it’s rough anyway). This little morning exercise upped our estimated standby time by 76 days, or an extra two months of typical use! That’s two more months where you don’t have to replace that coin cell.
(original)
Replying to @josecastillo
LCD still looks good — no flicker, good contrast, and y’all: that is 8.42 µA in sleep mode! THAT’S A GOOD NUMBER! I previously measured 4 µA with the display turned off, meaning we’re getting an always-on display for just under four and a half microamperes!
(original)
Replying to @josecastillo
but WOULD YOU LOOK AT THAT! We’re measuring our LCD voltage 2,000 times a second! That seems excessive. Especially if we’re only zapping the segments at a rate of 30-60 times a second. Let’s turn that dial all the way down…
(original)
Replying to @josecastillo
From the datasheet: there are two refresh signals for the LCD. One’s meant to measure the LCD voltage and keep it on target; the other tops off the capacitor to keep a full tank for charging the segments. We’re already topping off VLCD as slowly as possible (250 times a second)…
(original)
Replying to @josecastillo
that line was also highlighted in yellow because I was worried about flickering when refreshing the display that slowly, so I’ll have to test it at different temperature ranges. But again, if it holds, it’s an option. Anyway. Deeper into the config file!
(original)
Replying to @josecastillo
interesting. I think it’s possible I shaved 1 µA off driving the display at 34.133 Hz instead of 56.889 Hz. I’m not certain — at these levels, even the temperature in the room affects current consumption — but if it holds up in a more robust test, that would be something.
(original)
Replying to @josecastillo
that brings us to the segment LCD controller. This thing has a lot of knobs and sliders. For example, I made this worksheet early on to explore how changing the clock prescaler and divsor leads to different refresh rates. Faster clocks mean more power. Did I nail this? 🤔
(original)