Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
50 most recent check-ins
|
2024-06-03
| ||
| 13:29 | add timer_face to config Leaf check-in: 6543022d8f user: ruben tags: main, trunk | |
| 13:28 | disable submodule rule check-in: d5b5407646 user: ruben tags: main, trunk | |
|
2024-05-31
| ||
| 22:41 | week number clock face with quarter hour chime check-in: 24fa348303 user: ruben tags: main, trunk | |
| 22:40 | my own config check-in: f2fcfb08df user: ruben tags: main, trunk | |
|
2024-04-09
| ||
| 22:24 | Merge pull request #388 from TheOnePerson/fix-compile-errors Fix compile errors and warnings in movement.c and shell.c check-in: 7685a3027d user: noreply@github.com tags: main, trunk | |
| 22:23 | Merge pull request #389 from joeycastillo/theAlexes/add-openocd add an openocd.cfg for openocd 0.12.0 check-in: 27e5ae9611 user: noreply@github.com tags: main, trunk | |
|
2024-03-31
| ||
| 00:40 | Merge pull request #383 from theAlexes/theAlexes/fix-uf2conv uf2conv: argument to `re.split` should be a rawstring check-in: ac2c1a92ca user: noreply@github.com tags: main, trunk | |
| 00:39 | Merge pull request #385 from matheusmoreira/totp-hot-patch TOTP hotfix: reduce memory usage check-in: 1ee8672a15 user: noreply@github.com tags: main, trunk | |
| 00:37 | add an openocd.cfg for openocd 0.12.0 Leaf check-in: a56441edac user: git@se30.xyz tags: origin/theAlexes/add-openocd, trunk | |
|
2024-03-29
| ||
| 10:49 | Fix compile errors and warnings in movement.c and shell.c check-in: a3799aec13 user: a.nebinger@web.de tags: main, trunk | |
|
2024-03-20
| ||
| 15:54 | faces/totp: avoid displaying when key is invalid Fixes a division by zero bug caused by calling getCodeFromTimestamp without having initialized the TOTP library with a secret first. This was happening because the face calls totp_display on activation, meaning the validity of the secret was not checked since this is done in the generate function. Now the validity of the key is determined solely by the size of the current decoded key. A general display function checks it and decides whether to display the code or just the error message. The size of the current decoded key is initialized to zero on watch face activation, ensuring fail safe operation. Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> Tested-on-hardware-by: madhogs <59648482+madhogs@users.noreply.github.com> Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/385 check-in: 13fa84f837 user: matheus.a.m.moreira@gmail.com tags: main, trunk | |
| 15:54 | faces/totp: fix error message not displayed bug Forgot to call watch_display_string on the error message. Of course the message isn't going to be displayed. Also, increase the buffer size to 10 characters and output a space to the last position. This ensures the segments are cleared. Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> Tested-on-hardware-by: madhogs <59648482+madhogs@users.noreply.github.com> Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/385 check-in: f7b724cfd9 user: matheus.a.m.moreira@gmail.com tags: main, trunk | |
|
2024-03-18
| ||
| 14:40 | faces/totp: remove dynamic memory allocation Allocate an unlimited extent 128 byte buffer once during setup instead of allocating and deallocating repeatedly. A static buffer was not used because it fails to be reentrant and prevents multiple instances of the watch face to be compiled by the user. The advantage is the complete prevention of memory management errors, improving the reliability of the watch. It also eliminates the overhead of the memory allocator itself since malloc is not free. The disadvantage is a worst case default size of 128 bytes was required, meaning about 90 bytes will be wasted in the common case since most keys are not that big. This can be overridden by the user via preprocessor. The key lengths are checked on TOTP watch face initialization and if any key is found to be too large to fit the buffer it is turned off and the label and ERROR is displayed instead. The base32 encoded secrets are decoded dynamically to the buffer at the following times: - Face enters the foreground - User switches TOTP code Therefore, there is still some extra runtime overhead that can still be eliminated by code generation. This will be addressed in future commits. Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> Tested-on-hardware-by: madhogs <59648482+madhogs@users.noreply.github.com> Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/385 check-in: 4365894156 user: matheus.a.m.moreira@gmail.com tags: main, trunk | |
|
2024-03-17
| ||
| 23:48 | faces/totp: improve memory usage The TOTP face is working in the simulator but fails on the real hardware when loaded with lots of codes, just like the LFS version. This is likely caused by the recent refactoring of the TOTP face which introduced a declarative credential interface for ease of use. That's accomplished by decoding the secrets at runtime which increases the RAM requirements. Users are likely hitting memory limits. In order to mitigate this, the algorithm is changed from decoding all of the secrets only once during initialization to on the fly decoding of the secret for the current TOTP credential only. This converts this face's dynamic memory usage from O(N) to O(1) at the cost of memory management when switching faces and credentials which could impact power consumption. Issue is confirmed fixed by author of issue who has tested it on real hardware. Fixes #384. Due to variable key sizes, the memory cannot be statically allocated. Perhaps there's a maximum key size that can serve as worst case? Also took this opportunity to restructure the code a bit. Also added code to check for memory allocation failure. Reported-by: madhogs <59648482+madhogs@users.noreply.github.com> Fixed-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: madhogs <59648482+madhogs@users.noreply.github.com> Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/384 check-in: c9e364f3a1 user: matheus.a.m.moreira@gmail.com tags: main, trunk | |
| 02:50 | deploy: 955ac94de3afcad4e79bcf16e8fecd512a3dddca Leaf check-in: c7c251447f user: theAlexes@users.noreply.github.com tags: origin/gh-pages, trunk | |
|
2024-03-16
| ||
| 23:04 | faces: restore simple_clock_face Restore the original simple clock face as requested. Leaf check-in: fe511614c8 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 16:50 | uf2conv: argument to `re.split` should be a rawstring check-in: 90bd3f2c45 user: git@se30.xyz tags: main, trunk | |
|
2024-03-08
| ||
| 09:56 | Merge branch 'timeout-event-and-sleep-logic' Currently, movement drops timeout events in case the previous loop indicates that sleep is not possible. This is due to unintended short circuiting behavior of && and is fixed with a temporary variable. The static qualifier of can_sleep is also removed. Helped-by: Alex Maestas <git@se30.xyz> 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/376 check-in: 137989bd40 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 09:56 | Merge branch 'structured-totp+maxz' into advanced Aggregates the TOTP credentials into a data structure, making it easier to define and use the credentials. Also incorporate backwards movement code from another branch. Co-authored-by: Max Zettlmeißl <max@zettlmeissl.de> 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/369 GitHub-Related-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/356 check-in: a5370137ad user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 09:54 | Merge branch 'advanced-pulsometer' into advanced Implements an advanced pulsometer that can be calibrated by the user. Also features a streamlined and responsive user interface, new documentation and generally improved code. 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/371 check-in: 71a7741f5c user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 09:54 | 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 check-in: d7e37c9637 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 09:52 | 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 check-in: 318344fb6e user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 09:52 | Merge branch 'compile-time-preferences' Adds overridable C preprocessor definitions for every user preference. Enables the user to set defaults and omit the preferences face. The default behavior of the watch is preserved. Suggested-by: Wesley Aptekar-Cassels <me@wesleyac.com> Implemented-by: madhogs <x3dh4vhf@duck.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/295 GitHub-Related-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/291 check-in: c68be9a86c user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 09:51 | Merge branch 'usb-improvements' into advanced - Change newline prints to also send carriage return - Introduce shell module for serial shell with argument parsing - Introduce shell command list for compile time command registration - Refactor file system commands for shell subsystem - Introduce new shell commands: - 'help' command - 'flash' command to reset into bootloader - 'stress' tests CDC serial writes of various lengths - optional delay parameter - Harden USB handling - Hangs less - Drops fewer inputs - Circular buffers for both reads and writes Reported-by: Edward Shin <contact@edwardsh.in> Tested-by: Edward Shin <contact@edwardsh.in> 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> Reviewed-by: James Haggerty <james@gruemail.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/344 check-in: 54fe979f28 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 09:50 | 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 check-in: a615ac1f80 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 09:49 | 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 check-in: 134319d70d user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
|
2024-03-06
| ||
| 00:49 | movement: fix unintended timeout short circuiting Currently, movement drops time out events in case the previous loop indicates that sleep is not possible due to short circuiting behavior of logical and in C: if the left-hand side is false, the right hand side is not evaluated at all, which means the loop is not called. This was not intended to happen. Fix it by storing the result in a second boolean variable and working out the logic after the fact. check-in: 4a94ab9887 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 00:08 | movement: convert can_sleep an automatic variable It is a simple boolean value and its scope is limited to the function. There is no reason that I can think of for it to be a static variable. check-in: e22fa6a72a user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
|
2024-03-05
| ||
| 07:41 | faces/pulsometer: remember pulsometer measurement Avoid resetting it to zero when the face is activated. Initialize the variables once when the face is first set up. This makes it remember the last measurement taken by the user. It will no longer be overwritten when the watch face activates. check-in: 3b7948275c user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 07:14 | faces/pulsometer: remember pulsometer calibration Avoid resetting it to default when the face is activated. Set the default pulsometer calibration once, only when the face is first set up. This makes it remember the calibration set by the user. It will no longer overwrite it. check-in: c174c38345 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 06:58 | faces/totp: update copyrights Update the copyrights to include full name attribution to Max Zettlmeißl whose code I've incorporated and who has explicitly licensed it as MIT. Max Zettlmeißl (@maxz) commented on 2024-01-20: > I provide all my changes under the MIT license GitHub-Comment: https://github.com/joeycastillo/Sensor-Watch/pull/356#issuecomment-1902114306 check-in: bdc6fe7f7f user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 06:58 | faces/totp: allow moving backwards through codes Adds the ability to cycle back to the previous credential with LIGHT. Long pressing LIGHT activates the LED. Co-authored-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> check-in: b458bc7c64 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 03:46 | 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. check-in: 396781739f user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 03:46 | 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. check-in: 1286b6130a user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
|
2024-02-26
| ||
| 01:57 | faces/totp: delete leading underscores Makes for cleaner symbols. check-in: aa461abf04 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 01:53 | faces/totp: rename initializer macro to credential Shorter and far more expressive. check-in: ff4b739d06 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 01:52 | faces/totp: improve TOTP initializer labeling It now generates the string literal from the preprocessor token. Even warns the user if the string is too long! check-in: c9e7fb47fd user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 01:50 | faces/totp: decode secrets when setting up This allows the user to easily copy the base32 encoded secrets into the TOTP record initializers. They will be decoded once at runtime when the face is being set up by the movement framework. Also rename the array of TOTP records to credentials. Much better. check-in: e2209a864d user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
|
2024-02-25
| ||
| 18:24 | 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. check-in: 08d4f19e7c user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | 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. check-in: c1cf75891e user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | faces/clock: refactor time signal toggling code Simplifies the code by defining dedicated functions for this. check-in: b451d65e1f user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | faces/clock: refactor clock display code Simplifies the code by defining dedicated functions for this. check-in: 191980fa41 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | faces/clock: reorder periodic battery check Check the battery after the time has been updated. Place all the indication code next to each other. check-in: d95b15e277 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | faces/clock: refactor partial time display code Simplifies the code by defining dedicated functions for this. check-in: bc21858c18 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | faces/clock: refactor full time display code Simplifies the code by defining dedicated functions for this. check-in: 459b2d7cd1 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | faces/clock: refactor tick tock animation code Simplifies the code by defining dedicated functions for this. check-in: dbdf578289 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | 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. check-in: eee98c5764 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | 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. check-in: dd695fe119 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | 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. check-in: 127f26971d user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |
| 18:24 | faces/clock: simplify PM indication function Simplifies the code by adding dedicated functions for this. check-in: 3dc11d74a0 user: matheus.a.m.moreira@gmail.com tags: origin/next, trunk | |