Commit graph

537 commits

Author SHA1 Message Date
Matheus Afonso Martins Moreira 830200f9c3 faces/clock: reorder periodic battery check
Check the battery after the time has been updated.
Place all the indication code next to each other.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira bf4d7a3f2b faces/clock: refactor partial time display code
Simplifies the code by defining dedicated functions for this.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira 8f07192053 faces/clock: refactor full time display code
Simplifies the code by defining dedicated functions for this.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira 76add5a2da faces/clock: refactor tick tock animation code
Simplifies the code by defining dedicated functions for this.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira 1d79930ab7 faces/clock: refactor low power tick function
Simplifies the code by defining dedicated functions
and separating the case from the main ones.

Also use the snprintf function since the buffer size is known.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira e7052fe4e2 faces/clock: simplify LAP indication function
Simplifies the code by adding a dedicated function for this.
Also documents the meaning of the LAP indicator: Low Available Power.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira 0773439a49 faces/clock: refactor daily battery check
Move the code in question to a dedicated function. Better organized.
Add overridable preprocessor definition for the low battery threshold.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira 91713392a5 faces/clock: simplify PM indication function
Simplifies the code by adding dedicated functions for this.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira 113b4bba9c faces/clock: simplify 24h indication function
Simplifies the code by adding a dedicated function for this.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira 2132320d5c faces/clock: simplify signal indication function
Simplifies the code and makes it use the correct indicator.
For some reason it had been switched with the alarm indicator.

    WATCH_INDICATOR_BELL
        The small bell indicating that an alarm is set.

    WATCH_INDICATOR_SIGNAL
        The hourly signal indicator.
        Also useful for indicating that sensors are on.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira e2cba9f2f2 faces/clock: simplify alarm indication function
Deduplicates state in the clock state and movement settings.
Makes the code simpler.

Also makes it use the correct indicator.
For some reason it had been switched
with the hourly chime indicator.

    WATCH_INDICATOR_BELL
        The small bell indicating that an alarm is set.

    WATCH_INDICATOR_SIGNAL
        The hourly signal indicator.
        Also useful for indicating that sensors are on.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira e6d8b6aaff faces/clock: define general indication function
Sets or clears the specified indicator based on some boolean value.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira 01312c2deb faces/clock: move structure definition
Instances of the clock state structure
are only passed to the clock face itself
and only via the opaque context pointer.
No other code uses it.

Thus there is no need to expose it in a header file.
So make it an implementation detail of the watch face
by localizing it inside the translation unit.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira 8f040252fd faces: rename simple_clock_face to clock_face
It's not actually so simple and will only gain features from now on.
Just "clock face" also feels more canonical.
2024-02-24 18:53:07 -03:00
Matheus Afonso Martins Moreira 30ebf4743e faces/pulsometer: move structure definition
Instances of the pulsometer state structure are only passed
to the pulsometer itself and only via the opaque context pointer.
No other code uses it. There is no need to expose it in a header file
so make it an implementation detail of the watch face.
2024-02-24 05:17:56 -03:00
Matheus Afonso Martins Moreira 4d77273238 faces/pulsometer: update copyrights and credits
Update the copyrights to include full name attribution to all
who contributed to the pulsometer watch face, including myself.

Also add an SPDX license identifier header comment to the files.
2024-02-24 05:17:43 -03:00
Matheus Afonso Martins Moreira 4b67ef56c6 faces/pulsometer: document the advanced pulsometer
Thoroughly document the new advanced pulsometer watch face
by describing what it is and how it works.
2024-02-24 05:17:43 -03:00
Matheus Afonso Martins Moreira ea47bf9f22 faces/pulsometer: implement advanced pulsometer
Implements an advanced pulsometer that can be recalibrated by the user.
The main clock face now displays the measured pulses per minute.
The day of month digits now display the pulsometer calibration.
The light button now cycles through integer graduations
which now range from 1 to 39 pulses per minute.
Long presses of the light button cycle by 10 instead of 1.

The watch face's responsiveness to input has been carefully optimized.
The code has been reorganized and generally improved.
2024-02-24 05:17:43 -03:00
Matheus Afonso Martins Moreira 1c0050c97b faces/totp: update copyright and license data
Update the copyrights to include full name attribution
to all who contributed to this watch face, including myself.

Also add an SPDX license identifier header comment to the files.

https://spdx.org/licenses/MIT.html
2024-02-21 03:25:29 -03:00
Matheus Afonso Martins Moreira 0ebd94c4e1 faces/totp: delete unused structure field
The TOTP watch face now keeps track of each key separately.
There is no need to compute offsets at runtime.
2024-02-20 23:24:01 -03:00
Matheus Afonso Martins Moreira 79cfe315ff faces/totp: update watch face logic for new struct
Using the new structured TOTP record data structure
allows the TOTP watch face to statically and implicitly
compute the total number of defined TOTP records.

Users can now simply add new keys and records in the designated area
and the watch face will compile and automatically use them with no need
to maintain a separate array size variable. Less chance of mistakes.
2024-02-20 23:20:21 -03:00
Matheus Afonso Martins Moreira bbb920a5d8 faces/totp: define current TOTP data function
Selects the appropriate TOTP data structure
given the TOTP watch face state.
2024-02-20 23:18:00 -03:00
Matheus Afonso Martins Moreira 48e7fb1a7c faces/totp: define TOTP data array size function
Computes the size of the array of TOTP records.
The compiler will likely evaluate it at compile time.
2024-02-20 23:16:41 -03:00
Matheus Afonso Martins Moreira a99f6a716f faces/totp: update example data to new structure
The data definitions are much shorter and easier to read now.
2024-02-20 23:15:15 -03:00
Matheus Afonso Martins Moreira 8a7d9326cf faces/totp: define TOTP struct initializer macro
Generates a compound initializer for the given TOTP parameters.
Lessens repetition and allows functional definitions of TOTP records.
2024-02-20 23:12:53 -03:00
Matheus Afonso Martins Moreira 67907e4e5c faces/totp: define TOTP data structure
Aggregates all the data necessary for TOTP generation.
2024-02-20 23:10:13 -03:00
madhogs 3c6affb419
Merge branch 'main' into preferences_in_config 2024-02-14 17:17:10 +00:00
Max Zettlmeißl af18673e1a
Change inactivity deadlines: add 10 minutes and remove 2 days. (#365)
I like to use the ten minute timeout on my watch and there are other
people who have similar interests in a lower deadline. The two day
deadline had to go to still accommodate the change within the three
bit index.

The default setting is still the one hour timeout.
2024-02-07 14:02:41 -05:00
Alex Maestas 83a0e4e992 annotate TRNG erratum, address review comment 2024-01-22 00:39:18 +00:00
Christian Buschau 898b159a90
Revert "make the watch-face a global in movement.c, actually"
This reverts commit 0e801ed505.
2024-01-21 20:31:37 +01:00
Wesley Aptekar-Cassels 3703d565ed
Merge pull request #337 from theAlexes/theAlexes/wyoscan-zero
make the zero in wyoscan a little more visually appealing
2024-01-21 02:35:32 -05:00
Wesley Aptekar-Cassels 501ed8f9d2
Merge branch 'main' into watch-face-save-load 2024-01-21 02:08:28 -05:00
Wesley Aptekar-Cassels fe48776dae
Merge branch 'main' into watch-face-day-night-percentage 2024-01-21 02:04:20 -05:00
Wesley Aptekar-Cassels f16ce6a767
Merge branch 'main' into watch-face-simple-coin-flip 2024-01-21 02:01:27 -05:00
Wesley Aptekar-Cassels 29784983b5
Merge branch 'main' into watch-face-solstice 2024-01-21 01:58:20 -05:00
Wesley Aptekar-Cassels d7369cd00d
Merge branch 'main' into theAlexes/cleanup 2024-01-21 01:31:58 -05:00
CarpeNoctem 6985ca54f3 template: fix compiler warning on watch_face_index as mentioned in PR 269 2024-01-17 23:08:54 +11:00
Wesley Aptekar-Cassels 07e45acba7
Merge pull request #325 from WesleyAC/fix-le-buzzer-default-tune
Fix buzzer in LE mode.
2024-01-11 19:53:51 -05:00
joeycastillo cd44cb74a2 fix alternate firmware script 2024-01-10 09:38:33 -05:00
Wesley Aptekar-Cassels bf8c1b5dae
Merge pull request #342 from theAlexes/theAlexes/nanosec-profile-bug
delete stray line of code that messed with correction profile
2024-01-09 17:46:48 -05:00
Alex Maestas aa3a1eeeef movement: Use LE mode code to keep buzzer awake, instead of sleeping. 2024-01-09 16:24:11 -05:00
Wesley Aptekar-Cassels e9fe4aeefe Enable custom signal tones in LE mode.
This makes movement_play_signal synchronous when in LE mode, despite
using the underlying asynchronous API. It's a bit of a hack, but it
should work well enough for now.

This also moves the enabling/disabling of the buzzer into the
movement_play_signal function, so that watch faces no longer have to do
it.
2024-01-09 16:22:21 -05:00
Wesley Aptekar-Cassels 3ee32c6e57 Use legacy buzzer functions when playing default tune.
This allows the default tune to be played in LE mode.

Fixes: #275
2024-01-09 16:22:21 -05:00
Wesley Aptekar-Cassels 6f4917a0d5 Revert "Merge pull request #283 from neutralinsomniac/fix_hourly_chime_background"
This reverts commit 5c94111ea2, reversing
changes made to bc9b4ce700.
2024-01-09 16:22:21 -05:00
Pietro F. Maggi 8e0e942573 Handle visibility for tomato watchface
(cherry picked from commit 547e8248ba3538693ee8c587a92ffece7b40d1a2)
2024-01-07 12:43:18 +01:00
Edward Shin 5b762d0168 USB Improvements
* Introduce shell module for basic serial shell with argument parsing
* Introduce shell_cmd_list module for basic compile-time command
  registration
* Harden USB handling to hang less and drop fewer inputs
  - Service tud_task() with periodic TC0 timer interrupt
  - Service cdc_task() with periodic TC1 timer interrupt
  - Handle shell servicing in main app loop
  - Add a circular buffering layer for reads/writes
* Change newline prints to also send carriage return
* Refactor filesystem commands for shell subsystem
* Introduce new shell commands:
  - 'help' command
  - 'flash' command to reset into bootloader
  - 'stress' command to stress CDC writes

Testing:
* Shell validated on Sensor Watch Blue w/ Linux host
* Shell validated in emscripten emulator
* Tuned by spamming inputs during `stress` cmd until stack didn't crash
2024-01-07 00:20:20 -05:00
Alex Maestas 399679ac59 delete stray line of code that messed with correction profile while adjusting cadence 2023-12-22 22:35:46 +00:00
Alex Maestas 89e86fe629 work around silicon erratum in TRNG 2023-12-17 17:39:59 +00:00
Alex Maestas 0e801ed505 make the watch-face a global in movement.c, actually 2023-12-17 03:23:26 +00:00
Alex Maestas 8eae6eabd6 clean up trailing whitespace in movement.c 2023-12-16 22:23:32 +00:00
Alex Maestas 0ffe19da5b use a pointer to the watch face in the app loop instead of indirecting through the index each time, and also recalculate can_sleep based on the timeout loop call. 2023-12-16 22:23:19 +00:00
Alex Maestas 06d546f179 make it clear that the movement_state contains indexes 2023-12-16 22:08:10 +00:00
Alex Maestas dd9ca10122 make the zero in wyoscan a little more visually appealing 2023-12-08 22:11:56 +00:00
PrimmR 1b90a4a07a
Kitchen Conversions Face 2023-12-01 15:33:38 -05:00
Wesley Aptekar-Cassels a2f1ba9171
Merge branch 'main' into day_one_face 2023-11-27 23:08:28 -05:00
Alex Utter 7802994854
Fix missing documentation for many clock faces:
* Move from .c to .h as needed for consistency.
* When missing from both, copy from pull request or wiki.
* When missing entirely, infer functionality from source code.
2023-11-27 23:06:19 -05:00
Ekaitz Zárraga 735bbc97d7
Merge branch 'main' into couch-2-5k 2023-11-19 15:36:52 +01:00
Ekaitz Zarraga f77ddc83b8 Resign when the entering LE 2023-11-19 15:31:56 +01:00
Ekaitz Zarraga 30c8da7f55 Fit naming conventions 2023-11-19 15:28:45 +01:00
Wesley Aptekar-Cassels 6cc2b23723
Merge branch 'main' into feat/minute-repeater-decimal-face 2023-11-19 00:56:33 -05:00
Wesley Aptekar-Cassels 1f6409a71c sunrise_sunset_face: Fix use of uninitialized memory.
This was causing a crash in the simulator when setting the location.

Fixes: #198
2023-11-18 23:53:24 -05:00
Wesley Aptekar-Cassels 3b9fd8b0e9
Merge pull request #302 from LtKeks/Sensor-Watch-bugfix-timer_face-datatype
timer_face - Possibility to set seconds as default values
2023-11-18 23:12:51 -05:00
Wesley Aptekar-Cassels 2b7162c2be
Merge pull request #270 from perw/tuning_tones
new face: Tuning tones
2023-11-18 23:11:56 -05:00
Christian Buschau 984990fb66
day_one_face: show set date on short alarm button press 2023-11-17 09:11:18 +01:00
Christian Buschau e8b7985dde
day_one_face: enable quick cycle through settings
This allows the alarm button to be held down in the date settings and
quickly cycle through the dates instead of having to push for each
single increment like in other faces.
2023-11-17 09:11:18 +01:00
Christian Buschau 1022359252
day_one_face: allow years until 2080
This is the same limit introduced in commit 7fd51ca
2023-11-17 09:11:18 +01:00
Christian Buschau 8c7e9fa558
day_one_face: cleanup 2023-11-17 09:11:16 +01:00
Wesley Aptekar-Cassels 1120690e13 Add save_load_face. 2023-11-09 22:22:40 -05:00
Wesley Aptekar-Cassels 691f2fe506 day_night_percentage_face: Clear seconds digits when entering LE mode. 2023-11-09 20:31:56 -05:00
Wesley Aptekar-Cassels 26f63dcaeb day_night_percentage_face: Use PM indicator instead of DA/NI.
This allows for use of the weekday digits for displaying the weekday.
2023-11-09 17:35:58 -05:00
Wesley Aptekar-Cassels 2e8ee9965e day_night_percentage_face: Calculate rise/set/daylen only once per day. 2023-11-09 17:21:35 -05:00
Wesley Aptekar-Cassels f1d4d4ce89 Add day_night_percentage_face. 2023-11-09 02:34:36 -05:00
Wesley Aptekar-Cassels 73f689e65a Add simple_coin_flip_face. 2023-11-08 19:29:56 -05:00
Wesley Aptekar-Cassels dcf167a8bf Add solstice_face. 2023-11-06 18:01:44 -05:00
Wesley Aptekar-Cassels fc8c1fc726 moon_phase_face: Make alarm long-press reset to current day. 2023-11-03 06:34:31 -04:00
Brian Blakley 9c895817a0 Add minute repeater decimal face 2023-10-24 18:20:54 -04:00
Ekaitz Zarraga d3d76ed0e7 Add sound to pause/resume button 2023-10-21 15:47:26 +02:00
Ekaitz Zarraga cde6ae3598 Add Couch-To-5k training face 2023-10-21 01:30:03 +02:00
LtKeks ad846f5060 Update timer_face.c
Corrects the data type of the standard values in order to be able to configure seconds as well.
2023-10-15 17:35:36 +02:00
madhogs 868fecd248 add compile-time options for all preferences to movement_config 2023-10-02 17:23:11 +01:00
joeycastillo b162dc0663 use movement_play_signal for default tune (fixes background signal) 2023-09-24 12:41:18 -04:00
Jeremy O'Brien 45f402b4ec move buzzer enabled detection logic into movement for movement_play_signal/tune
this way watch faces don't have to disable/enable the buzzer themselves
before calling movement_play_signal() and movement_play_tune()
2023-09-23 10:56:12 -04:00
Jeremy O'Brien bfde84f01d fix signal tunes not firing in background, and split out foreground/background chime functions 2023-09-22 07:29:04 -04:00
joeycastillo bc9b4ce700 update alternate firmware for new board color 2023-09-13 14:08:52 -04:00
joeycastillo 9cd39cd3e3 add new COLOR flag 2023-09-13 11:40:40 -04:00
Per Waagø 9e88f37ced new face: Tuning tones
Add a new face that plays out tones that can be used as a
reference when tuning musical instruments.
2023-09-06 21:46:31 +02:00
joeycastillo 7fd51caa25 support years through 2080 2023-08-27 17:53:17 -04:00
joeycastillo d323b79916 new default firmware 2023-08-25 15:44:33 -04:00
joeycastillo e38f3bbec9 show temperature and battery voltage in low energy mode 2023-08-25 15:44:33 -04:00
joeycastillo fd2c8c2065 add sensor watch lite 2023-08-17 14:35:51 -04:00
mrbrown8 15eeca6b59
Decimal time face (#260)
* Update movement_faces.h

adding decimal_time_face.h to build

* Decimal Time, a new clock face

This face presents the current time as hours and hundredths of an hour.

* add decimal time to Makefile
2023-07-29 08:10:28 -04:00
Jose Castillo 07f150fbec
Merge pull request #253 from Kistelini/counter
Counter face: change sound to non-blocking, add option to deactivate sound
2023-07-29 07:48:16 -04:00
joeycastillo e5dcc9d1b7 counter face: move beep_on to watch face state 2023-07-29 07:43:51 -04:00
Jose Castillo 2738a8b77a
Merge pull request #258 from analogist/nanosec-fix-profbounds
fix nanosec_face correction_profile bounds from going negative
2023-07-29 07:30:40 -04:00
Willy Hardy 923112172d
Wyoscan .5 hz watchface (#256)
* initial wyoscan commit

* initial attempt at animation

* kinda working

* visually working but running out of memory

* slower

* little fixes

* add hardware watch blink function

* refine number animation

* remove movement from config for merging

* silence warnings

---------

Co-authored-by: Willy Hardy <whardy@redhat.com>
2023-07-29 07:22:42 -04:00
joeycastillo 1377d36622 silence warnings 2023-07-29 07:03:49 -04:00
James Wu 19672edcfb fix settings/nanosec correction_profile bounds 2023-07-20 00:27:37 +00:00
Hein-NonesensE ed8149a759
Counter face: change sound to non-blocking, add option to deactivate sound 2023-07-04 17:02:31 +02:00
joeycastillo b49259e4e0 add basic flashlight function 2023-06-29 16:17:19 -04:00
Jose Castillo 05e069ead1
Merge pull request #248 from TheOnePerson/simple-watch-bin-led
simple watch binary light: show current time by flashing the LED as binary code
2023-06-10 11:58:23 -04:00
Jeremy O'Brien c1580b356d
movement: add custom hourly chime tunes (#209)
* movement: add custom hourly chime tunes

* slightly tweak note timings

* add kim possible ringtone
2023-06-10 11:55:09 -04:00
TheOnePerson 8f7452fd99 simple watch bin led: add functionality of representing the current time as binary code LED flashing. 2023-05-21 08:34:02 +02:00
randogoth d348482759
geomancy.c warnings fix (#240) 2023-05-18 07:44:50 -04:00
TheOnePerson 45d9b97f07 timer face: fix problem with messed up durations for repeating timers / always beep when starting a timer 2023-05-18 13:10:32 +02:00
randogoth 432de34709 deobfuscated code, fixed warnings 2023-04-16 21:54:26 +03:00
joeycastillo 00541bd9c5 fix most warnings 2023-04-16 11:06:11 -04:00
randogoth c4da02ca2c Randonaut Watch Face (#233)
* init

* advanced latlon setting

* simple functionality done

* lat lon high precision fwd bwd

* edit toggle

* added readme for branch

* DD DMS conversion & cleanup

* DD to OLC conversion

* olc encoding & decoding

* OLC implementation

* swapped bools for modes, code cleanup

* place name editor

* updated button logic, fixed display

* load and save  places in state array

* todo list

* simplified OLC functions

* geohash conversion functions

* geohash display & digit functions

* todo

* finished geohash implementation

* code display function, defaults, bugfixes

* read/write file/reg logic

* long light in DATA to cancel

* write to registry

* todo

* read & write backup register

* file read/write

* todo

* new more concise button logic, optimizations

* todo

* renamed & cleaned up, fixed button logic

* documentation

* documentation

* LAP mode for all coordinate screens

* faster and more precise geohash algorithm

* updated description

* updated docu

* simple place face

* bugfixes, updated documentation

* init

* meh

* added public functions for OLC and Geohash

* randonauting face

* fix

* display fix

* cleanup

* bugfixes

* bugfix

* added place

* fixed TRNG call

* fixed declaration conflict

* modulo bias filter

* simplified things, chance RNG selection

* fixed button logic, better menus

* cleanup

* documentation

* docu fixes

* original README

* updated place_face

* fallback to register location

* removed pointless freq req

* reset config

* fixed dependency issue

* minor bugfixes

* saved a bit :)

* fix
2023-04-16 11:00:44 -04:00
randogoth 721887de3a Coin & Dice Toss & Geomantic Divination Watch Faces (#235)
* init

* advanced latlon setting

* simple functionality done

* lat lon high precision fwd bwd

* edit toggle

* added readme for branch

* DD DMS conversion & cleanup

* DD to OLC conversion

* olc encoding & decoding

* OLC implementation

* swapped bools for modes, code cleanup

* place name editor

* updated button logic, fixed display

* load and save  places in state array

* todo list

* simplified OLC functions

* geohash conversion functions

* geohash display & digit functions

* todo

* finished geohash implementation

* code display function, defaults, bugfixes

* read/write file/reg logic

* long light in DATA to cancel

* write to registry

* todo

* read & write backup register

* file read/write

* todo

* new more concise button logic, optimizations

* todo

* renamed & cleaned up, fixed button logic

* documentation

* documentation

* LAP mode for all coordinate screens

* faster and more precise geohash algorithm

* updated description

* updated docu

* simple place face

* bugfixes, updated documentation

* init

* meh

* added public functions for OLC and Geohash

* randonauting face

* fix

* display fix

* cleanup

* bugfixes

* bugfix

* added place

* fixed TRNG call

* fixed declaration conflict

* modulo bias filter

* simplified things, chance RNG selection

* fixed button logic, better menus

* cleanup

* documentation

* docu fixes

* init

* basic functions

* all needed static functions done

* progress

* coins and dice done

* progress

* place update

* divination faces functionality done

* better divine_bit

* figure numbers and names

* captions optional

* coin animation

* dice animation & optimizations

* animation

* changed names, documented

* bugfix

* cleanup

* reset config

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-04-16 11:00:08 -04:00
joeycastillo bfeca93008 silence warnings around morsecalc 2023-04-16 10:56:08 -04:00
joeycastillo e083f9b386 silence most warnings 2023-04-16 10:49:03 -04:00
joeycastillo eb71681779 Revert "Coin & Dice Toss & Geomantic Divination Watch Faces (#235)"
This reverts commit 34030bf3e4.
2023-04-16 10:46:52 -04:00
joeycastillo 00e641c2a7 Revert "Randonaut Watch Face (#233)"
This reverts commit a3fe36f6db.
2023-04-16 10:46:44 -04:00
joeycastillo 721cb8386d Merge branch 'main' of https://github.com/joeycastillo/Sensor-Watch 2023-04-16 10:37:14 -04:00
joeycastillo 1acd2b0369 return movement_config to standard list of watch faces 2023-04-16 10:30:49 -04:00
randogoth a3fe36f6db
Randonaut Watch Face (#233)
* init

* advanced latlon setting

* simple functionality done

* lat lon high precision fwd bwd

* edit toggle

* added readme for branch

* DD DMS conversion & cleanup

* DD to OLC conversion

* olc encoding & decoding

* OLC implementation

* swapped bools for modes, code cleanup

* place name editor

* updated button logic, fixed display

* load and save  places in state array

* todo list

* simplified OLC functions

* geohash conversion functions

* geohash display & digit functions

* todo

* finished geohash implementation

* code display function, defaults, bugfixes

* read/write file/reg logic

* long light in DATA to cancel

* write to registry

* todo

* read & write backup register

* file read/write

* todo

* new more concise button logic, optimizations

* todo

* renamed & cleaned up, fixed button logic

* documentation

* documentation

* LAP mode for all coordinate screens

* faster and more precise geohash algorithm

* updated description

* updated docu

* simple place face

* bugfixes, updated documentation

* init

* meh

* added public functions for OLC and Geohash

* randonauting face

* fix

* display fix

* cleanup

* bugfixes

* bugfix

* added place

* fixed TRNG call

* fixed declaration conflict

* modulo bias filter

* simplified things, chance RNG selection

* fixed button logic, better menus

* cleanup

* documentation

* docu fixes

* original README

* updated place_face

* fallback to register location

* removed pointless freq req

* reset config

* fixed dependency issue

* minor bugfixes

* saved a bit :)

* fix
2023-04-16 10:29:42 -04:00
randogoth 34030bf3e4
Coin & Dice Toss & Geomantic Divination Watch Faces (#235)
* init

* advanced latlon setting

* simple functionality done

* lat lon high precision fwd bwd

* edit toggle

* added readme for branch

* DD DMS conversion & cleanup

* DD to OLC conversion

* olc encoding & decoding

* OLC implementation

* swapped bools for modes, code cleanup

* place name editor

* updated button logic, fixed display

* load and save  places in state array

* todo list

* simplified OLC functions

* geohash conversion functions

* geohash display & digit functions

* todo

* finished geohash implementation

* code display function, defaults, bugfixes

* read/write file/reg logic

* long light in DATA to cancel

* write to registry

* todo

* read & write backup register

* file read/write

* todo

* new more concise button logic, optimizations

* todo

* renamed & cleaned up, fixed button logic

* documentation

* documentation

* LAP mode for all coordinate screens

* faster and more precise geohash algorithm

* updated description

* updated docu

* simple place face

* bugfixes, updated documentation

* init

* meh

* added public functions for OLC and Geohash

* randonauting face

* fix

* display fix

* cleanup

* bugfixes

* bugfix

* added place

* fixed TRNG call

* fixed declaration conflict

* modulo bias filter

* simplified things, chance RNG selection

* fixed button logic, better menus

* cleanup

* documentation

* docu fixes

* init

* basic functions

* all needed static functions done

* progress

* coins and dice done

* progress

* place update

* divination faces functionality done

* better divine_bit

* figure numbers and names

* captions optional

* coin animation

* dice animation & optimizations

* animation

* changed names, documented

* bugfix

* cleanup

* reset config

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-04-16 10:16:10 -04:00
randogoth ccf44281e7
Dual Timer, a variant of the Stock Stopwatch (#236)
* init

* advanced latlon setting

* simple functionality done

* lat lon high precision fwd bwd

* edit toggle

* added readme for branch

* DD DMS conversion & cleanup

* DD to OLC conversion

* olc encoding & decoding

* OLC implementation

* swapped bools for modes, code cleanup

* place name editor

* updated button logic, fixed display

* load and save  places in state array

* todo list

* simplified OLC functions

* geohash conversion functions

* geohash display & digit functions

* todo

* finished geohash implementation

* code display function, defaults, bugfixes

* read/write file/reg logic

* long light in DATA to cancel

* write to registry

* todo

* read & write backup register

* file read/write

* todo

* new more concise button logic, optimizations

* todo

* renamed & cleaned up, fixed button logic

* documentation

* documentation

* LAP mode for all coordinate screens

* faster and more precise geohash algorithm

* updated description

* updated docu

* simple place face

* bugfixes, updated documentation

* init

* meh

* added public functions for OLC and Geohash

* randonauting face

* fix

* display fix

* cleanup

* bugfixes

* bugfix

* added place

* fixed TRNG call

* fixed declaration conflict

* modulo bias filter

* simplified things, chance RNG selection

* fixed button logic, better menus

* cleanup

* documentation

* docu fixes

* original README

* updated place_face

* fallback to register location

* removed pointless freq req

* init

* dual chronograph

* documented and cleaned up

* unused var warning fix

* swap TC2 with TC3 to avoid conflict

* conflict

* show active when returning to face

* docu

* removed unneeded file

* added remain

* show screen on startup

* simplified mode button
2023-04-16 10:13:51 -04:00
randogoth 2b87623611
Planetary Hours Faces (#234)
* initial setup & test

* simplified solar calulcation function

* Initial Release

* initial setup

* UTC offset fixes

* finished and cleaned up

* renamed faces

* optimizations & astro symbols

* wrapping ruler

* cleanup

* optimizations

* merged latest place_face

* documentation

* fixed faster seconds

* removed place_face from branch

* reset config

---------

Co-authored-by: NN Solex <info@sublunar.space>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-04-16 10:13:21 -04:00
Christian Chapman 462f24b313
Aperture priority light meter face (#230)
* initial commit, added opt3001 light meter test app

* tested working light meter board, i2c communication still has issues

* fixed i2c; rudimentary lightmeter works!

* added aperture priority ui

* added aperture priority ui

* added README

* adjusted cal

* fixed bugs (HI shutter speed, lux mode toggle)

* made it possible to advance to the next face

* initialized lux variable

* lowered tolerance for HI and LO

* Changed EV display from always showing EV100 to showing EV[iso setting]

* dont display old ev when ISO changes

* changed mode and light behavior

* updated readme

* fixed indentation

* made lightmeter display logic more consistent

* made lightmeter display logic more consistent

* reverted rules.mk (for merge into upstream)

* reverted rules.mk (for merge into upstream)

* removed OPT3001 PCB model

* made lux mode default, corrected timeout behavior

---------

Co-authored-by: Christian Chapman <user@debian>
2023-04-16 10:05:55 -04:00
Bernd Plontsch bfde33c946
Adding Breathing complication (#220)
* Added complication

* Including complication in build configuration

* Clean up

* restore default watch face selection

* Fixed comment

* Remove unused

* Made functions internal

---------

Co-authored-by: Bernd Plontsch <bernd@plontsch@gmail.com>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-04-16 10:04:46 -04:00
Christian Chapman 0a836cecea
Morsecalc refactor (#229)
* Added Morse code based RPN calculator

* added manual and memory register

* fixed morsecalc negative indicator, edited header comment

* adjusted stack display controls

* Fixed warnings. Added calculator token aliasing ability. Added binary shorthand for numeral entry. Extended morse code binary tree.

* ui tweaks

* Update movement_config.h

* silence warning

* Reorganized codebase and simplified morse code reading routines.

* added 'quit if submission is empty' behavior

* reverted rules.mk change for merge into main

* corrected timeout behavior

* consolidated morsecode lib into one file; deleted old mc.c mc.h

* consolidated morsecode lib into one file; deleted old mc.c mc.h

* removed specious null in morsecode bintree string

---------

Co-authored-by: Christian Chapman <user@debian>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-04-16 10:01:03 -04:00
TheOnePerson e3f76317b5
Time Left Face: Visualize progress in any time interval (#217)
* time left face: initial commit, fully functional

* time left face: typos

* time left face: correct even more typos in documentation

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-03-11 16:40:55 -05:00
Konrad Rieck 84b947766e
Alternative implementation of world clock (#216)
* Implementation of alternative world clock.

* Fixed two minor bugs
- Only start in settings mode on first activation
- Fixed typo in time zone names

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-03-11 16:37:40 -05:00
joeycastillo 7793333ed3
Merge pull request #213 from wryun/fix-cat
Fix cat command
2023-03-11 16:33:13 -05:00
TheOnePerson b90e997481
Invaders Face (#210)
* invaders face: Initial commit, fully functional so far

* invaders face: silence compiler warning

* invaders face: prevent involuntary restarts when the game is over and save some bytes on flags

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-03-11 16:31:17 -05:00
gugray 9af51de624
Activity face + Chirpy TX (#187)
* chirpy demo face; activity face stub

* activity face WIP: can log, pause and clear

* activity face and chirpy demo: ready to flash to watch

* activity face tweaks

* hour display for hours < 10

* fix: added rogue paused seconds when stopping activity

* LE mode; lower power with 1Hz tick

* fix: midnight is 12

* Documentation in code comments

* fixes from code review by @neutralinsomniac

* chirpy_demo_face option to chirp out nanosec.ini + auto-format

* UI tweaks

* remove erroneously added file (content revoked)

* UI tweaks: return from LE mode; time display vs LAP

* add default loop handler (will enable long-mode-to-first-face)

* reset watch faces to match main branch
2023-03-11 16:27:18 -05:00
TheOnePerson 2d46a9bf9e
Timer Face: Advanced countdown face with presets (#224)
* timer face: initial commit, fully functional

* timer face: show slot number in normal mode

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-03-11 16:26:36 -05:00
thg191 7584f9bf98
discgolf_face initial commit (#207)
* discgolf_face initial commit

* Comment on wrong line

* updated drawing method and added beeps

* Put description in appropriate file, added license

* fixed for loops that didn't cover whole array, long mode press snaps back to default face

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-03-11 16:12:00 -05:00
joeycastillo 266831cef0
Merge branch 'main' into repetition_minute 2023-03-11 16:06:38 -05:00
joeycastillo 3dafdc4709
Merge pull request #218 from TheOnePerson/fix-interval-face-globals
interval face: make global vars static
2023-03-11 16:05:32 -05:00
TheOnePerson 567a21e8a5 interval face: make global vars static 2023-02-20 07:51:45 +01:00
James Haggerty 192d0b0450 Fix cat command
If we ran into a heap that wasn't filled with '\0', fun things.
2023-02-12 20:27:48 +11:00
Jeremy O'Brien faa860f83d fix compile warning in day one face 2023-02-10 22:30:26 -05:00
Hein-NonesensE 59ff549235
Sensor watch sailing face (#205)
* Update sailing_face.c

Modified sailing_face.

Added features, some of which @niclashoyer already suggested in his initial PR:
- stopwatch-like counter after start signal
- lap counter after start signal
- optional additional sounds at every minute, 30s, 10s countdown
- sound options (no sound, start only, signals only, all)
- maximum starting time up to 10min (instead of 9)
- improved timing, display is no longer delayed by sound

* Update sailing_face.h

Modified sailing_face.

Added features, some of which @niclashoyer already suggested in his initial PR:
- stopwatch-like counter after start signal
- lap counter after start signal
- optional additional sounds at every minute, 30s, 10s countdown
- sound options (no sound, start only, signals only, all)
- maximum starting time up to 10min (instead of 9)
- improved timing, display is no longer delayed by sound
2023-02-10 18:07:53 -06:00
kingannoy c814c780e3 Allow days in the future
With this small change you can also count down to a important upcoming event!

This is my first time coding in C, so please double check everything! But in the emulator this seemed to work!
2023-02-10 17:08:32 -06:00
joeycastillo 827c3eb4a4 what fresh hell was that? 2023-02-10 16:44:36 -06:00
Jeremy O'Brien a461e8e8f9 countdown_face: implement holding light to reset the currently edited timer value (and everything below it) 2023-02-10 16:31:24 -06:00
tslil clingman f571da4346 habit face
Track a single habit, occuring at most once per day, with an eight-day
look back and total count
2023-02-10 16:09:55 -06:00
joeycastillo 26b1ea51b9 make TOTP face more responsive when swapping between codes 2023-02-08 12:33:50 -05:00
Jonas Termeau 36ff634ced New face - Repetition Minute, fork of simple clock with an accessibility feature added : time reading via beeps 2023-02-02 23:07:24 +01:00
Jeremy O'Brien a18c285e58 restore old light button behavior
watch faces that handle EVENT_LIGHT_BUTTON_UP but not EVENT_LIGHT_BUTTON_DOWN
probably don't want the default EVENT_LIGHT_BUTTON_DOWN LED activation behavior
2023-01-27 09:43:03 -06:00
joeycastillo c945f323f4 fix for events firing way too fast 2023-01-27 00:08:36 -06:00
joeycastillo f66b276dad add hardcoded frequency correction values 2023-01-25 10:37:16 -06:00
joeycastillo e32f1d1926 rename definition for special edition boards 2023-01-25 10:32:35 -06:00
Jeremy O'Brien e512b731bb tarot_face: use direct character arrays instead of arrays of pointers to global strings 2023-01-25 10:25:30 -06:00
joeycastillo 4412b5d08f
Merge branch 'main' into default-handler 2023-01-25 09:26:31 -06:00
Jeremy O'Brien 2b22ecc8e4 add default loop handler to all current watch faces 2023-01-25 09:23:50 -06:00
Jeremy O'Brien 3303060c59
ships_face: fix compiler warnings (#186) 2023-01-23 15:26:47 -06:00
TheOnePerson e8a18864ee
fix fast_tick_enabled behavior in movement (#183) 2023-01-23 15:26:03 -06:00
Konrad Rieck b5f191a1b7
Minor enhancements for the countdown face (#177)
* minor enhancements for the countdown face

* Changed usage of countdown timer.

- Long button presses have been removed.

- The light button is used to restore the last countdown as well as enter setting mode when pressed again.

- The visual state has been removed from the display.

- The internal states have been renamed to reflect the new logic.

* restore time when countdown finished.

* support for fast forward on long press (untested).

* support for beeps similar to stop watch

* fixed bug wiht display when fast forwarding
2023-01-23 14:18:28 -06:00