- Design Philosophy
- Has to be *actually* wearable enough to wear every day.
- Comfortable
- doesn't interfere with my mobility
- Not just a nerd conversation piece that sits on my workbench.
- Provides useful information that I reference often (at minimum hourly).
- Enough battery life to maintain all sensor/logging functions continuously for ~12 hours before recharging.
- Exposed wires and boards for that "cyberpunk" aesthetic. (Kinda conflicts with the "wearable" requirement, because as soon as it starts raining I got problems.)
- Has to be *actually* wearable enough to wear every day.
- (Kinda) Unique Features:
- Three screens driven from a single ESP32-S3 microcontroller.
- Circuitpython natively supports only a single display bus, but you can change a parameter that allows more than one, and custom build from source. Note: this is kinda buggy, and the buses aren't properly released upon reset (Hard Crashes), so I'm SOL if the watch crashes and I'm not near a computer to manually reset and reload the code.
- It's a watch that reads out atmospheric particle counts (I haven't seen any other watch do this, at least in my limited search)
- Can store and display all my QR/barcode IDs (memberships/bonus cards/ bed/bath/beyond coupons?) on a laser-scannable SHARP display.
- Plug-and-Play I2C expandability- hot swap I2C devices (some add-on boards get mad when you do this, but it still generally works when I've got coroutines coded for the add-on in question)
- Twin Clicky Rotary encoders for control!
- Three screens driven from a single ESP32-S3 microcontroller.
- Compact, light, and useful enough to wear daily. Not just nerd-candy, I actually rely on the data it gives me.
- Currently Implemented (Functional) Capabilities:
- Tells the time (it's a *watch*)
- Reports PM2.5 particle concentrations (air quality)
- Reports temperature (sensor is raised a couple centimeters above the wrist to avoid body heat/other electronics heat)
- Reports relative humidity
- Reports barometric pressure
- Reports battery level (built-in voltage monitor on the ESP32-S3 doesn't play well with Circuitpython- known issue that is still unresolved on the adafruit github, but I just coded around intermittent failure with try/except.)
- Scans and Reports list of nearby 2.4GHz Wifi APs
- Displays Barcodes/QR Codes on SHARP display for laser barcode scanner compatibility
- Plays a NyanCat animation on the TFT display 0_0
- RTC time setting through GPS (currently manually actuated due to I2C buffer weirdness in PA1010D GPS unit)
- RGBW Programmable Neopixel Flashlight
- Successfully Tested, but not currently implemented Capabilities:
- Cycle through multiple different sprite animations on all 3 screens
- connect to Wifi access points, parse web data
- Datalogging onto an SD card from sensors
- Planned Software Features that haven't been implemented/tested yet
- Bluetooth stuff
- remote control of IOT devices (probably MQTT)
- Access Point emulation for file serving from SD
- General Wifi shenanigans (Packet capture/logging, Deauth, etc.)
- uploading log data through wifi
- GPS waypoint setting/finding
- IoT control through GPS localization + manual control
- Features that I might try to add if I'm feeling crazy enough (unlikely)
- LoRa messaging (kinda expensive to make peripheral devices though)
- ToF distance measurement (not hard to implement, but I don't really have a daily use-case for a distance sensor.)
- Reprogrammable NFC tags (also trivial to implement, but I have a Flipper Zero that fulfills this niche for me much more effectively).
This, for sure, is the most cyberpunk thing I saw in a while. Well done. Even I'm not totally convinced you achieved that comfortable for wearing every day design goal.