# Sensor diagnostic protocol Version: rideform-diagnostics-1. This is a stationary garage experiment with the motorcycle safely supported. Mount the phone rigidly at the sternum and retain mounting notes and sign checks. Physical sign verification and real motion remain human gates. 1. Open Diagnostics and choose fused-only, fused plus raw, or raw-only. Normal rider recording still requires verified calibration. Diagnostics can start without calibration; rider angles/transitions are unavailable in that case. Changing capture mode restarts acquisition and invalidates the old calibration reference. 2. Start the stationary phase. Remain still for 30 seconds. Capture saves a `diagnosticPhase` STATIONARY event. The timer records the actual MOVEMENT phase dispatch after 30 seconds; delays remain visible rather than backdated. An early stop records END and marks the stationary interval short. 3. Follow SLOW LEFT → RETURN CENTER → SLOW RIGHT → RETURN CENTER → SLOW FORWARD → RETURN CENTER, followed by the equivalent RAPID sequence. Use Movement complete / next after each movement and settling period. Each instruction persists a `diagnosticDrill` event at actual UI dispatch time. These events are protocol annotations, never movement truth. LEFT is rider left, FORWARD is torso flexion. Mark GOOD/BAD separately if useful; retain independent human onset/peak labels for accuracy assessment. 4. Stop and save. Inactivity/backgrounding stops capture, cancels pending protocol timing, and saves an interrupted master. Reopen through Sessions to inspect or export; saved masters remain immutable. 5. Export the master ZIP, independent stream/event/calibration CSVs, and diagnostics JSON. When calibrated, export also includes a derived analysis sidecar with input SHA256 and the exact resolved configuration plus a separate configuration JSON. No derived file is written into the master directory. Noise and drift use only sensor timestamps mapped into `[STATIONARY, MOVEMENT)` or `[STATIONARY, END)`. The saved sensor-to-host mapping must be validated; callback receipt time is not substituted. Missing phases, missing mapping, insufficient samples, invalid quaternions, or unverified rotation convention produce explicit unavailable results/quality flags. Interrupted or short captures are identified. A protocol stationary label does not prove stillness: visible accidental movement within that interval must be excluded through a separate attributed analysis or repeated capture; it is not silently trimmed. Report each device-axis gyro and user-acceleration component's mean, population SD, RMS and count. Raw accelerometer statistics include gravity and are labeled separately. Report gravity-vector norm and quaternion geodesic angle dispersion about the multi-sample mean quaternion. Drift is the least-squares slope of the first stationary orientation's relative rotation vector against actual time and the end-minus-start vector, in radians/second and radians. It requires a verified attitude convention but not a rider calibration; it is device-reference drift, not a torso lean. Raw-only has no fused quaternion/gravity/user-acceleration evidence. None of the unavailable values becomes zero. Sampling is independent per stream: count, duration, mean/median Hz, interval min/max, population interval SD, nearest-rank p95/p99, nonpositive interval count, large-gap threshold/count/percent. Gaps exceed 2.5 times median positive interval. Estimated missing intervals and writer accepted-minus-written losses are separate from hardware drops. Delivery age requires validated mapping and is not physical sensor latency. For raw-stream acceptance, collect three matched stationary/drill recordings in fused-only and three in combined mode, with UI and writer active. Compare fused mean rate, p99 interval, callback delivery age, backlog/writer loss and stationary noise. The provisional engineering limits are at most 5% decrease in fused mean Hz, at most 20% increase in p99 interval and zero writer loss. Consider trial variance before deciding. Keep raw-only trials to inspect additional raw sensitivity if combined mode fails. Review timelines share the sensor-time domain and cursor. Red bands denote gaps; blue bands show detected movement/deceleration/settling/hold; peak lines and marker/cue lines are annotations. Display buckets preserve vector extrema, derivative-unavailable boundaries and segment edges. Full saved samples always feed statistics and detection. The unfiltered trace remains selectable; polynomial filtering is a derived operation with an explicit timestamp window. Recompute uses the exact loaded master; export uses the configuration of the completed visible analysis. Repeatability distributions include only complete unflagged comparable legs, keep outbound/return separate, and show per-metric sample sizes. Sample variance requires at least two transitions. Candidate jerk/spectral/reversal metrics are hypotheses, not a validated riding score. Derivative noise, gap handling, smoothing, interpolation, spectral grid/window/band limits and uncertain phase endpoints must remain visible. For the later Watch comparison retain device/platform, mounting, requested and observed rates, drift/noise, slow/rapid response traces, onset/peak/duration/range, jerk/profile metrics, cue dispatch times, repeated-trial distributions and exact analysis settings. Acoustic onset, physical sensor latency, and cross-device synchronization remain unmeasured without separate instrumentation. Simulator fixtures validate software paths only.