Skip to content

v0.2.4 — WriteWithoutResponse for GIF data

Choose a tag to compare

@terraboops terraboops released this 13 Apr 23:36
· 2 commits to main since this release

Fixed

  • Periodic ~15s display freeze while writes hung waiting for ACKs. With v0.2.3's false-positive `is_connected()` probe removed, a second failure mode became visible: roughly every hour, three consecutive BLE writes would hang for the full 5s timeout each before the `consecutive_timeouts >= 3` threshold triggered a reconnect. All GIF packets were sent as `WriteWithResponse`, so the call blocked waiting for a device ACK that — due to what appears to be a firmware quirk that builds up over time — stopped coming.

    Switched GIF data packets to `WriteWithoutResponse`, matching what reference Python iDotMatrix libraries do for bulk data. The existing 100ms inter-packet sleep provides the flow control the ACK wait used to provide, and the 30s heartbeat (still `WriteWithResponse`) remains the canonical liveness check — if the device actually stops responding, the heartbeat catches it and the v0.2.0 supervisor/watchdog handles the reconnect.