InkWatchy
A firmware for the open source Watchy/Yatchy - with some unique features
git clone https://github.com/Szybet/InkWatchy.gitSzybet/InkWatchyInkWatchy
A firmware written from the ground up for the watchy and now also yatchy
Getting rusty🦀 and better looking with slint
Demo video previews here
User features
- Easy to install demo (no compiling!)
- Modular and configurable, a lot - if you disable a thing, it's not being compiled, it's like it was never there
- A lot of watchfaces
- Language Support: No perf/binary compromise: fully-validated EN/PL + less-tested DE/SK/IT
- All the regular goodies you would expect from a firmware: timezones, time drift compensation, NTP sync etc. (in one form or another)
- Full weather info via open meteo api in charts, 16 day weather forecast, 5 days of air quality + on watchfaces
- Calendar show of events, their time and description from an ICS file (So any calendar should sync)
- Alarms
- Basically unlimited ammount of them
- Quick alarms setting
- Pomodoro timer
- A book reader
- With pages changable by moving your hand
- Support for many books
- Interactive watchface by using watchface modules (Apps which are shown on the watchface directly).
- Bitcoin module, with a "Big" mode to be truly a "bitclock"
- A simple network module
- A small conway game of life module
- Image gallery module
- Calendar module, to view the nearest event
- Book module, to view the book text all the time
- Alarm module, to see when the next alarm rings
- Api module, to send button presses over the network (experimental)
- Debug menus to check on things on the fly (for example, a 3D demo of the accelerometer axis, to check if it works)
- Battery life features:
- Configurable wake up every x minutes at night, at default it's between 23-06 every 45 minutes
- A menu to manually, or after certain battery percantage drop enable these features:
- Disable wake up - The watch will sleep until you press a button, this extremely improves battery life
- Disable all vibrations - The vibration motor is heavy for the battery
- A "vault" which allows to save encrypted images to the watchy and view them if provided the correct PIN. All generated dynamically via a script. Uses AES128 cbc/ecb. Example use is a backup phone book, bitcoin key backup in the form of a QR code
- Games / Fun
- Blockchy, a tetris like game
- Snake (Written in rust!)
- Pong game
- Jumper game
- Dice app, with 3D animation
- Maze game, Paint - controller by accelerometer
- Conway game of life
- Small video player
- BLE game controller
- Experimental heart rate monitor (Just a proof of concept, works best on Yatchy)
Baiky app - Navigation & speed via BLE from your phone (Click for details)
baiky.mp4
A weekend project and a weekend feature, so it looks like it looks, but works well and does the job, further notes:
- the app is not open source & available to the public (The InkWatchy side of code is) for the simple reason that BLE sucks and I don't feel like supporting every device out there, works for me. If you really want it, well:
- I won't help anyone with issues with the app, even if you get it by the ways below, you can report the issue, I may fix it, but I don't promise anything
- Yatchy owners can request it and I will share it, no questions asked
- Discord server regulars, InkWatchy contributors too
- Some donations (Not only to me, but to some nonprofit organisations too, specified when the topic appears)
Notes via BLE keyboard (Click for details)
BLEKeyboard.mp4
Experimental, but works for me
- Reset cause shower. If your battery will be the cause of a reset, you will be informed about it on boot.
- Stuck button detection & error screen. Perfect when assembling the case or designing a new one
I integrated https://github.com/risinek/esp32-wifi-penetration-tool to this firmware as a service. I won't provide support for it or give any advice how to use it. Use for your own responsibility, don't do illegall stuff. Seriously.https://github.com/ckcr4lyf/EvilAppleJuice-ESP32 too. the same story as above.Those 2 options were removed because I updated the build system and didn't bother to make it work with it, with some cmake you should be able to easily re-add those features, I you can't use cmake, then you shouldn't probably use either of those features anyway
Devices supported
Supported devices:
- Yatchy
- Watchy 2.0
- Watchy 3.0 thanks to the community :)
- Watchy 1.0, 1.5 too but less used, less tested
Easy to install demo, Compiling, Some instructions, Further informations
Don't try anything by yourself without the wiki, you will probably fail.
Head out to the wiki
Sister projects
- https://github.com/Szybet/Yatchy
- https://github.com/Szybet/WatchySourcingHub
- https://github.com/Szybet/watchy-scom
Questions / Contact
Create a github issue or get in touch with me on the discord server or matrix space (on top of this read are links)
Outdated demos
Speed is messed up because of recording.
Demo of 1.0
demo_1.mp4
Demo of version 0.4
https://github.com/Szybet/InkWatchy/assets/53944559/0c85d516-ff50-4440-9351-32780107e998
demo of version 0.1
Some credits
- Can in a hoodie - Many awesome graphics, the logo
- C4nn0n - Testing a lot for the watchy v3 and beyond
- Glowy The Glow bug - For finding bugs, bugs bugs bugs bugs bugs
- izzylaif - Who did the "Fine, I will do it myself" move, respect
- picarica - Calendar improvements, many bugs reported, and more :D
- invpt - Huge thanks for pointing out the direction for a potential fix for screen ghosting, I easily have spend 2 weeks on it ;o
- Jason2866 - Help with solving platformio hackery
- GuruSR - I used some of his awesome libraries and looked at the code for how the watchy hardware should be handled. Also answered a few questions on discord. Thanks!
- Prokuon - I really liked the design of this watchface and almost coppied it. Thanks! - well the code is completly diffrent
and many other contributors, whom you can see on the panel on the right
Thanks!
more like this
TachiSnap
TachiSnap — Pixel Snapper for animation pixel artists. Rust + WebAssembly client-side tool for cleaning up AI-generated…
bit_gossip
Pathfinding library for calculating all node pairs' shortest paths in an unweighted undirected graph.
