Tweets
Profiled some of the new additions to Movement. Good news: world clock is barely more power hungry than regular clock, and temperature + battery monitor are pretty good (tho I am burning a couple of µA by not switching off the 1.024V reference voltage in between battery readings)
(original)
Replying to @cabe_bedlam
the funny part is, it does! any code that runs on the dev board also runs on the watch; it’s just a chunkier form factor for the same chip and peripherals
(original)
among other projects today: pacing the workshop with this strapped to my wrist
(original)
Replying to @josecastillo
more checkmarks today.
(original)
I went to J-school, and yet I don’t know how to process a style of writing that treats “her engagement with social media posts that encouraged the killing of top Democrats” as “divisive moves and remarks” instead of “oh my god the house is on fire.”
THIS IS NOT NORMAL. @politico(original)
Replying to @anne_engineer and @CaptnAmy
Congrats, y’all!!
(original)
Yeah, I’m into NFTs:
Not
Fucking with
Technologies that exacerbate the climate crisis.(original)
and on the blockchain, these words appear:
“look upon my non-fungible tokens, ye mighty, and despair.”(original)
Replying to @ChengduLittleA
everything is hard, and yet you keep doing it. there’s a lesson here somewhere…
(original)
Replying to @M_uh_lee
Nostrand was veritably abandoned as I biked to the shop today. IT WAS SO NICE!
(original)
Replying to @josecastillo
State of the list:
(original)
Replying to @josecastillo
Also (finally!) I have the beginnings of a driver for the accelerometer sensor board. This is just showing X Y and Z readings (scaled to ±64) at a range of 2G, so 0 is no acceleration and 32 is 1G on that axis. Promising! Definitely need to figure out interrupt configuration tho.
(original)
Replying to @josecastillo
The UX for this is fun. In movement_config.h, you can drop as many instances of the world clock face as you want, and then configure them right there on the watch. Say you wanted to turn that Shenzhen slot into a UTC clock? All good; just rename it, and change the offset to 0:00.
(original)
Replying to @josecastillo
UPDATE: things got checked off. With a big assist from @tahnok, we now have UNIX timestamp conversion in the watch library! This enables all sorts of useful calculations, including world time. My maker clock now fits on a wrist: the time in Portland, Thief River Falls & Shenzhen.
(original)
demonstrated the sensor watch dev board for a friend tonight and stumbled into an interesting way of describing the prototype: “there are only ten of these LCD’s in the world and I have all of them.”
(original)
Replying to @adrianbowyer, @pinski1_ and @tomfleet
Whoa, cool!
(original)
What kind of part would I be looking for if I wanted to recreate the ThinkPad TrackPoint? Do they even make analog force-sensing joysticks, is that a thing?
Asking for a (smol) friend.(original)
Replying to @bitshiftmask, @GregDavill and @mntmn
Now I can finally migrate my projects to kicad just by opening them?
(original)
Replying to @Grahamballs
life is just packing your brain with what you need for that last trip
(original)
Replying to @josecastillo
the bird slayed, btw. Did a variation on my apple herb brine from a couple years back, substituting sichuan peppercorns for the usual black peppercorns, and it did exactly what I hoped it would do :)
(original)
It’s testament to Apple’s simplification of technology that I was able to use LIDAR sensing to scan my roast turkey, send it to my (not very techie) family on iMessage, and immediately they grokked it well enough to put it on their table and make augmented reality jokes with it.
(original)
Replying to @roamingryan
it has them, yeah, i’m all good. just saying, that’s a lot of time zones for one rock.
(original)
Replying to @josecastillo
I’m actually far too tired to be implementing time zones at 1:15 in the morning, but my turkey needs a bit more time in the brine so as long as I’m up, y’know. two birds, one stone.
(original)
honestly, who has this much time?
(original)
Replying to @josecastillo
one other interesting bit: the PS (powersave) and CHG segments are on their own separate common line on the bottom. Seemed odd, but then I realized: it’s probably designed that way so the watch can turn off all but 2 LCD lines, to drive 1 segment with as little power as possible.
(original)
Replying to @josecastillo
the display glass also runs on 3 volts, which means I could probably drive it with a SAM L22 (N variant; would need a ton of pins). anyway, no imminent plans for this one: I just wanted to have it packed away in my brain for later :)
(original)
Replying to @josecastillo
well that was surprisingly successful! At first I saw all those LCD pads and thought no way, I’ll never be able to build a mod for this one. Fascinatingly though, this LCD glass is basically two separate displays; the grid on top is totally separate from the digits on the bottom.
(original)
oh boy, here i go reverse engineering again
(original)
i haven’t had a business card in years, but lately I want to make one that reads:
joey castillo
unaffiliated(original)
Replying to @josecastillo
also rather disappointed these didn’t upload at full resolution, but (as is the theme for this post) trying again
(original)
Measure twice, cut onc—
I mean, cut twic—
I mean—
Y’know what, maybe just keep hacking at it ‘til it starts to makes sense.(original)
Replying to @mattk and @tahnok
the F-91W display is weirdly almost built for this… like, forget an index, there are two (roughly) alphanumeric characters on the top row so you could almost get a two letter name for each (GO for Google, SL for Slack, etc), and the 2 digits on the top right can count from 0-39!
(original)
Replying to @tahnok and @mattk
docs on this aren’t 💯 yet but this was the idea behind having context passed to each watch face. Like, you could declare a static int num_faces in your setup function, stash it in context & increment it. Then the context in your loop function will point to which TOTP face it is.
(original)
Replying to @virgilvox
Wow.
(original)
RT @tahnok: It works! TOTP code generated on a wrist watch!
(original)
Replying to @timonsku
I put on the tune! But totally forgot to go back and like the tweet. (It was a jam 😄)
(original)
Replying to @tahnok
I really need to rewrite the docs around Movement and add some of these notes. Adding to the list!
(original)
Replying to @tahnok
Ah yeah, it’s kind of a headache to navigate in Movement when you don’t have, y’know, buttons. My tendency is to put the watch face I’m testing first in the lineup in movement_config.h (instead of the clock) and then making sure it ignores the timeout so it boots there and stays.
(original)
Replying to @arturo182
(original)
Replying to @tahnok
I’m gonna play some more tomorrow with the code you sent! My previous instinct was to copy from the ASF code that was doing this in an earlier rev of the watch library, but it doesn’t look like it’s terribly efficient — O(n) where n is the current year 😬 https://github.com/joeycastillo/Sensor-Watch/blob/a65dcf1ec8071878988d5aa0390c5be66ba52a11/watch-library/hal/src/hal_calendar.c#L216
(original)
Replying to @tahnok
Have you been able to use the USB UART to at least print things off to the debug console? Might be simpler than trying to put the watch back together every time there’s a change (just make sure to put a \n at the end of every line you want to printf)
(original)
Replying to @josecastillo
(2/2) after more thinking and playing with some of these, I think I’ve settled on the one I prefer and a reason why, but I’m curious what other folks think. (the options in the poll read across the whiteboard, from top left to bottom right)
(original)
A few weeks ago while thinking about thermistor circuits (as one does), I drew this on the whiteboard. Active low / active high refers to whether you set an output high or low to enable the circuit. High side / low side refers to whether the thermistor is tied to V+ or GND. (1/2)
(original)
Replying to @mattk and @Salman_Motlaq
This actually sent me down a fun rabbit hole this morning, and it left me curious to do some tests. Because sure, an LDO isn’t all that efficient dropping 5 volts to 3.3. But if you imagine a LiPo spending most of its life at 3.5, 3.6V, could it be a wash? https://www.nklabs.com/post/2020/01/14/when-is-an-ldo-more-efficient-than-a-switching-power-converter
(original)
Replying to @josecastillo
Boards on the left and right are @oshpark: four layer and After Dark. I made it a Feather because I figured hey, an ultra-low-power Feather with an LCD could be useful on its own! Then all the watch specific bits — buttons, buzzer, LED — live on their own standalone FeatherWing.
(original)
Replying to @josecastillo
I first shared this work at the @adafruit Show and Tell last week. The key idea: it’s a Feather-shaped board with the same microcontroller and LCD layout as the watch, so you can prototype watch apps on there first. Any code that runs on the Feather? It can also run on the watch!
(original)
Math library: done (it was just figuring out where to place the -lm flag). Now on to thermistor support in the watch library! This Sensor Watch Dev Board is going to be a godsend. No more disassembling and reassembling a watch every time I want to test a change! (a thread, maybe)
(original)
Replying to @tahnok
That would be helpful! I was also going to look to see what I could crib from libicu’s calendar functionality, which I know macOS uses for Foundation’s NSDate. I like the idea of being able to advance a date/time by a given set of date/time components. 🤔 https://unicode-org.github.io/icu/userguide/datetime/
(original)
Replying to @josecastillo
the first step is admitting you have between six and 37 problems.
(original)
if I did nothing else today, at least I put together a TODO list for things I want to do — and making a list is the first step to checking things off of a list (tho I’m told you do actually have to do things somewhere in between).
(original)