Commit Graph
62 Commits
Author SHA1 Message Date
Matheus Afonso Martins Moreira bf4d461d8c Merge branch 'next' - new faces before the freeze
Merge the next branch containing numerous new sensor watch faces
as well as some new features. Not all of them made it in the end
and we even had to revert improvements merged in last next due to
issues that weren't found during testing. Still, I am very proud
to be merging in and closing over 20 pull requests.

I believe the project is in the best possible shape it can be
before the movement 2.0 refactor.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: David Volovskiy <devolov@gmail.com>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/469
2024-09-17 17:36:40 -03:00
Matheus Afonso Martins Moreira fe9a0a693d Revert PR #268 - add daylight savings time toggle
The DST code has not yet been fully tested, the upcoming movement
refactor is upon us and it will integrate with the micro timezone
library anyway. Revert it so that next can be merged into main.

This reverts commit 5a8a49a8c7, reversing
changes made to bfadb81e82.
2024-09-17 17:28:41 -03:00
Matheus Afonso Martins Moreira 30267dfc0c Revert PR #470 - fixes world_clock2 face
The DST code has not yet been fully tested, the upcoming movement
refactor is upon us and it will integrate with the micro timezone
library anyway. Revert it so that next can be merged into main.

This reverts commit 3c86a42aa8, reversing
changes made to be969c4deb.
2024-09-17 17:28:41 -03:00
Matheus Afonso Martins Moreira a9d503b807 Revert PR #470 - implement automatic DST toggling
The DST code has not yet been fully tested, the upcoming movement
refactor is upon us and it will integrate with the micro timezone
library anyway. Revert it so that next can be merged into main.

This reverts commit ac5bf8cfce, reversing
changes made to 5a8a49a8c7.
2024-09-17 17:28:32 -03:00
Matheus Afonso Martins Moreira 683032219e Revert PR #471 - add DST to sunrise/sunset
The DST code has not yet been fully tested, the upcoming movement
refactor is upon us and it will integrate with the micro timezone
library anyway. Revert it so that next can be merged into main.

This reverts commit 0cc28b9811, reversing
changes made to 337864eb54.
2024-09-17 17:02:16 -03:00
Matheus Afonso Martins Moreira ea5efb4d82 faces/clock: clear segments if not in 024h mode
There was an issue where the clock's display would remain in 024h mode
even after switching back to 12h/24h mode because it only took into
account the leading zero bit, whose value is meaningless unless the
24h mode bit is also set.

The issue is fixed by taking both bits into account.

Closes #476.

Reported-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/476
2024-09-16 15:54:09 -03:00
Matheus Afonso Martins Moreira f2479bee4f faces/simple_clock: clear segments if not in 024h
There was an issue where the simple clock's display would remain in
024h mode even after switching back to 12h/24h mode because it only
took into account the leading zero bit, whose value is meaningless
unless the 24h mode bit is also set.

The issue is fixed by taking both bits into account.

Closes #476.

Reported-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/476
2024-09-16 15:53:48 -03:00
Matheus Afonso Martins Moreira 831aadddea faces/alarm: use snprintf formats for 24h and 024h
This ensures that the display is always in a consistent state.

Reported-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/476
2024-09-16 15:19:08 -03:00
Matheus Afonso Martins Moreira 5926e81d25 faces/alarm: fix 24h indication in 024h mode
The watch was not indicating to the user that it was in 24h mode
when set to the leading zero 024h time format. This could lead
to ambiguity and confusion, so make sure to indicate 24h mode.

Closes #476.

Reported-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/476
2024-09-16 14:42:43 -03:00
Matheus Afonso Martins Moreira 035fff52da Revert merge of PR #437 - debouncing logic
This reverts commit a715265af6, reversing
changes made to 9c093f9540.

Insidious issues were found in the course of long term testing
by the community, and further reviews of the code were not enough
to pinpoint the issue and fix it. So for now the appropriate action
is to revert these changes while development continues, and possibly
merge them back in once they have been stabilized.

Tested-on-hardware-by: David Volovskiy <devolov@gmail.com>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
Tested-on-hardware-by: Krzysztof Gałka <@kshysztof@Discord>
2024-09-15 21:10:10 -03:00
Matheus Afonso Martins Moreira c9cbb82163 Revert merge of PR #437 - debouncing logic
This reverts commit a715265af6, reversing
changes made to 9c093f9540.

Insidious issues were found in the course of long term testing
by the community, and further reviews of the code were not enough
to pinpoint the issue and fix it. So for now the appropriate action
is to revert these changes while development continues, and possibly
merge them back in once they have been stabilized.

Tested-on-hardware-by: David Volovskiy <devolov@gmail.com>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
Tested-on-hardware-by: Krzysztof Gałka <@kshysztof@Discord>
2024-09-15 21:00:22 -03:00
Matheus Afonso Martins Moreira 3c86a42aa8 Merge PR #470 - fixes world_clock2 face
The new DST changes caused problems in one specific face - world_clock2.
An incorrect variable was used due to a confusing name.
It has been revised to fix the problems that were caused.

Closes #475.

Reported-by: CarpeNoctem <cryptomax@pm.me>
Fixed-by: David Volovskiy <devolov@gmail.com>
Tested-by: CarpeNoctem <cryptomax@pm.me>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/470
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/475
2024-09-15 20:45:33 -03:00
Matheus Afonso Martins Moreira be969c4deb Revert PR #387 - fixes LE state restoration
This commit caused state restored from backup registers
to be overwritten. It is thereby reverted until a better
solution is found or movement is refactored.

This reverts commit 524098b925.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
References: https://github.com/joeycastillo/Sensor-Watch/pull/474
2024-09-10 12:10:48 -03:00
Matheus Afonso Martins Moreira 673f90b724 make: add beeps face to build
PR #386 did not add the C file to the makefile,
causing the build to fail at the link stage
due to the missing object file and the symbols
that were supposed to be provided by it.

Adding the file to the build fixes #472.

Reported-by: CarpeNoctem <cryptomax@pm.me>
Fixed-by: CarpeNoctem <cryptomax@pm.me>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/472
2024-09-10 00:05:54 -03:00
Matheus Afonso Martins Moreira 44b543421d Merge PR #430 - improve tally face
Adds the ability to tally negative counts, tally quickly by holding down
the buttons as well as the ability to enable and cycle through multiple
preset initial values for numerous contexts such as card games.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/430
2024-09-08 21:20:25 -03:00
Matheus Afonso Martins Moreira 0cc28b9811 Merge PR #471 - add DST to sunrise/sunset presets
Implements automatic DST data to the sunrise/sunset presets,
making the whole system more automatic and therefore more reliable.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/471
2024-09-08 21:12:24 -03:00
Matheus Afonso Martins Moreira 7a4424b2d4 faces/tally: convert size into compile time const
Creates a macro that returns the size of the presets array,
converting it into a compile time constant value that occupies
no memory and that compilers can constant fold into other expressions
potentially leading to dead code elimination.
2024-09-08 18:53:42 -03:00
Matheus Afonso Martins Moreira e4e0b611f3 faces/tally: avoid resetting counters
Don't reset the counters unless there are multiple presets.
Move back to the first face directly if there are no presets
to cycle through.
2024-09-08 18:49:09 -03:00
Matheus Afonso Martins Moreira 6b7ea8bbaa faces/tally: add yugioh life point presets
Add common Yu-Gi-Oh card game life point preset values
for the tally face, opt in by defining a preprocessor macro.
2024-09-08 18:39:55 -03:00
Matheus Afonso Martins Moreira 531bcfd285 faces/tally: make mtg presets optin via macros
Use preprocessor macros to conditionally compile in Magic the Gathering
initial value presets for the tally mark, thereby making them opt in.
2024-09-08 18:38:53 -03:00
Matheus Afonso Martins Moreira 337864eb54 Merge PR #454 - fix activation event
Fix issue where the calculator face's user interface display
was delayed about a quarter second due to the activation event
being a no-op.

Tested-by: David Volovskiy <devolov@gmail.com>
Reported-by: David Volovskiy <devolov@gmail.com>
Fixed-by: David Volovskiy <devolov@gmail.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/454
2024-09-08 15:33:35 -03:00
Matheus Afonso Martins Moreira 0f6f79a85a Merge PR #468 - fix github ci
Bump GitHub's checkout action to v4, fixing the continuous integration.

GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/468
2024-09-08 15:22:50 -03:00
Matheus Afonso Martins Moreira c2723ebc8e make: fix missing separator error 2024-09-08 14:22:26 -03:00
Matheus Afonso Martins Moreira ac5bf8cfce Merge PR #470 - implement automatic DST toggling
Implements logic to automatically offset daylight saving time settings
when calculating timezone offsets. This should make the DST functions
work automatically with no need for user input in most cases.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/470
2024-09-08 13:41:52 -03:00
Matheus Afonso Martins Moreira 5a8a49a8c7 Merge PR #268 - add daylight savings time toggle
Adds a toggle in the preferences face that allows the user
to enable or disable the daylight savings time.

Should help produce the correct results with the sunrise/sunset presets.

A proper solution would be to integrate the tzinfo database
but it's too big for the watch at the time of this writing.
Can't be done unless it can be shrunk down into a subset
the user would be interested. Even then it's a stopgap
since the database is likely to keep growing over time.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/268
2024-09-08 11:09:10 -03:00
Matheus Afonso Martins Moreira bfadb81e82 Merge PR #401 - add fuzzy time watch face
Displays the time in a "close enough" manner:
periods of five minutes, relative to the nearest hour.

For example:

 - 3:24 -> 25 past 3
 - 3:50 -> 10 to 4
 - 3:59 -> 4 o'clock
 - 1:35 -> 35 past 1
 - 1:50 -> 10 to 2
 - 2:00 -> 2 o'clock

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Ruben Nic <RubenSandwich@users.noreply.github.com>
Tested-on-hardware-by: KlingonJane <148595159+KlingonJane@users.noreply.github.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/401
2024-09-07 20:57:24 -03:00
Matheus Afonso Martins Moreira 6d1d4f0594 Merge PR #386 - add beep demo face
Allows the user manually trigger all 87 buzzer notes.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Wesley Black <hello@wesleyblack.ca>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/386
2024-09-07 20:53:08 -03:00
Matheus Afonso Martins Moreira 1f6153809b Merge PR #413 - add thermometer face
Measures the temperature until it stabilizes for half a minute.

This watch face is not meant to diagnose, treat, cure or prevent
any disease.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/413
2024-09-07 20:49:19 -03:00
Matheus Afonso Martins Moreira 941a6ec523 Merge PR #454 - add simple calculator watch face
Adds a simple calculator watch face to the sensor watch
capable of addition, subtraction, multiplication, division
and exponentiation.

Reviewed-by: Joey Castillo <joeycastillo@utexas.edu>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-by: Joey Castillo <joeycastillo@utexas.edu>
Tested-on-hardware-by: mcguirepr89 <mcguirepr89@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/454
2024-09-07 20:38:08 -03:00
Matheus Afonso Martins Moreira 99586f8442 Merge PR #394 - keep LED lit while buttons held
Keeps the LED turned on while the user is interacting with the watch.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/394
2024-09-07 20:31:46 -03:00
Matheus Afonso Martins Moreira b9dbc4ed21 Merge PR #398 - add simon game watch face
Adds a watch face that allows playing the classic Simon game
with the watch's buzzer and RGB LED.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/398
2024-09-07 20:28:45 -03:00
Matheus Afonso Martins Moreira 543788b622 Merge PR #287 - add minimal clock face
Add a minimalist clock face that shows only hours and minutes.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/287
2024-09-07 20:14:26 -03:00
Matheus Afonso Martins Moreira 7de53f9fa0 Merge PR #269 - add french revolutionary time face
Adds a french revolutionary time watch face which displays the time
divided into ten hours of one hundred minutes each which are in turn
divided into one hundred seconds each.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Reviewed-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Reviewed-by: Alex Maestas <git@se30.xyz>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/269
2024-09-07 20:00:16 -03:00
Matheus Afonso Martins Moreira ce249abde6 Merge PR #259 - add higher or lower game face
Adds a watch face that implements a game where the player
must guess if the next card will be higher or lower than
the last cards that have been revealed.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Chris <chris.ellis.git.dev@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/259
2024-09-07 19:59:52 -03:00
Matheus Afonso Martins Moreira c805cdc7df Merge PR #266 - add deadline tracking watch face
Adds a timing watch face that focuses on
keeping track of specific deadlines.

Dates and times can be set on the watch face
and it will display the time remaining at ever
decreasing levels of granularity for the sake
of brevity and ease of understanding.

For example, it will display years and months if over a year is left,
months and days if less than one year is left,
days and hours if less than one month is left
and the full remaining time if less than a day is left.

It also notifies the user when a deadline has passed recently.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Konrad Rieck <konrad@mlsec.org>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/266
2024-09-07 19:59:31 -03:00
Matheus Afonso Martins Moreira 852c3aad27 Merge PR #423 - add periodic table face
Adds a watch face full of useful information
about every known chemical element.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: PrimmR <primmr@icloud.com>
Tested-on-hardware-by: David Volovskiy <devolov@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/423
2024-09-07 18:47:20 -03:00
Matheus Afonso Martins Moreira 02e66309d4 Merge PR #444 - implement countdown autorepeater
Adds the ability to automatically restart the timer
in the countdown watch face. This allows users to
easily time repeating events.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/444
2024-09-07 16:52:29 -03:00
Matheus Afonso Martins Moreira 80dc8a247f Merge PR #465 - add metal gear solid codec chime
Snake? Snake?! SNAAAAAAAAAAAAAAAAAAAAAAKE!

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/465
2024-09-07 16:43:00 -03:00
Matheus Afonso Martins Moreira 3462d51071 Merge PR #467 - add harry potter chimes
Add Harry Potter themed hourly signal chimes, short and long variants.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/467
2024-09-07 16:26:10 -03:00
Matheus Afonso Martins Moreira 014ef32576 Merge PR #293 - add instant LED duration
Adds an instant LED duration preference that only keeps the LED lit
while the LIGHT button remains held down.

Matches the behavior of the original watch.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Tested-on-hardware-by: 814d3 (GitHub)
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/293
2024-09-03 19:06:40 -03:00
Matheus Afonso Martins Moreira c0a72acb7c Merge PR #419 - add endless runner watch face
Adds an endless runner game face to the Sensor Watch.

The player character runs endlessly towards the right.
An endless number of obstacles speed towards him.
The player must jump over them or lose the game
when the player character runs smack into the obstacle.
Jumping requires fuel which is a limited resource
that must be managed by the player.

Features selectable difficulties and high score tracking.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/419
2024-09-03 18:50:12 -03:00
Matheus Afonso Martins Moreira cd4b285c6e Merge PR #436 - add wordle watch face
Ports the famous Wordle game to the Sensor Watch.

A random 5 letter word is chosen and the player must guess it
without exceeding the configured maximum number of attempts.
Letters guessed correctly will stay in place.
Letters present in the word but in the wrong place will blink.

Streak tracking is supported and compile time configurable.

A Python script which finds an optimal dictionary is also included
and can be used to further customize the watch face.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/436
2024-09-03 18:49:18 -03:00
Matheus Afonso Martins Moreira 4d6a9345f2 Merge PR #299 - leading zero representation
Adds a movement-wide leading zero 024h representation mode
that's toggleable in the preferences watch face.
Also adds support for the new display mode to existing faces.

I modified the logic a bit to ensure the 24h indicator remains lit
in the simple clock face even when in 024h mode. I also added support
to the more advanced clock face. In the future I will add a compile time
toggle to it as well.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/299
2024-09-03 18:49:13 -03:00
Matheus Afonso Martins Moreira d4bd10ba5e Merge branch 'next'
This merge adds numerous individually small fixes and improvements
which amount to a sizeable set of features.

 - New hourly chime tunes added
 - Old hourly chime tunes improved
 - Display of characters on the stock LCD improved
 - Documentation improved
 - Simulator improved
 - Leap year handling improved
 - Months and their days sanity checked and fixed
 - More compile time configurable defaults added
 - Excessively exact time checks relaxed
 - Clock face indicators matched to original watch
 - Hardware interface issue fixed

The most significant new feature however is software debouncing.
The sensor watch now properly handles hardware switch bouncing,
making the button inputs much more precise at the cost of a small amount
of latency, greatly improving usability. Any watch faces which require
holding down buttons as part of their user interface, the pulsometer
for example, should see huge improvements in their usability.

 * 9c093f9 Merge PR #387 - configurable default birthdate/location
 * 879c48c Merge PR #417 - improve 24h only mode
 * db4097b Merge PR #426 - add temperature input to simulator
 * dea0566 Merge PR #428 - fix issues in sunrise/sunset
 * c8ca0d3 Merge PR #431 - fix wrong number of days in month
 * 95ca374 Merge PR #433 - fix clock face indicators
 * 663cd72 Merge PR #434 - fix leap years
 * a715265 Merge PR #437 - debouncing logic
 * c741332 Merge PR #439 - fix scheduled task misses
 * 657ff72 Merge PR #440 - fix countdown face issues
 * c8a87d3 Merge PR #441 - update documentation
 * dd04443 Merge PR #443 - improved t and y character display
 * 42dc151 Merge PR #447 - improve kim possible chime
 * fa0cdef Merge PR #450 - sync after enabling RTC
 * a67076f Merge PR #458 - add layla tune
 * 23c422b Merge PR #459 - add power rangers tune
 * a2e5417 Merge PR #461 - improve t/y special case docs

Tested-on-hardware-by: Alex Maestas <git@se30.xyz>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Wesley Ellis <tahnok@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/460
2024-09-03 01:03:08 -03:00
Matheus Afonso Martins Moreira a67076f437 Merge PR #458 - add layla tune
Awesome lick from Eric Clapton - Layla.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/458
2024-09-03 00:49:20 -03:00
Matheus Afonso Martins Moreira 23c422b27a Merge PR #459 - add power rangers tune
The power lies on their side.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/459
2024-09-03 00:42:33 -03:00
Matheus Afonso Martins Moreira a2e5417de9 Merge PR #461 - improve t/y special case docs
Fix a typo and make the documentation clearer.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/461
2024-09-03 00:28:25 -03:00
Matheus Afonso Martins Moreira fa0cdef45b Merge PR #450 - sync after enabling RTC
According to the data sheet, writing to a Control A register's ENABLE
bit will trigger write synchronization and set SYNCBUSY's ENABLE bit
which will be automatically cleared by the hardware once the write
operation is complete.

It is necessary to wait until SYNCBUSY's ENABLE bit is clear.
Reading synchronized registers before that returns previous values.
Writing synchronized registers before that drops the write and generates
an error value in another register.

The data sheet recommends polling the ENABLE bit in this situation.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/450
References: SAM L22 Family Data Sheet §§ 14.3.2, 14.3.3, 14.3.4, 14.3.5
2024-08-30 16:47:47 -03:00
Matheus Afonso Martins Moreira 879c48ce4d Merge PR #417 - improve 24h only mode
Enhances 24 hour only mode by setting defaults properly
and skipping past the 12/24 hour settings page in the
preferences watch face.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/417
2024-08-30 16:47:47 -03:00
Matheus Afonso Martins Moreira db4097bf84 Merge PR #426 - add temperature input to simulator
This patch enhances the Sensor Watch simulator with a temperature input
allowing users to simulate and test the temperature sensor.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/426
2024-08-30 16:47:47 -03:00
Matheus Afonso Martins Moreira dea05663b0 Merge PR #428 - fix issues in sunrise/sunset
Takes zero into account, allowing the sunrise/sunset watch face
to work with no presets defined.

Also resolves a warning during compilation of the sunrise/sunset face.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/428
2024-08-30 16:47:47 -03:00
Matheus Afonso Martins Moreira 663cd725f8 Merge PR #434 - fix leap years
Improves handling of months in the Sensor Watch
by computing whether the given year is a leap year.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/434
2024-08-30 16:47:38 -03:00
Matheus Afonso Martins Moreira c8ca0d3619 Merge PR #431 - fix wrong number of days in month
July has 31 days and but was set to 30 days in the Sensor Watch.
This patch fixes the discrepancy.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/431
2024-08-30 16:46:22 -03:00
Matheus Afonso Martins Moreira 95ca374c98 Merge PR #433 - fix clock face indicators
I misinterpreted the documentation and swapped the alarm and time signal
indicators in the clock face. This patch brings it back in sync with
the original watch's behavior as described in the manual.

Reported-by: 814d3 (GitHub)
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/433
References: https://github.com/joeycastillo/Sensor-Watch/pull/380
References: https://github.com/joeycastillo/Sensor-Watch/issues/132
2024-08-30 16:46:22 -03:00
Matheus Afonso Martins Moreira 657ff724d0 Merge PR #440 - fix countdown face issues
Avoid potential underflow when evaluating x - y with y > x.
Evaluate it only when y <= x instead.

Avoid clearing indicators in background task
since another watch face is likely active.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/440
2024-08-30 16:46:22 -03:00
Matheus Afonso Martins Moreira 42dc15117e Merge PR #447 - improve kim possible chime
The current one is slightly off compared to the original tune.

Original: https://www.youtube.com/watch?v=_3nfrGdVcv0
Before: https://onlinesequencer.net/4159215
After: https://onlinesequencer.net/4160385

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/447
2024-08-30 16:46:22 -03:00
Matheus Afonso Martins Moreira a715265af6 Merge PR #437 - debouncing logic
Mechanical switches exhibit temporary voltage fluctuations
when electrical contact is made, which manifest as "bouncing"
between the logical high and low states. Sampling the switch's
state during this period of stability produces invalid results.

The switch must be debounced by ignoring the generated interrupts
until the switch's state has stabilized. This is implemented by delaying
the input events until an empirically determined time has elapsed.
As such this pull request introduces customizable high resolution timers
for debouncing button down and up events.

This software debouncing unfortunately increases the sensor watch's
input latency. This is an acceptable tradeoff due to better usability:
watch faces which require holding down buttons such as the pulsometer
should work much more reliably after this patch.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Krzysztof Gałka <@kshysztof@Discord>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/437
References: https://en.wikipedia.org/wiki/Switch#Contact_bounce
2024-08-30 16:44:38 -03:00
Matheus Moreira 9c093f9540 Merge PR #387 - configurable default birthdate/location
Adds the ability to configure at compilation time
the movement's default birth date and location.

Tested-by: madhogs <madhogs@protonmail.com>
Tested-by: Niehztog <niehztog@gmail.com>
Tested-on-hardware-by: madhogs <madhogs@protonmail.com>
Tested-on-hardware-by: Niehztog <niehztog@gmail.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/387
2024-08-30 16:44:38 -03:00
Matheus Moreira c7413322a5 Merge PR #439 - fix scheduled task misses
The movement was checking for scheduled tasks
by comparing for equality their scheduled times to
the current time. However, it is possible that the time
has moved past the scheduled time by the time the
function executes, leading to scheduled tasks not
being executed and therefore to missed deadlines.

Changing it to `<=` fixes the problem by taking that
possibility into account.

Helped-by: Wesley Ellis <tahnok@gmail.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/439
2024-08-30 16:44:38 -03:00
Matheus Moreira c8a87d3b7c Merge PR #441 - update documentation
The TOTP watch face has gained a new declarative API
for defining secrets directly in the source code but the
documentation still describes the old interfaces.
This pull request brings the documentation up to date
with currect practice.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/441
2024-08-30 16:44:38 -03:00
Matheus Moreira dd04443413 Merge PR #443 - improved t and y character display
The t and y characters were not being displayed optimally
in certain positions. This commit improves it substantially
by internally remapping those characters to better looking
characters when displaying on those positions.

Tested-by: David Volovskiy <devolov@gmail.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/443
References: https://hchargois.github.io/sensor-watch-playground/
2024-08-30 16:44:00 -03:00
Matheus MoreiraandGitHub 01940449b6 Merge PR #442 - update devcontainer image
The devcontainer image stopped working
because the requested Ubuntu image
was too outdated. This pull request
brings it up to date and it should remain
functional until 2029. It also enables
use of the emulator by installing the
needed dependencies.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/442
2024-08-26 09:41:08 -03:00