I have 5x i2c rotary encoders wired, each on a diffenet i2c address:
I poll them every 250ms.
But it is not stable. From time to time, maybe after hours, i catch the following error:
"InternalError: InternalError: Timeout on I2C Write Transmit Mode 2"
It's repeating endless until i force to reset/restart the espruino using my own E.enableWatchdog(); function. Memory usage is stable.
I was not able to isolate the code. Here is a snip where i catch it.
d = I2C1.readFrom(...., 8);
log(x); // InternalError: InternalError: Timeout on I2C Write Transmit Mode 2
After a soft restart of the espruino using my own watchdog reset, everything is fine again. The encoders are not reseted or restarted. No powercycle was made for the encoders.
Is there a way to recover this i2c issue without a restart of the espruino ?