This PR brings the concept of persistence in ERB, which means to persist some states between power cycles. This is typically used to save some settings such as an encoder "position", or calibration data.
Compare to the equivalent libDaisy implementation, ERB brings a magic number for identifying the meaning of data, as well as rate limiting (1s by default), to avoid premature obsolescence of the QSPI chip.
To implement rate limiting, we introduced the daisy ClockHal which is a C++ clock matching std::chronoClock requirements.
This feature is also supported in the simulator, by emulating the QSPI chip and saving it in the VCV patch.
This PR brings the concept of persistence in ERB, which means to persist some states between power cycles. This is typically used to save some settings such as an encoder "position", or calibration data.
Compare to the equivalent
libDaisy
implementation, ERB brings a magic number for identifying the meaning of data, as well as rate limiting (1s by default), to avoid premature obsolescence of the QSPI chip.To implement rate limiting, we introduced the daisy
ClockHal
which is a C++ clock matchingstd::chrono
Clock
requirements.This feature is also supported in the simulator, by emulating the QSPI chip and saving it in the VCV patch.