* Time can get set from makefile
* Added setting make time into simulator
* Added Hash in settings
* Added default location
* Cuts the Githash to 6 characters in the settings in case the makefile didn't do that already
* bump gossamer commit
* remove automatic timezone setting
* automatic time set: rename MAKEFILE_ to BUILD_ to match gossamer
* Revert "Added default location"
This reverts commit c24f69450fd40472c4f6cebb790a56c3f0d69cb6.
* silence warning
* watch_get_init_date_time: explicitly initialize all fields to 0
---------
Co-authored-by: Joey Castillo <joeycastillo@utexas.edu>
* Initial custom display SVG and display selection
* clean up SVG and add data-com and data-seg
* Fix signal's data-com and data-seg
* Revert "Fix signal's data-com and data-seg"
This reverts commit 82f8dc6a91973fb3b9e25e8e073a26d8996977ae.
* Update indicators mapping for custom display
* Align #ifs to the left
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 ac5bf8cfce67cdb5662aeea618c2eb9511f0d190, reversing
changes made to 5a8a49a8c77d6d5ba0f46f0e5b51dec2daba46db.
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
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
This makes it possible to do a bunch of things without
having to keep touching the light button.
I don't really see any downside with this. If you want
the light to go off, just stop touching buttons.
* Sensor Watch Pro board definition
* Disable hot-plugging on SWCLK
* Add rainbow test
* Move interrupt mapping to board config
* New color definition for Pro boards in makefile
These keys are the shortcuts to "press" the alarm, light and mode
buttons. However, they prevent these letters from being input in the
debug console to send filesystem commands. Strangely, there was already
some code to allow typing these letters in the console output, but not
in the input.
When using the simulator, I encountered cases where the light would become stuck on, and the watch
would be unresponsive. In particular, this would occur when pressing the light button on the
sunrise sunset watch face.
I appears that this is caused by a divergence in out the callback mask is interpreted by the
hardware interface, and in the simulator in the following function.
void watch_rtc_disable_matching_periodic_callbacks(uint8_t mask)
In particular, a mask of 0xFE is intended to disable all except the 128hz callback at index 0,
but instead disables all except the 1hz callback at index 7 in the simulator.
* buzzer sequences: first draft, does not work on hardware yet (but in simulator)
* buzzer sequences: add changes to movement.c
* buzzer sequences: add demo face to Makefile
* buzzer sequences: fix problem of interrupted sounds. Add logic for repeating sub sequences. Tidy up (move logic to watch_buzzer files, remove buzzer_demo_face)
* buzzer sequences: tidy up even more
* buzzer sequences: disable registering a 32 Hz tick callback for watch faces, so it will be used exclusively by the buzzer sequences functionality
* buzzer sequences: add callback slot functionality to watch_rtc and make watch_buzzer use it. Switch internal buzzer sequences tick frequency to 64 Hz. Revert changes to movement.c
* buzzer sequences: fix parameter sanity check in watch_rtc code
* buzzer sequences/watch_rtc: optimize calling tick callbacks in RTC_Handler
* buzzer sequences/watch_rtc: fix error in calling callback functions
* buzzer sequences: revert changes to watch_rtc logic. Instead, use TC3 as the source for timing the sound sequences.
* buzzer sequences: fix frequency of callback
* buzzer sequences: integrate changes from PR #162 (set both CCBUF and PERFBUF for correct buzzer tone)
* Intermediate changes
* Databank working
* Main commit for precision timing
First version where all functions are supposed to be working
* Fix math error in nanosec. File storage for location.
* Remove obsolete comments
* Missing page name on pages rotation - thanks to jeremy
* Delete file.diff
* Cleanup+tempchart
1) finetune must always reset last calibration time when doing non-0 time correction, even when you are not applying ppm correction.
2) Dithers over 31 periods not 10, more resolution with still no risk of overflow
3) Minute-boundery finetune fix. I also just got this 1-minute error after finetune...
4) Write frequency calibration value in 1 operation rather than 2. All RTC writes must be single operations to avoid partially correct data.
5) Some code cleanup
6) Tempchart face is added for temperature statistics
* Update set_time_hackwatch_face.c
* Math error in display code of finetune, allow to update correction time even without correction - by long alarm press
* Increase reliability of stopping & starting RTC timer
As it's quite dangerous operation
* hackwatch - days adjust down fix by long alarm
* unify style
* More comments & last style change
* Simulator support
RTC operations (watch_rtc_enable and watch_rtc_freqcorr_write) are in common libs.
* Unicode fix
* Crystal aging is now adjustable (AA page in nanosec - annual aging, ppm/year)
Aging is baked into fixed offset every time finetune is performed, as it relies on last adjustment time.
* Blink on non-0 page every minute in finetune to measure clock error
* Rolling back private changes
* Cleanup
* Cleanup
* Quality of life changes in nanosec
1. Does not calculate & apply ppm correction if less than 6 hours passed since previous adjustment (as it gives very high correction values which are unrealistic and unhelpful)
2. Idle timeout resets to face 0 only if no correction was made
* unify style
* Fix low-power errors in nanosec infrastructure, faster display in finetune
* Merge fix
* unify style
Co-authored-by: Jeremy O'Brien <neutral@fastmail.com>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
I noticed that the bicolor led isn't supported in the simulator. Here is a quick mockup of how I would add support for it.
I added an SVG filter to the #light rectangle in the SVG which lets us multiply the colours by a matrix in code. I then insert values so that the original green colour gets mixed into the combination of red and green requested by `watch_set_led_color`
# Testing
So far I've only tested this with the standard firmware build but it seems to work.
# Possible issues
I wasn't 100% sure what to do when red + green > 255, current behaviour is that it gets clamped to 255 in the simulator.