survive disconnect during BLE MTU lookup

This commit is contained in:
Jay
2026-08-18 14:26:11 -04:00
parent d86212be9d
commit 4bf00eb583
5 changed files with 35 additions and 3 deletions
+11 -1
View File
@@ -61,7 +61,17 @@ remains the nominal datasheet value. Mapped raw counts are stored directly, and
sensor-native counts are reconstructed losslessly from the documented mapping.
No software filtering or sensor fusion is performed yet.
The ESP32-C3 polls at exactly 100 Hz in a dedicated acquisition task, but each
The BLE reconnect fixture measured scheduling jitter without drift: among 2,575
contiguous sample intervals, 1,293 differed from exactly 10 ms; absolute timing
deviation had a 4 us median, 160 us p95, 170 us p99, and 780 us maximum, while
cumulative error was only 152 us over 25.75 seconds. Bluetooth tasks can preempt
the polling task, but every record carries its actual acquisition timestamp.
Future fusion, integration, and filtering must derive each `dt` from those
timestamps rather than assume a uniform 10 ms interval. Sensor DRDY/FIFO
acquisition remains the later refinement for reducing the jitter itself.
The ESP32-C3 schedules nominal 100 Hz polling in a dedicated acquisition task,
but each
sensor has an independent internal
sample clock. The status registers are read immediately before each XYZ read so a
consumer can distinguish a fresh sample from a repeated poll and identify gyro