Commit graph

730 commits

Author SHA1 Message Date
Joey Castillo ee95229e19 world clock: store settings in backup register if possible 2022-02-13 11:25:28 -05:00
Joey Castillo 0bb267c702 movement: start time zone list at UTC 2022-02-13 11:25:28 -05:00
Joey Castillo 96017d6ec1 movement: add mechanism for watch faces to use backup registers 2022-02-13 11:25:28 -05:00
Joey Castillo b8cb6f3bcf movement: prevent invalid tick frequency from breaking scheduled tasks 2022-02-12 22:19:01 -05:00
Joey Castillo 108b9991d2 simulator: add geolocation support 2022-02-09 13:40:29 -05:00
Joey Castillo 275960be83 movement: make stopwatch work off-screen + in low energy mode 2022-02-06 15:05:28 -05:00
Joey Castillo 18302bf9c4 movement: add low battery warning to simple clock 2022-02-05 17:42:43 -05:00
Joey Castillo 505f692037 sunrise/sunset: align date at extreme latitudes 2022-02-05 16:06:02 -05:00
Joey Castillo 74e47f9857 sunrise/sunset: update display after sunrise/sunset 2022-02-05 15:13:50 -05:00
Joey Castillo 7096435738 sunrise/sunset: improve timeout behavior 2022-02-05 14:05:33 -05:00
Joey Castillo f4bfe45b7c sunrise/sunset: remove test locations 2022-02-05 13:54:02 -05:00
David Keck e33530e1d0
Added output to watch face script
changed `--author_name` to `--author-name` to match typical style of command line arguments
changed some function names and implementations to improve readability
changed to `sys.exit` instead of exit as `sys.exit` is recommended for use in programs and `exit` is intended for use in the interactive shell (this can cause issues for some terminal emulators)
2022-02-04 21:44:45 -06:00
Joey Castillo a3085cb136 Merge branch 'main' of github.com:joeycastillo/Sensor-Watch 2022-02-01 00:24:20 -05:00
Joey Castillo 658739c880 sunrise/sunset: deal with timezones, other improvements 2022-01-31 21:22:48 -08:00
Joey Castillo 7085f89bfa sunrise/sunset: always set the sign bit 2022-01-31 17:17:34 -08:00
Alexsander Akers a4cb3c8594 Adjust function semantics by "flipping" bit order 2022-01-27 12:06:06 -05:00
Alexsander Akers a559d089f1 Add new function to disable certain RTC periodic callbacks 2022-01-27 12:06:06 -05:00
Joey Castillo 5d5e5b125a watch face script: autopopulate year 2022-01-26 20:31:04 -05:00
David Keck c130f13bb8 minor typo fix 2022-01-26 19:15:16 -05:00
David Keck cc2696c71a added missing newlines to template files 2022-01-26 19:12:12 -05:00
David Keck d58908517b
Added license info to script 2022-01-26 19:07:51 -05:00
David Keck 23610430b3 Added rough draft of watch_face script to generate custom watch faces from template. Corrected template file's missing includes and incorrect memset placeholder. 2022-01-26 18:59:48 -05:00
Joey Castillo 71ea3b9de9 movement: add documentation mentioned in #42 2022-01-25 17:36:04 -05:00
Joey Castillo 2a59ae950f movement: add blinky face 2022-01-25 17:28:22 -05:00
Joey Castillo bcca6cc596 movement: remove blinky face 2022-01-25 17:27:46 -05:00
Joey Castillo f819a18791 movement: add template for watch face generator 2022-01-25 17:12:56 -05:00
Joey Castillo 34c7ecfd96 movement: move watch face includes to a separate file 2022-01-25 17:06:04 -05:00
Joey Castillo 2e345d9f66 movement: slight reorganization 2022-01-25 17:04:07 -05:00
Joey Castillo fcfb651c11 movement: add two faces to default build 2022-01-25 15:53:18 -05:00
Joey Castillo 249bfc183c movement: move beat time to clock folder 2022-01-25 15:39:04 -05:00
Alexsander Akers b8de35658f
Sensor Watch Simulator (#35)
* Put something on screen

* Use the 32bit watch_date_time repr to pass from JS

* Implement periodic callbacks

* Clear display on enabling

* Hook up watch_set_led_color() to SVG (green-only)

* Make debug output full-width

* Remove default Emscripten canvas

* Implement sleep and button clicks

* Fix time zone conversion bug in beats-time app

* Clean up warnings

* Fix pin levels

* Set time zone to browser value (if available)

* Add basic backup data saving

* Silence format specifier warnings in both targets

* Remove unnecessary, copied files

* Use RTC pointer to clear callbacks (if available)

* Use preprocessor define to avoid hardcoding MOVEMENT_NUM_FACES

* Change each face to const preprocessor definition

* Remove Intl.DateTimeFormat usage

* Update shell.html title, header

* Add touch start/end event handlers on SVG buttons

* Update shell.html

* Update folder structure (shared, simulator, hardware under watch-library)

* Tease out shared components from watch_slcd

* Clean up simulator watch_slcd.c inline JS calls

* Fix missing newlines at end of file

* Add simulator warnings (except format, unused-paremter)

* Implement remaining watch_rtc functions

* Fix button bug on mouse down then drag out

* Implement remaining watch_slcd functions

* Link keyboard events to buttons (for keys A, L, M)

* Rewrite event handling (mouse, touch, keyboard) in C

* Set explicit text UTF-8 charset in shell.html

* Address PR comments

* Remove unused directories from include paths
2022-01-25 15:03:22 -05:00
Joey Castillo 9e24f6c336 movement: add blinky face 2022-01-23 13:04:38 -05:00
Joey Castillo 6ca8c78e0d movement: didn't mean to add sunrise/sunset by default 2022-01-21 12:06:06 -05:00
Joey Castillo a21ad54aac movement: simple UI for entering wearer location 2022-01-21 11:25:43 -05:00
Joey Castillo 68f17c8970 movement: add time zone conversion in sunrise/sunset face 2022-01-21 00:11:43 -05:00
Joey Castillo 99c518e421 movement: long press on MODE always dismisses the active face 2022-01-19 14:32:33 -05:00
joeycastillo a499cebc3c
Merge pull request #38 from davidskeck/patch-2
Simple Clock: Update to signal exactly on the hour
2022-01-19 14:14:39 -05:00
David Keck caf41d28dd
Reset selection to 0 on resign from setting state
I believe this also needs to be set back to 0 so the setting screen will resume at minutes, not potentially at settings on next run.
2022-01-19 12:12:43 -06:00
David Keck 7de76465d7
Simple Clock: Update to signal exactly on the hour
I was getting the buzzer at 59 minutes past the hour, not exactly on the hour. This changes to buzzing at exactly HOUR:00:00. Tested this locally.
2022-01-19 12:06:12 -06:00
Joey Castillo 138b3d0c5e movement: reset tick to 1 Hz between watch faces (fixes #36) 2022-01-19 11:16:10 -05:00
David Keck 01df0ea231
Changed reset mode to setting instead of waiting
After thinking about this, I think it is more intuitive that this would only apply when in setting mode.
2022-01-18 22:53:25 -05:00
David Keck 3d5ec1adda
Added ability to reset to default timer value
Added option to reset to the default timer value when in waiting mode and on long press of alarm. This was useful to me as I sometimes accidentally increase the timer value and then would need to loop around to get back to the default value.
2022-01-18 22:29:04 -05:00
Joey Castillo 903ae6eff8 movement: sunrise/sunset face documentation 2022-01-16 09:39:18 -05:00
Joey Castillo 010bb3be95 sunrise/sunset face: no need to update this every second 2022-01-15 19:35:47 -05:00
Joey Castillo 5fccc24c98 Merge branch 'main' of github.com:joeycastillo/Sensor-Watch into main 2022-01-15 19:27:24 -05:00
Joey Castillo baf25aaa7a movement: add sunrise/sunset face 2022-01-15 19:23:49 -05:00
joeycastillo 3be8b03c4f
Merge pull request #29 from tahnok/countdown
Countdown
2022-01-15 19:01:06 -05:00
Wesley Ellis 02c84dfd97 Add Countdown Face
A simple countdown face using movement_schedule_background_task
so that it rings, even if the another face is active

Limited to 99 minutes and 59 seconds so that the watch isn't staying
out of deep sleep for too long
2022-01-15 17:49:00 -05:00
Joey Castillo 41eaa9c1c0 add MIT license text to movement files 2022-01-15 14:53:56 -05:00
Joey Castillo 1d5d2db823 new simulated screens 2022-01-06 18:19:29 -05:00
Wesley Ellis 37ff7b9c26 Add movement_cancel_background_task
Provide a way for a scheduled background task to be cancelled
2022-01-01 14:13:04 -05:00
Joey Castillo 311cfdb5f4 rearrange hello face, documentation reasons 2021-12-22 10:02:48 -06:00
Joey Castillo 9628379382 add comments to 'hello there' face 2021-12-21 12:58:05 -06:00
Joey Castillo 221e41f58c add 'hello there' face, demo for documentation 2021-12-21 12:30:20 -06:00
Joey Castillo 6256e709bf movement: add hourly signal to simple clock face 2021-12-21 10:05:06 -06:00
Joey Castillo 1a4612f259 add documentation for watch face index 2021-12-21 08:20:08 -06:00
Joey Castillo 60fe969191 Movement: give watch faces their index at setup time 2021-12-20 17:02:17 -06:00
Joey Castillo 03e107b81a Movement: allow scheduling precisely timed background tasks (resolves #28) 2021-12-20 12:37:11 -06:00
Joey Castillo 762af872d2 fix missing prototype warnings 2021-12-10 12:00:26 -05:00
Joey Castillo 616587a203 add demo watch face 2021-12-10 11:33:07 -05:00
Joey Castillo c5400e437f ensure accelerometer test face always stays active 2021-12-05 22:56:09 -06:00
Joey Castillo eb66b67e8e more accelerometer tests: track interrupts on each axis, log on the quarter hour 2021-12-05 16:25:41 -06:00
Joey Castillo 5a6bf6bfe2 movement: remove testing watch face from config 2021-12-03 19:06:25 -05:00
Joey Castillo 8e2bf8591a movement: allow watch faces to request zero ticks 2021-12-03 11:30:36 -05:00
Joey Castillo 25d54101b1 movement: update comment; we store this data now 2021-12-02 15:11:18 -05:00
Joey Castillo 77d3e5640f movement: add option to always snap back to first watch face 2021-12-02 15:10:49 -05:00
Joey Castillo 8723c70033 movement: fix off-by-one error in accelerometer test face 2021-12-01 18:57:03 -05:00
Joey Castillo 0679d84c03 movement: add experimental accelerometer data logging face 2021-12-01 14:57:06 -05:00
Joey Castillo 2504a922a3 movement: help beats face update the screen less often 2021-12-01 11:30:19 -05:00
Joey Castillo 0f89c11eba movement: remove floating point math from beats face 2021-12-01 10:43:01 -05:00
Joey Castillo b60d63f263 movement: after profiling, temp and battery can ignore timeout 2021-12-01 09:25:40 -05:00
Joey Castillo 333c5e8b9e movement: remove TODO item (we profiled it, it's fine) 2021-12-01 09:07:40 -05:00
Joey Castillo af27750a6d movement: fix yesterday's bug that was keeping us awake 2021-11-30 10:23:20 -05:00
Joey Castillo 0fb8afda81 movement: add alarm and signal functions 2021-11-29 14:54:13 -05:00
Joey Castillo 7529866267 movement bugfix: prevent repeated timeout events from stalling watch face 2021-11-29 14:04:24 -05:00
Joey Castillo 03fb09f5b4 movement: more granular button and LED timing via fast tick 2021-11-29 10:33:42 -05:00
Joey Castillo 83a9dd8a32 movement: these durations don't need to be 32-bit ints 2021-11-28 17:17:51 -05:00
Joey Castillo c8e21a1957 movemment: tweak capitalization of some settings 2021-11-28 17:16:36 -05:00
Joey Castillo 63448e1028 background tasks have been implemented 2021-11-27 17:00:16 -05:00
Joey Castillo 3a7c73a34e movement: preferences should show 'blu' for watches with blue LED 2021-11-27 16:48:51 -05:00
Joey Castillo 002d368a25 movement: add world clock face 2021-11-26 13:43:47 -05:00
Joey Castillo aac7a2a854 movement: have beats and TOTP face use new time zone setting 2021-11-25 10:47:59 -05:00
Joey Castillo b94c0ba65f movement: store settings in BKUP to persist across resets 2021-11-25 10:39:09 -05:00
Joey Castillo 5c3967aea2 movement: implement time zone setting 2021-11-25 10:36:01 -05:00
Joey Castillo 1a1a862d79 movement: TOTP face, pad code with leading zeroes 2021-11-24 12:20:32 -05:00
Joey Castillo 169d4486f9 movement: make TOTP face go home on timeout 2021-11-24 12:18:28 -05:00
Joey Castillo 3a420d5c6c add header guards, move declarations to source file 2021-11-24 12:14:17 -05:00
Wesley Ellis 4a0ff55773 Properly vendor TOTP-MCU temporarily 2021-11-23 21:40:27 -05:00
Wesley Ellis 121e6fd165 optimize totp face and add countdown 2021-11-23 21:40:27 -05:00
Wesley Ellis b7ed9adb6c Add initial TOTP watch face impl
Vendor code from https://github.com/Netthaw/TOTP-MCU to do the
heavy lifting of computing SHA-1 and HMAC and the rest of TOTP

Also implement a date_time to unix timestamp method
2021-11-22 21:37:21 -05:00
Joey Castillo 7817e6696e Merge branch 'main' of github.com:joeycastillo/Sensor-Watch into main 2021-11-22 17:35:50 -05:00
Joey Castillo 0ca729eaba move thermistor calculation to watch utilities 2021-11-22 17:31:51 -05:00
Wesley Ellis b0ec40ae46 Add stopwatch face to movement
Simple stopwatch that only counts seconds (not subseconds), minutes
and yes, even hours
2021-11-10 21:17:24 -05:00
Joey Castillo 1b4bfe35c2 movement: day one watch face, counts days from birth 2021-11-08 09:59:23 -06:00
Joey Castillo 61f479db5a movement: preferences refactor, two new types 2021-11-08 09:25:06 -06:00
Joey Castillo 67d84c6d42 bugfix: activate current watch face when waking from sleep 2021-11-08 07:11:59 -06:00
Joey Castillo 82e7a61759 beat time: add low energy tick animation 2021-11-07 00:30:25 -04:00
Joey Castillo ef40d58afc movement: refactor timeout to tick first, then notify 2021-11-07 00:29:27 -04:00
Joey Castillo 0f03257ee9 movement: add voltage monitor watch face 2021-11-06 23:52:00 -04:00
Joey Castillo 88f41b12fc don't destroy our temperature log when waking from sleep 2021-10-25 18:32:59 -04:00
Joey Castillo c8041627ee movement temperature face: only enable thermistor when reading data 2021-10-23 18:15:22 -04:00
Joey Castillo 8475ffcd7a movement: first crack at background tasks API 2021-10-23 17:55:19 -04:00
joeycastillo 0b4d0de15b
Merge pull request #19 from tahnok/beats_watch_face
Port beats to movement framework
2021-10-23 16:36:26 -04:00
Joey Castillo 27f699af80 WIP: thermistor data logger 2021-10-23 16:23:36 -04:00
Joey Castillo 13d6ea10d7 fix name of ifdef in thermistor readout face 2021-10-23 16:14:03 -04:00
Joey Castillo 8f6cd8b290 move weekday lookup to new utilities file 2021-10-23 16:13:11 -04:00
Wesley Ellis 66e95e4ab8 Port beats to movement framework 2021-10-23 15:45:20 -04:00
Joey Castillo f1a706792e movement: add character set demo 2021-10-21 17:28:59 -04:00
Joey Castillo b88cd0cd7e movement: add thermistor readout face 2021-10-21 13:13:46 -04:00
Joey Castillo 38a2dff234 more accurate names for deep sleep and shallow sleep modes 2021-10-20 13:45:22 -04:00
Joey Castillo 1020dd7898 movement: fix preferences glitch, add some notes 2021-10-20 10:36:55 -04:00
Joey Castillo 148a47f76a movement: add tick animation in sleep mode 2021-10-19 15:37:08 -04:00
Joey Castillo 75be621914 movement settings: add timeout and LED duration 2021-10-19 13:46:25 -04:00
Joey Castillo 3271009857 fix typos 2021-10-18 15:36:39 -04:00
Joey Castillo 77951ccda1 add readme for movement app 2021-10-18 15:11:01 -04:00
Joey Castillo 86d316008c movement: remove faster sleep / timeout intervals 2021-10-18 13:55:30 -04:00
Joey Castillo 1db9e18b92 pulsometer: rearrange switch for clarity 2021-10-18 13:55:30 -04:00
Joey Castillo 93624f0b69 add timeout event to give faces a chance to resign 2021-10-18 13:55:22 -04:00
Joey Castillo 8dbbe92a9b pulsometer: make type more c-like 2021-10-18 11:27:36 -04:00
Joey Castillo b4d4f62ba8 pulsometer: reset tick in resign function 2021-10-18 11:15:58 -04:00
Joey Castillo c27dbc779b fix misspelling of pulsometer 2021-10-16 16:51:36 -04:00
Joey Castillo 05fe055f99 automatically determine number of watch faces 2021-10-16 16:34:12 -04:00
Joey Castillo 0cfb37c671 early work on background tasks, documentation 2021-10-16 16:03:52 -04:00
Joey Castillo 458ebf6987 remove unimplemented settings for now 2021-10-16 13:48:16 -04:00
Joey Castillo 69397e9b0f implement led duration setting 2021-10-16 13:47:42 -04:00
Joey Castillo 3e539a9e63 screensaver mode is now low energy mode 2021-10-16 13:40:17 -04:00
Joey Castillo 8f5de18b94 clarify property names 2021-10-16 13:28:52 -04:00
Joey Castillo d36331ce4e rename types to be more c-like 2021-10-16 13:26:23 -04:00
Joey Castillo d5ac4cb71b widgets are now watch faces 2021-10-16 13:14:52 -04:00
Joey Castillo e8461984d6 launcher is now movement 2021-10-16 12:58:14 -04:00