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.
This commit is contained in:
Alex Utter
2023-11-27 20:06:19 -08:00
committed by GitHub
parent 3487d742f1
commit 7802994854
91 changed files with 1405 additions and 592 deletions

View File

@@ -25,6 +25,47 @@
#ifndef NANOSEC_FACE_H_
#define NANOSEC_FACE_H_
/*
* NANOSEC face
*
* The goal of nanosec face is dramatic improvement of SensorWatch accuracy.
* Minimum goal is <60 seconds of error per year. Full success is if we can
* reach <15 seconds per year (<0.47ppm error).
*
* Best used in conjunction with the FINETUNE face.
*
* It implements temperature correction using tempco from datasheet (and
* allows to adjust these) and allows to introduce offset fix. Therefore
* requires temperature sensor board.
*
* Most users will need to apply profile 3 ("default") or 2 ("conservative
* datasheet"), and tune first parameter "static offset" (as it's different
* for every crystal sample).
*
* Frequency correction is dithered over 31 correction intervals (31x10
* minutes or ~5 hours), to allow <0.1ppm correction resolution.
* * 1ppm is 0.0864 sec per day.
* * 0.1ppm is 0.00864 sec per day.
*
* To stay under 1ppm error you would need calibration of your specific
* instance of quartz crystal after some "burn-in" (ideally 1 year).
*
* Should improve TOTP experience.
*
* Default funing fork tempco: -0.034 ppm/°C², centered around 25°C
* We add optional cubic coefficient, which was measured in practice on my sample.
*
* Cadence (CD) - how many minutes between corrections. Default 10 minutes.
* Every minute might be too much. Every hour - slightly less power
* consumption but also less precision.
*
* Can compensate crystal aging (ppm/year) - but you really should be worrying
* about it on second/third years of watch calibration.
*
* For full usage instructions, please refer to the wiki:
* https://www.sensorwatch.net/docs/watchfaces/nanosec/
*/
#include "movement.h"
#define nanosec_profile_count 5