Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 36 million developers.Sign up
The clock controller failed to properly setup the local clock. As a consequence the transition synced --> unlocked --> free was possible within 1s instead of at least 3000s. The setup is now properly called. As a consequence of the bugfix the clock will reaquire synced state faster if the signal quality detoriates for less than 3000 seconds.
The frequency tuning mechanism was to ambitious. This caused more issues than it solved. Thus I downgraded the mechanism slightly.
The tuning results will not be persisted anymore. Most users of the library will not notice this at all. However it decreases the size of the library. It also ensures that it can not get stuck persistently on a flawed adjustment parameter anymore. The point is that there is no guarantee that a properly tuned and persisted adjustment is good after a prolonged period of time. (Possible reasons: crystal aging and temperature differences).
The tuning range is decreased to +/- 125 ppm. However the range can be configured to "extended" (+/- 400 ppm) which is the old setup. This may be noticed by users with very poor crystal oscillators. The library was never designed for out of spec hardware. Thus they either have to fix their hardware or to adapt the configuration as needed.
The actual fix is in v3.2.10. However the fix has the side effect to delay the initial lock. Hence I made it configurable in 3.2.11 and set the default to the old behaviour. If you experience issues with the clock locking to a biased signal then you might want to change https://github.com/udoklein/dcf77/blob/v3.2.11/dcf77.h#L110. That is you might want to set
static const uint8_t unacceptable_minute_decoder_quality = controller_minute_quality_threshold_t::aggressive_minute_quality;
to something more conservative.
Some parts of the library used MEZ / MESZ as the timezone code. Others used CET / CEST. Now the library will issue CET / CEST everywhere.