E81 — SHARED_I2C_TIMEOUT
Hardware version
This error only occurs on v4 hardware.
An I²C transaction on the shared bus did not complete within the 1.5-second timeout window. This is a global bus error — it is logged when any peripheral on the shared bus hangs, including the RFID reader, OLED display, or battery gauge.
What happens
The error is logged and the timed-out transaction is abandoned. The affected peripheral may miss an operation for that cycle (e.g. a skipped battery read, a dropped display frame, or a failed RFID poll). The firmware continues and retries on subsequent cycles. If timeouts recur, multiple subsystems may appear degraded at once.
Possible causes
- A peripheral on the shared I²C bus is not responding or is holding the bus line low.
- Loose or faulty cabling to the display or another I²C device.
- Electrical noise or a short on the I²C lines.
- The battery was disconnected, causing the fuel gauge to stop responding.
How to fix
- Check physical connections — Reseat the display cable and ensure the battery is connected, then reboot.
- Reboot the device — Clears a stuck bus state and reinitialises all peripherals.
- Note which features are affected — If only the display fails, suspect the OLED cable; if battery percentage is also stale, the issue may be bus-wide.
- Contact support — If this error appears frequently after checking connections, open an issue on GitHub and note which subsystems are affected.