323 Commits

Author SHA1 Message Date
Matheus Afonso Martins Moreira
4b269c5063 Merge branch 'advanced-clock+24h' into advanced
Completely refactors the simple clock face
and lays the foundations for new features.

Also adds a compile time 24 hour mode only feature.

Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/373
2024-03-08 06:54:22 -03:00
Matheus Afonso Martins Moreira
7208df1dfb Merge branch 'moon-phase-face-long-press-reset'
Makes a long press of the ALARM button reset the face to current day.

Reviewed-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/316
2024-03-08 06:52:49 -03:00
Matheus Afonso Martins Moreira
592e18bf0e Merge branch 'silicon-errata' into advanced
Implements the recommended workarounds for numerous silicon errata,
reducing power consumption and preventing freezes and hard faults.

Tested-by: Alex Maestas <git@se30.xyz>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Alex Maestas <git@se30.xyz>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Reviewed-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/340
GitHub-Related-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/361
GitHub-Related-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/359
Reference: https://ww1.microchip.com/downloads/aemDocuments/documents/MCU32/ProductDocuments/Errata/SAM-L22-Family-Silicon-Errata-and-Data-Sheet-Clarification-DS80000782.pdf
2024-03-08 06:50:16 -03:00
Matheus Afonso Martins Moreira
a4ee7dd7fc Merge 'fix-sunrise-sunset-uninitialized'
Fixes a crash due to use of uninitialized buffer when setting location.

Reported-by: eshrh <esrh@gatech.edu>
Fixed-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/329
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/198
Fixes: https://github.com/joeycastillo/Sensor-Watch/issues/198
2024-03-08 06:49:18 -03:00
Matheus Afonso Martins Moreira
4a66035f77 faces/clock: add 24h only feature
The clock watch face can now be configured at build time
to only display the time in 24h mode. Also enabled in forced 24h mode.

This should result in smaller code size due to dead code elimination.
2024-03-05 00:46:27 -03:00
Matheus Afonso Martins Moreira
4cca3a0fac faces/clock: update copyrights and credits
Update the copyrights to include full name attribution to all
who contributed to the clock watch face, including myself.

Also add an SPDX license identifier header comment to the files.
2024-03-05 00:46:27 -03:00
Matheus Afonso Martins Moreira
69639a5736 faces/clock: indicate low power only when needed
There is no need to set the indicator on every clock tick.
Indicate only when the battery is checked.
2024-02-25 15:24:15 -03:00
Matheus Afonso Martins Moreira
5c376d9b9a faces/clock: indicate alarm only when necessary
The alarm state is not modified within the clock face.
Therefore, it only needs to be set when the face is activated.
2024-02-25 15:24:15 -03:00
Matheus Afonso Martins Moreira
2df6b2879a faces/clock: refactor time signal toggling code
Simplifies the code by defining dedicated functions for this.
2024-02-25 15:24:15 -03:00
Matheus Afonso Martins Moreira
1e2c23cf13 faces/clock: refactor clock display code
Simplifies the code by defining dedicated functions for this.
2024-02-25 15:24:15 -03:00
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
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
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
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
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
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
6f4917a0d5 Revert "Merge pull request #283 from neutralinsomniac/fix_hourly_chime_background"
This reverts commit 5c94111ea20e50cb9dab8f416603403185e933b3, reversing
changes made to bc9b4ce700d3f12adc0daceaa880e3d638df0c2b.
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
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
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