Friday, September 18, 2020

Watch Charger Support

 I have a (Google) Wear OS smartwatch, the LG Watch R. It's pretty old now (for a smartwatch), and a few months ago, the strap broke. I bought a nice purple replacement.

But, the replacement strap is made of a much firmer material than the old one was. Now, the watch won't easily sit in its charging cradle, because the straps push down and lift the watch up, making it difficult to charge.

The charging cradle for the LG Watch R, a plastic disk with a raised lip to hold the watch in place, and metal contacts.
The charging cradle for the LG Watch R, a plastic disk with a raised lip to hold the watch in place, and metal contacts.

The charging cradle from above, with the watch unable to sit on it correctly.Another view of the watch unable to sit on the charger
The misalignment means the contacts in the cradle don't line up with the watch's. Even when they do align, sometimes there's too little pressure for the watch to charge consistently.

There are chargers which are lifted higher to help solve this problem, but I don't have one (well, I do, but it's in the office that I haven't been to since March).

For a while, I was solving the problem just by balancing the charger on a small box, but this was easy to knock over, as it was too light and didn't help hold the charger in place.

I decided to make a support out of air drying clay.
A hollow cylinder made of coiled white air drying clay, about an inch and a half tallThe same cylinder viewed from above, showing how it is hollow.


It was easy enough to use the standard coil like for a pot. Since I didn't need to hold anything inside it, I didn't make a bottom.

For the top, I tapered the clay so that the spiral would flatten out. I also pressed the charger down onto the wet clay, making a better surface for it to sit on. I pinched out the three ridges along the edge, and supported them with additional clay, to help keep the charger put.

Around this point I was inspired by clay items I've seen before like these:
A Roman bowl with designs on the outside
An Incan plate with painted designs on the surface and a handle

While mine looked rather boring by comparison. I used one of my clay tools to push a series of little triangles all up the coil, kind of suggesting scales on a snake.

When it had dried, I found that the "scales" gave it a particularly nice texture to hold.

Drying shrinks this kind of clay slightly, so there was a chance that it wouldn't work out when I placed the charger back on top of it.

I'm glad to say that it worked!

The charging cradle from above sitting on top of the clay support.

The watch sitting snugly in the charging cradle, which is lifted by the support.

Possible next steps include adding a mild adhesive to keep the clay in place, and attaching the wire to the side of the cabinet to keep it from getting in the way.




Sunday, August 9, 2020

Recording Ideas

I had intended for this to mostly be a project blog, but I've found it harder to document them than I'd like, so posting has been slow.

In addition, there keep being concepts I tell to several people and I would like to be able to point back to. Especially when there's a key idea that I might miss some pieces of later. So, fine, I guess I'll make an "ideas" category and put some things in it.

To try to stay on theme a little more, I'll note how formulating an idea can be a process a lot like building something, for me. It likely starts with a sense of what I want the end to be, but no clear plan for how to get there. Or, it can start with some raw materials that I want to combine well. I can let the raw materials, whether they are the focus or not, spin around in my head for a while, and I often seem to expect that I'll be able to come up with a complete image just with the power of my mind.

Often, this isn't true. There are too many variables and possibilities, often with no clear way to choose among them. They can be equally good, or hard to evaluate. I benefit a lot from getting started in some way that narrows things down. For projects, this often means taking the first few parts and picking a configuration to put them together. Either it works and now I have a real starting place, or it doesn't and I learn from that. For an idea, the key is getting out of my head and applying language, which might mean writing it out, or might mean telling someone. For writing, I have to overcome the tendency to skip over what I "know," because if I do then I'm back where I started, stuck. Better to write the obvious parts, as has to happen when I frame an idea in a conversation, and then I can start to progress. It works surprisingly well.

Saturday, March 7, 2020

Departure Board

Update: I have released the source for this, which is owned but not officially supported by Google. My partner named it the Charlie Board. It can be found at https://github.com/epw/charlie-board.

I live on a fairly busy road, with three bus lines that go past my house in both directions. They have stops within a two minutes' walk from my house. But, being the MBTA, their actual timing is random and unpredictable.

However, the MBTA does deserve some credit. All the buses are now equipped with GPS, and their locations are easily queryable using the MBTA v3 API.

I decided to make a departure board, like the Cambridge Public Library has.


The departure board consists of a flatscreen monitor mounted to the wall in my front hall, with a Raspberry Pi for the brains. The Pi runs a Web server with a page that queries the MBTA and displays upcoming departures. The page refreshes once a minute. Finally, the Pi is configured to start Chrome in "Kiosk mode" when it boots, making a fullscreen version of the page with no extra Chrome popup messages (like "Restore session?"). Together, this makes the board function easily with its one purpose, providing information that is as up-to-date as possible even if the Pi spontaneously reboots.

I iterated on the UI, starting with a very simple one that showed the data coming through:

Before moving to the current setup, that uses a background that is less bright, particularly at night, and making the values much more reader-friendly.

To save power when it isn't being used, I added a pair of cron jobs to turn the screen off at 1am and back on at 5am. This still wastes some power, when no-one is home, but as I haven't been able to make a presence detector yet, this still turns it off for 4 hours a day when it surely wouldn't help.

crontab:
0 5 * * * /home/pi/bin/turn-on-screen
0 1 * * * /home/pi/bin/turn-off-screen
turn-on-screen:
vcgencmd display_power 1 > /dev/null
turn-off-screen:
vcgencmd display_power 0 > /dev/null
 
I think these should work for any HDMI screen controlled by a Raspberry Pi, but this is the only one I've tested it on.

I also have slowly added trains as they became useful. I'm looking forwards to adding Green Line trains when the new stop opens, since it's not much further from my house than the bus stops are.



What Comes Next?

This has been pretty stable. I don't have to make changes very often these days, and changes are easy when I do need to. It's been serving its purpose, making it easy to plan when trying to get somewhere in a hurry, and encouraging me to head outside for a trip when I don't have much to do.

The main limitation is that it's just in the one place. And it's true, there are lots of other sources of MBTA information, like the useful Transit app, but the screen shows the value of having the departure information available at just a thought, without even having to take out a phone.

I don't want to put screens for this all over my house, but I do have Google Homes on every floor. This seems like the next place to go. Making it answer "When does the CT2 bus leave?" would probably be quite useful.