Additions, Solutions, and more Problems

A project log for IP00-minus

A sensor-packed "smartwatch" afflicted with poor wiring design choices, zero water/dust resistance, and massive feature creep.

RobRob 10/08/2022 at 18:390 Comments

Slowly continuing to update code and add some functionality (updates on Github). Most recent additions are:

I also solved a reset problem I was having- before, if my watch crashed (which it does fairly often), I had to reconnect it to my computer and reload the code to get it out of its crash state. I think this has something to do with Circuitpython not being explicitly designed to support multiple display buses; on hard reset it fails to clear the SPI bus (SCK in use error). After a bit of digging, I tried coding in a try/except where if the bus isn't clear on startup, the microcontroller initiates a soft reset. This worked!

Unfortunately, it seems that my RTC unit (in an Adalogger featherwing) has become quite unreliable, and stops working randomly. Whenever it stops working, I have to completely cut power to reset it- which means I also had to remove the coin cell backup timekeeping battery. I'm also seeing terminal outputs that suggest my rotary encoders connections are flaky, and I had to add some try/excepts to make them fail gracefully upon disconnect, and start back up on reconnect. I think it might be time to rip the hardware up and wire everything back together cleanly, just to eliminate as many potential sources of instability as possible.