More Robust I2C Communication
New/Added
Nothing.
Changed/Enhancements
Cosmetic
Changed const variables to static const.
Robust I2C
The combination of the following measures should allow for a faster recovery if the I2C bus is locked. This happens only infrequently, but is part of the I2C protocol (problems). We try to detect and react to this faster.
Daemon
Introduced a fast_exit mode to the daemon to support a faster restart in case of an I2C lockup.
Firmware
Added a call to Wire.end() to the initialization of the I2C bus. This allows to re-init the bus at any time with the same call.
After half of the configured timeout period the ATTiny starts to re-initialize the I2C bus every second as long as there is no new communication with the RPi. This does not change any semantics.
Fixed Bugs
Nothing.