Commit graph

464 commits

Author SHA1 Message Date
TheOnePerson ca7e704429
Add quick counting through hours, minutes, etc. to set time face. (#131)
* set time face: add quick cycling through hours, minutes, etc. and handle February 29th properly

* set time face: add failsafe for "hanging" quick cycle mode

* set time face: get rid of compiler warning

* set time face: Fix typo and indentation errors
2023-01-11 15:05:43 -05:00
Jeremy O'Brien 7a41c95d81 add tarot face documentation as per the new template.h 2023-01-11 14:55:48 -05:00
joeycastillo 05a539ab52
Merge pull request #169 from neutralinsomniac/tarot-face
Implement tarot card face
2023-01-11 14:25:37 -05:00
joeycastillo 784defcd55 revert tweak to 'world' card 2023-01-11 13:45:11 -05:00
Jeremy O'Brien e43a43944f tarot: move comment to where it belongs 2023-01-11 13:33:55 -05:00
Jeremy O'Brien 0293daa926 Implement card flipping and arbitrary # of card draws up to 10 2023-01-11 13:24:52 -05:00
joeycastillo a65d728877 tarot: tweak to display of 'world' card 2023-01-11 12:49:44 -05:00
joeycastillo dc5290410e tweak some arcana for readability 2023-01-11 12:15:42 -05:00
joeycastillo caf7689b2e
Merge pull request #170 from strickinato/add-doc-to-template
Add documentation to x_face.h template to encourage more docs
2023-01-11 11:44:44 -05:00
Aaron Strick d3005eeb5d Add documentation to read me to encourage watch face designers 2023-01-10 21:58:43 -08:00
Jeremy O'Brien a0524ba4e6 Implement tarot card face 2023-01-10 23:07:43 -05:00
Jeremy O'Brien 8331a54896 Remove more unnecessary conditionals 2023-01-10 21:02:47 -05:00
Andrew Mike 280d8b246a
New watch face: Tally counter (tally_face) (#160)
* Add tally face

* Fix copyright block to reflect real author

* Fix indentation

* More style editing, edited comments

* silence warning in tally_face

Co-authored-by: Andrew Mike <andrew@7thmagic.net>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-01-10 17:02:41 -05:00
Mikhail Svarichevsky 6b71711079
Precision watch update (#152)
* Intermediate changes

* Databank working

* Main commit for precision timing

First version where all functions are supposed to be working

* Fix math error in nanosec. File storage for location.

* Remove obsolete comments

* Missing page name on pages rotation - thanks to jeremy

* Delete file.diff

* Cleanup+tempchart

1) finetune must always reset last calibration time when doing non-0 time correction, even when you are not applying ppm correction.
2) Dithers over 31 periods not 10, more resolution with still no risk of overflow
3) Minute-boundery finetune fix. I also just got this 1-minute error after finetune...
4) Write frequency calibration value in 1 operation rather than 2. All RTC writes must be single operations to avoid partially correct data.
5) Some code cleanup
6) Tempchart face is added for temperature statistics

* Update set_time_hackwatch_face.c

* Math error in display code of finetune, allow to update correction time even without correction - by long alarm press

* Increase reliability of stopping & starting RTC timer

As it's quite dangerous operation

* hackwatch - days adjust down fix by long alarm

* unify style

* More comments & last style change

* Simulator support

RTC operations (watch_rtc_enable and watch_rtc_freqcorr_write) are in common libs.

* Unicode fix

* Crystal aging is now adjustable (AA page in nanosec - annual aging, ppm/year)

Aging is baked into fixed offset every time finetune is performed, as it relies on last adjustment time.

* Blink on non-0 page every minute in finetune to measure clock error

* Rolling back private changes

* Cleanup

* Cleanup

* Quality of life changes in nanosec

1. Does not calculate & apply ppm correction if less than 6 hours passed since previous adjustment (as it gives very high correction values which are unrealistic and unhelpful)
2. Idle timeout resets to face 0 only if no correction was made

* unify style

* Fix low-power errors in nanosec infrastructure, faster display in finetune

* Merge fix

* unify style

Co-authored-by: Jeremy O'Brien <neutral@fastmail.com>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-01-10 16:56:26 -05:00
Raymundo Cassani fee6145e4d
Add Tachymeter face (#165)
* Create template for tachymeter

* Basic working tachymeter

* Improve UI for running and results

* Allow editing distance

* Alarm long-press to enter and exit editing mode

* Improve light button behaviour

* Set distance digit wise.

* Use 250ms resolution for total time

* Improve comments

* Bugfix: Show distance when running and face becomes active

* Update `%d` to `%lu` in `sprintf` call for `uint32_t`

* Ignore Alarm button (Up and Long-press) when showing results

* Improve GUI when running and face gets activated

* Change speed indicator from `/H` to `/h`

* silence warnings in tachymeter face

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-01-10 16:43:04 -05:00
TheOnePerson d0a3fd2377
Add stock stopwatch face (#140)
* buzzer sequences: first draft, does not work on hardware yet (but in simulator)

* buzzer sequences: add changes to movement.c

* buzzer sequences: add demo face to Makefile

* buzzer sequences: fix problem of interrupted sounds. Add logic for repeating sub sequences. Tidy up (move logic to watch_buzzer files, remove buzzer_demo_face)

* buzzer sequences: tidy up even more

* buzzer sequences: disable registering a 32 Hz tick callback for watch faces, so it will be used exclusively by the buzzer sequences functionality

* buzzer sequences: add callback slot functionality to watch_rtc and make watch_buzzer use it. Switch internal buzzer sequences tick frequency to 64 Hz. Revert changes to movement.c

* buzzer sequences: fix parameter sanity check in watch_rtc code

* stock stopwatch: first fully functional implementation

* stock stopwatch: fix typo in comment

* stock stopwatch: handle resuming from deep sleep mode properly

* buzzer sequences/watch_rtc: optimize calling tick callbacks in RTC_Handler

* buzzer sequences/watch_rtc: fix error in calling callback functions

* stock stopwatch: implement workaround for sleep mode

* stock stopwatch: merge current main into stock-stopwatch

* stock stopwatch: use TC counters as source for callbacks

* stock-stopwatch: revert unnecessary changes to watch_buzzer

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-01-10 16:31:32 -05:00
James Haggerty 529bad306d
RPN Calculator face (#112)
* Calculator face with guess a number

* Add more functions, cleanup, and blinking

* Display operations better in the first location

* Clean up stack behaviour

Add empty stack behaviour, check stack bounds, add stack operations.

Also, make 'mode' always work to switch through faces on entering calculator
(i.e. by defaulting to OPERATION rather than NUMBER).

Some edge cases.

* Tweak negative rounding behaviour; add basic doco

* Add copyright name.

* Flip ordering of binary operations

* Fix compiler warnings

* Remove watch_private_display hackery and give face a better name

Also, slightly clearer documentation and a dupe function.
2023-01-10 16:15:00 -05:00
joeycastillo 0aa77e27e4
Merge pull request #119 from neutralinsomniac/add_hours_to_countdown_face
Add hours support to the countdown face
2023-01-10 16:14:20 -05:00
joeycastillo c576f5332d show colon after hours in countdown face 2023-01-10 16:12:15 -05:00
Jeremy O'Brien 3c576a83cf remove unnecessary conditional in simple clock face 2023-01-05 06:50:29 -05:00
Jeremy O'Brien 6ad67848d0 fix compiler warnings in sailing face 2023-01-04 09:47:26 -05:00
joeycastillo 851d047c81 never disable buzzer output 2023-01-03 21:24:14 -06:00
joeycastillo 801230cc3a
Merge pull request #106 from niclashoyer/sailing
Add sailing watch face
2022-12-31 11:04:55 -06:00
joeycastillo 283a219783
Merge pull request #126 from ShogoOkamoto/main
append beep sound to counter_face
2022-12-14 11:08:30 -06:00
Slim 9cb2d3278a Merge branch 'main' of github.com:joeycastillo/Sensor-Watch into main 2022-12-02 19:53:56 +01:00
Slim a69547805b Weeknumber watch face
Same as simple clock, but has iso 8601 week number instead of seconds counter
2022-12-02 19:45:53 +01:00
joeycastillo 45470d5781 stopwatch: slow down sleep animation 2022-11-29 13:40:03 -06:00
joeycastillo 41d9b00ba6 sunrise/set: return home if no location set 2022-11-29 13:39:14 -06:00
joeycastillo 967da2465a new backer firmware with original lineup 2022-11-29 10:01:47 -06:00
joeycastillo ef87f44572 deep space now: use standard time 2022-11-28 11:44:12 -06:00
joeycastillo 59260c25de allow setting default LED colors in movement_config 2022-11-28 11:43:51 -06:00
joeycastillo 34d72e3296 time set: allow setting year through 2050 2022-11-28 01:28:02 -06:00
joeycastillo 16048e0c20 keep stopwatch awake while running and on screen 2022-11-28 00:58:25 -06:00
joeycastillo 423c5ec70e address sunrise/set rounding in last 30 seconds of hour (fixes #146) 2022-11-28 00:40:08 -06:00
joeycastillo 444b911e90 fix sunrise/sunset in last 30 seconds of the hour 2022-11-27 17:02:30 -06:00
joeycastillo 9c2c9087bf make stopwatch beep when started/stopped 2022-11-27 16:52:25 -06:00
joeycastillo 5de8a11968 replace temperature sensor with stopwatch 2022-11-27 09:57:25 -06:00
joeycastillo 8dbc00c56d
Merge pull request #118 from wryun/separate-emscripten-build-dir
Separate emscripten build directory
2022-11-22 08:37:33 -06:00
James Haggerty 4f66e29b61 Set bell indicator on reactivating countdown/tomato faces
If you moved away and back to these faces, you'd lose the indicator. Not that the indicator here
seems very valuable, since it's not displayed on simple_clock_face, but at least
this makes things more consistent.
2022-11-15 20:32:53 +11:00
Shogo Okamoto eff3529b96 append beep sound to counter_face 2022-11-08 22:39:02 +09:00
TheOnePerson 3c5ac1ee16 alarm-face: fix occasional crash on checking for active alarms, fix 0 vs. 12 h in am/pm mode 2022-11-03 22:32:20 +01:00
Jeremy O'Brien 9d3602220a Add hours support to the countdown face 2022-11-02 12:22:34 -04:00
James Haggerty ad6e919107 Separate emscripten build directory
This avoids the need to 'make clean' before you do a simulator build
(or vice-versa).
2022-11-02 06:18:34 +11:00
James Haggerty b7a461d280
Make the TOTP face use the filesystem for secret storage (#95)
* TOTP using filesystem

* Filesystem: ability to read files line by line
2022-11-01 01:08:05 -05:00
joeycastillo 54495d2d29
Merge pull request #114 from TheOnePerson/alarm-face-indicator-24h
Alarm face: make active alarm indicator show up only when there is an alarm set within the next 24 h
2022-10-31 01:09:13 -05:00
Jeremy O'Brien 0cef0b0ce2 Make countdown face use movement_play_alarm() instead of movement_play_signal() 2022-10-30 20:35:43 -04:00
TheOnePerson 27111c2d51 alarm-face: make indicator show active alarms in 24h time range and implement UI tweak
- switch indicators: use signal indicator instead of bell indicator
- make indicator show up only when there is an active alarm in the next 24 h
- Implement "hidden" UI tweak: extra long press of the alarm button in normal mode jumps back to alarm no. 1
- update comments to reflect latest changes
2022-10-30 09:32:20 +01:00
joeycastillo 09f1d02330
Merge pull request #109 from TheOnePerson/auto-fire-long-press
Make movement auto fire long press event
2022-10-29 18:16:29 -05:00
joeycastillo 501d3f8447 make pulsometer face use new EVENT_ALARM_LONG_UP 2022-10-29 18:09:16 -05:00
James Haggerty d994ce8b48
Make countdown face reset to 0 (#90)
* Make countdown face reset to 0

It was annoying to have countdowns less than DEFAULT_MINUTES.
Admittedly, this does make DEFAULT_MINUTES fairly useless, since
we only ever see it the first time...

* Undo accidental change to movement_config.h
2022-10-29 17:01:05 -05:00
TheOnePerson cb678d735a
Merge branch 'main' into auto-fire-long-press 2022-10-26 06:43:47 +02:00
TheOnePerson cb69a2c181
Add an Alarm face to movement (#96)
* Add movement_play_alarm_beeps() to movement.c and make alarm sounds customizable. Add alarm indicator to simple watch face.

* Add alarm face

* alarm_face: fix problem with disabling alarms for 00:00.

* Fix typos in comments and get rid of of unused variable warning

* remove unnecessary constant

* simple_clock_face: fix disappearing chime indicator after face switch, enable alarm indicator updates in app loop (for one-time alarms).
movement: handle situations where watch is in sleep mode and chimes fire off at the same time as alarms properly.

* alarm_face: tweak process of displaying things on the lcd. Add extra long and extra short alarms. Increase number of alarm slots to 16.

* alarm face: fix alarms playing one beeping round more than set.

* alarm face: add proper quick cycling of hour and minute setting

* alarm-face: correct am/pm indication and some minor tweaks. Reset movement_config.h to current main branch. simple-watch-face: Remove unnecessary check and swap indicators (alarm / hourly chime)

* alarm-face: reverse commit parts from another branch (accidentially commited logic depending on movement firmware auto firing the long press event)

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2022-10-25 21:57:53 -05:00
TheOnePerson 17cd90e72f movement: update comments regarding button events 2022-10-25 21:42:29 +02:00
TheOnePerson 6a8269629d alarm-face: correct am/pm indication and implement some minor tweaks. 2022-10-25 21:28:06 +02:00
joeycastillo 894d3615e9
Merge pull request #103 from wryun/long-press-home-to-settings
Long press of mode on home screen goes to settings
2022-10-23 15:07:35 -05:00
joeycastillo 5c1e717034 make this an if/then to please emscripten 2022-10-23 15:05:28 -05:00
joeycastillo 46ac8defdc disable settings hiding by default 2022-10-23 14:59:57 -05:00
TheOnePerson cdd9f737e6 alarm face: adjust quick cycling logic to new movement behavior regarding long press event 2022-10-23 13:08:22 +02:00
TheOnePerson 1a80003775 Movement: implement auto firing of long press events and introduce long up event. (Also re-implement alarm_enabled and alarm_note) 2022-10-23 13:07:32 +02:00
Niclas Hoyer 732a1caffe add sailing watch face 2022-10-23 00:27:32 +02:00
joeycastillo b56c60868e allow watch faces to schedule tasks from background 2022-10-22 13:16:46 -05:00
Niclas Hoyer 86f34b3653 fix scheduled tasks scheduling another task 2022-10-21 01:10:12 +02:00
David Singleton dfb928b9d6
Adds a rate meter watchface (#101) 2022-10-18 23:30:05 -05:00
James Haggerty b51f7b6f36 Long press of mode on home screen goes to settings
This also changes the default rotation so you don't see the settings
screens.
2022-10-19 10:30:59 +11:00
joeycastillo 1bb656db91 use watch_face_changed property 2022-10-12 00:20:11 -05:00
joeycastillo f89cecc56a document return value of watch_face_loop 2022-10-11 23:53:02 -05:00
joeycastillo 957f97ffad no need to set this (set in movement_move_to_face) 2022-10-11 23:40:19 -05:00
joeycastillo 4de51740fb don't sleep on watch face change 2022-10-11 23:14:59 -05:00
James Haggerty 79ff361f06 Make long press mode go back to face 0 instead of next face 2022-10-12 13:35:08 +11:00
Joey Castillo 95f2f25ee6 implement stubs to make simulator build happy 2022-10-09 22:58:42 -05:00
Joey Castillo 48160e8a47 restore default watch faces (oops) 2022-10-09 22:54:36 -05:00
Joey Castillo 5bb058f585 add watch face for frequency correction and measurement 2022-10-09 22:50:31 -05:00
Jack Bond-Preston 8b3c02ace5
add support for multiple TOTP keys 2022-08-29 01:28:19 +01:00
Joey Castillo bcd3b66684 Merge branch 'main' of github.com:joeycastillo/Sensor-Watch into lfs 2022-08-02 08:17:26 -06:00
joeycastillo 6d87f5a626
Merge pull request #79 from jackbondpreston/main
movement: fix movement_request_wake() prototype
2022-07-25 12:06:05 -04:00
joshber f120d66a98
Wake Face (#77)
Co-authored-by: Josh Berson <low.note0488@fastmail.com>
2022-07-25 11:57:12 -04:00
Jack Bond-Preston b07b548681 movement: fix movement_request_wake() prototype
This function has `void` args, currently it can throw a compiler warning
2022-07-25 15:17:02 +01:00
Joey Castillo b234db74fe movement: wake programmatically from background and play alarm 2022-07-17 00:23:38 -05:00
Spencer Bywater 6ed757af2b
Adjust probability watch face timeout/LE behavior (#72)
Display SLEEP instead of timing out
2022-05-22 19:42:37 -04:00
Spencer Bywater 96aaa47c8e
Probability watch face (#69)
* Initial work on probability watch face

* Complete probability watch face

* Restore default movement_config

* PR feedback: PR watch face title, use arc4random, clean up warnings

* Use rand instead of arc4random when building on emulator

* Accidentally overwrote movement_config
2022-05-18 11:11:34 -04:00
Joey Castillo 3a9dd0df08 unify on 32-bit signed lengths 2022-05-09 21:33:45 -04:00
Joey Castillo 8455bfc9a5 filesystem: only throw errors for negative error codes 2022-05-09 13:17:51 -04:00
Joey Castillo e71a70d231 add file browser to movement, remove old app 2022-05-09 13:05:37 -04:00
Joey Castillo 22b1ac0283 simulator: add USB serial input field 2022-05-09 13:00:15 -04:00
Joey Castillo 21ee056e26 first pass at filesystem in movement 2022-05-09 12:14:42 -04:00
Joey Castillo 91b436237a fix warning re: buffer overrun 2022-05-09 12:03:24 -04:00
Joey Castillo cd40573535 Merge branch 'main' of github.com:joeycastillo/Sensor-Watch into motion-express 2022-05-02 18:39:45 -05:00
Joey Castillo e36af0e5a3 movement: only run custom commands at first launch 2022-04-21 15:37:12 -04:00
Joey Castillo c78b8d4570 deep space firmware: show voyager 1 mission day 2022-04-21 14:33:59 -04:00
Joey Castillo cedfe72ced deep space firmware: prepopulate time zones 2022-04-21 13:40:58 -04:00
Joey Castillo a6024e9fda stargazer firmware: make LED red by default 2022-04-21 13:40:58 -04:00
Joey Castillo 19dac66a3b freeze snapshot of standard firmware in alt_fw 2022-04-21 11:26:02 -04:00
Joey Castillo b0bdf35d8f add mechanism for building alternate firmware images 2022-04-20 17:21:47 -04:00
Joey Castillo 263e7c6543 add counter face to movement build 2022-04-20 15:48:04 -04:00
Spencer Bywater 949ca2227f
Add break statement for EVENT_TICK in watch_face template (#64) 2022-04-20 11:40:55 -04:00
Joey Castillo 4bc4198cc6 Merge branch 'mars-clock' 2022-04-20 08:25:45 -04:00
Joey Castillo 6e9e264c65 rewrite lis2dh logger for lis2dw 2022-04-10 18:13:22 -04:00
Joey Castillo d91274e782 remove old lis2dh driver 2022-04-10 18:10:49 -04:00
Joey Castillo 35172ce11a world clock: fix glitch when exiting settings mode 2022-04-10 15:18:36 -04:00
Joey Castillo 7b06d7d6fd static analysis: make __write static to avoid confusion 2022-04-10 14:51:13 -04:00
Joey Castillo 5cb68923b9 static analysis: use parentheses around binary operators 2022-04-10 14:45:21 -04:00
Joey Castillo c4de155083 mars clock: formatting 2022-04-06 15:55:06 -04:00
Joey Castillo cb609389eb mars clock: use S without cross-stroke for clarity 2022-04-06 15:54:31 -04:00
Joey Castillo 8bcd5dfef6 Merge branch 'main' of github.com:joeycastillo/Sensor-Watch into mars-clock 2022-04-06 15:53:32 -04:00
Joey Castillo 5f0ebd8c66 character map tweaks: add some ligatures and symbols 2022-04-06 15:51:06 -04:00
Joey Castillo 81de97d346 Merge branch 'main' into mars-clock 2022-04-06 15:12:03 -04:00
Joey Castillo 4e89d70f99 Merge branch 'main' of github.com:joeycastillo/Sensor-Watch into mars-clock 2022-04-06 14:56:18 -04:00
Joey Castillo aff07ef9b3 Merge branch 'main' of github.com:joeycastillo/Sensor-Watch into main 2022-04-06 14:33:29 -04:00
Wesley Ellis 1ec1f2e420
Add tomato face: a pomodoro style timer (#61) 2022-04-06 14:33:24 -04:00
Joey Castillo f7ab99bb69 moon phase: light LED on press like other faces 2022-04-03 15:47:26 -04:00
Joey Castillo dd3e6c5fc3 time set: fix PM not appearing at noon in 12h mode 2022-04-02 10:12:26 -04:00
Joey Castillo 51e357d822 movement: final list of watch faces for stock firmware 2022-04-02 10:07:18 -04:00
Joey Castillo fa0a424857 thermistor readout: fix change in units when waking from sleep 2022-04-02 10:07:18 -04:00
Joey Castillo 4ebc4e97ce movement: add thermistor testing watch face 2022-04-02 10:07:18 -04:00
Shogo Okamoto f7e6266872
append counter_face to complication directory. (#58)
* append counter_face to complication directory.

* Remove invalid configurations for faces

* remove faces from main firmware.

Co-authored-by: Shogo Okamoto <shogo.okamoto@gmail.com>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2022-03-20 14:04:30 -04:00
Joey Castillo 3ad093715d mars clock: add support for sols 2022-03-05 09:59:32 -05:00
Joey Castillo 08af2ed398 mars clock: adding additional sites 2022-03-04 16:30:18 -06:00
Joey Castillo 3025984eb5 movement: first pass at mars clock 2022-03-04 16:29:21 -06:00
joeycastillo ccdf08da87
Movement: Astronomy and Orrery watch faces (#55) 2022-03-04 14:52:49 -06:00
Joey Castillo ea988208e1 battery monitor: hide signal indicator in sleep 2022-03-03 11:41:48 -06:00
Joey Castillo f5b6800582 movement: fix hang when using voltage face with temperature log 2022-03-03 10:20:33 -06:00
Joey Castillo 0004c30f42 documentation fix 2022-02-20 15:49:21 -05:00
Joey Castillo 002140e634 documentation fix 2022-02-20 15:29:50 -05:00
Joey Castillo f5be9755b6 respect countdown length when repeating 2022-02-19 21:19:15 -05:00
Joey Castillo b06357a193 repeating mode, disable readings when full 2022-02-19 21:12:24 -05:00
Joey Castillo 4cd86bff53 working data acquisition face! 2022-02-19 20:53:41 -05:00
Joey Castillo 1ce103b6f6 connect training data face to accelerometer 2022-02-19 16:41:35 -05:00
Joey Castillo 54f1873785 documentation and such 2022-02-19 14:22:23 -05:00
Joey Castillo 09f79f782f lis2dw: reasonable defaults when initializing 2022-02-19 14:05:38 -05:00
Joey Castillo 691c068e6e stuff parameters into the bits we're not using 2022-02-19 13:28:09 -05:00
Joey Castillo efde4190f1 movement: WIP app for capturing accelerometer data 2022-02-18 16:34:52 -05:00
Joey Castillo 8cba4516bb add additional watch face types to generator 2022-02-18 10:05:46 -05:00
Joey Castillo 4f29cf24f3 movement: move thermistor to 'sensor' watch faces 2022-02-17 14:47:47 -05:00
Joey Castillo 0fcc60e388 movement: add moon phase complication 2022-02-14 14:07:52 -05:00
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