]> git.earman.xyz Git - sensor-watch.git/commit
Precision watch update (#152)
authorMikhail Svarichevsky <3@14.by>
Tue, 10 Jan 2023 21:56:26 +0000 (00:56 +0300)
committerGitHub <noreply@github.com>
Tue, 10 Jan 2023 21:56:26 +0000 (16:56 -0500)
commit6b71711079bd35cab61356e7b47c27445fd5eee5
treea090a8d78d2e08db52e2b7640babfea448665fd6
parentfee6145e4d79a0d67d7e390692152bfdf94676a3
Precision watch update (#152)

* 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>
19 files changed:
movement/make/Makefile
movement/movement.c
movement/movement_faces.h
movement/watch_faces/clock/simple_clock_face.c
movement/watch_faces/complication/databank_face.c [new file with mode: 0644]
movement/watch_faces/complication/databank_face.h [new file with mode: 0644]
movement/watch_faces/complication/tempchart_face.c [new file with mode: 0644]
movement/watch_faces/complication/tempchart_face.h [new file with mode: 0644]
movement/watch_faces/settings/finetune_face.c [new file with mode: 0644]
movement/watch_faces/settings/finetune_face.h [new file with mode: 0644]
movement/watch_faces/settings/nanosec_face.c [new file with mode: 0644]
movement/watch_faces/settings/nanosec_face.h [new file with mode: 0644]
movement/watch_faces/settings/set_time_hackwatch_face.c [new file with mode: 0644]
movement/watch_faces/settings/set_time_hackwatch_face.h [new file with mode: 0644]
watch-library/hardware/watch/watch_rtc.c
watch-library/shared/watch/watch_private_display.c
watch-library/shared/watch/watch_private_display.h
watch-library/shared/watch/watch_rtc.h
watch-library/simulator/watch/watch_rtc.c