779 Commits

Author SHA1 Message Date
joeycastillo
45cd1dcac1 clarify return value notes in template 2023-01-17 11:03:13 -06:00
joeycastillo
3142fccea3 Merge branch 'main' into default-handler 2023-01-17 10:52:42 -06:00
joeycastillo
5163cf1fe1 Revert "never disable buzzer output"
This reverts commit 851d047c818dacc30c86f4d87f33247dcfb0095c.
2023-01-17 08:52:01 -06:00
joeycastillo
a610382f89 fix documentation of default loop handler in template 2023-01-15 09:31:12 -06:00
joeycastillo
9d47eb9a11 handle switch to secondary face in default handler 2023-01-15 09:28:41 -06:00
joeycastillo
ca05567576
Merge pull request #179 from neutralinsomniac/rpn_calculator_fix_compiler_warnings
rpn_calculator: fix compiler warnings
2023-01-14 16:52:15 -05:00
joeycastillo
0ef80b62da add movement_default_loop_handler, test with default watch faces 2023-01-14 14:21:04 -05:00
Jeremy O'Brien
8f4de405ed rpn_calculator: fix compiler warnings 2023-01-14 13:20:38 -05:00
EmilienCourt
9ebea46300
totp : rework and add SHA256/512 (#151)
* totp : rework and add SHA256/512

* totp : comment code

* totp : fix SHA224/SHA384 and examples

* totp : fix bug in totp_face_lfs

* totp : init_totp_record to SHA1

* totp : move TOTP-MCU to TOTP, update README and example

* totp : SHAX, use size_t n instead of harcoded 8

* clarify what to put in TOTP face

Co-authored-by: Emilien <Emilien>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-01-14 11:58:03 -05:00
Niclas Hoyer
2e61885070
Add calculator watch face (#111) 2023-01-14 11:51:33 -05:00
joeycastillo
98abdb5c0f
Merge pull request #175 from neutralinsomniac/tarot-add-minor-arcana
tarot: add full tarot deck as an option
2023-01-14 11:49:23 -05:00
Wesley Ellis
17c1b4a354
Merge pull request #176 from neutralinsomniac/alarm-fix-conditional
alarm: fix accidental assignment vs conditional logic
2023-01-13 15:33:16 -05:00
Jeremy O'Brien
e89ff78b10 alarm: fix accidental assignment vs conditional logic 2023-01-13 14:52:09 -05:00
Jeremy O'Brien
3025a73956 tarot: mode long press returns to face 0 2023-01-13 10:56:43 -05:00
Jeremy O'Brien
5e1f772138 tarot: reduce calls to watch_display_string() 2023-01-13 08:06:29 -05:00
Jeremy O'Brien
29d7d5bd40 tarot: add full tarot deck as an option 2023-01-12 22:33:01 -05:00
joeycastillo
4d987eb1f5
Merge pull request #174 from neutralinsomniac/tarot-fix-compiler-warning
tarot: fix compiler warning
2023-01-12 09:21:22 -05:00
Jeremy O'Brien
c029e40a9a tarot: fix compiler warning 2023-01-12 08:35:25 -05:00
joeycastillo
7c85bc5a81
Merge pull request #172 from neutralinsomniac/add-tarot-face-inversion-note
tarot: add card inversion explanation
2023-01-11 21:09:48 -05:00
Jeremy O'Brien
edca75c6f6 tarot: add card inversion explanation 2023-01-11 18:36:13 -05:00
joeycastillo
279954b724
Merge pull request #171 from neutralinsomniac/document_tarot_face
add tarot face documentation as per the new template.h
2023-01-11 16:25:57 -05:00
TheOnePerson
b28d31ba03
Interval timers face (#130)
* 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

* interval face: add initial version

* interval face: fix theoretical problem in helper function

* buzzer sequences: fix parameter sanity check in watch_rtc code

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

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

* buzzer sequences: revert changes to watch_rtc logic. Instead, use TC3 as the source for timing the sound sequences.

* buzzer sequences: fix frequency of callback

* buzzer sequences: integrate changes from PR #162 (set both CCBUF and PERFBUF for correct buzzer tone)

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-01-11 15:31:53 -05:00
TheOnePerson
47812f462d
Play sound sequences asynchronously (#122)
* 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

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

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

* buzzer sequences: revert changes to watch_rtc logic. Instead, use TC3 as the source for timing the sound sequences.

* buzzer sequences: fix frequency of callback

* buzzer sequences: integrate changes from PR #162 (set both CCBUF and PERFBUF for correct buzzer tone)
2023-01-11 15:26:33 -05:00
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
joeycastillo
cfd43a5b84
Merge pull request #168 from neutralinsomniac/remove-unnecessary-conditionals
Remove more unnecessary conditionals
2023-01-11 11:42:52 -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
gugray
18de75be5a
fixes 161: sets both CCBUF and PERFBUF for correct buzzer tone (#162) 2023-01-10 16:33:29 -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
Wesley Ellis
6ee84e7d6b
Merge pull request #159 from neutralinsomniac/remove-unnecessary-conditional
remove unnecessary conditional in simple clock face
2023-01-08 12:53:16 -05:00
Jeremy O'Brien
3c576a83cf remove unnecessary conditional in simple clock face 2023-01-05 06:50:29 -05:00
joeycastillo
ed2d14b18c
Merge pull request #158 from neutralinsomniac/fix-sailing-face-compiler-warnings
fix compiler warnings in sailing face
2023-01-04 09:03:23 -06: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