Environment

Same single room as EXP-F1, fixed device placement for 30+ consecutive days. Working-hours operation (8:00–18:00 weekdays) with the deployment running continuously and the trigger evaluating once per hour.

Motivation

This is the thesis core — the Periodic BLE Calibration Campaigns contribution promised by Ch3 L3.1 + L3.3. Merges the superseded EXP-002 (drift baseline) and EXP-003 (calibration response) into one continuous 30-day deployment, because drift measurement is the baseline arm of the calibration campaign, not a separate study.

Per diary/2026-05-20 - Experiment Series Reorganization §"Why these collapses are honest, not lazy", running them as one deployment is operationally identical and analytically cleaner: the sawtooth figure that EXP-003 named as the thesis-signature result is built on the EXP-002 degradation curve.

Calibration strategy: trigger-based only in deployment. Daily / weekly / never strategies become analysis-time ablations on the same collected data, not parallel model copies running in parallel.

Setup

Hardware deployment

Identical to EXP-F1 (4× Pi 5 + AX210, 2× ESP32-C6 BLE listeners, 2× ESP32-C5 supplementary CSI). Devices must remain in fixed positions for the entire 30 days. Power: continuous wall power; PoE preferred where wiring allows.

Day-0 model training

Day 0 reuses EXP-F1's collected scenarios (F1.A + F1.B) as labelled training data with BLE-derived ground truth. Two models trained, both deliberately kept simple (per A Framework to Estimate Classroom Occupancy using WiFi Channel State Information — LGBM is the right tier at this data scale):

  • Model A — Bagging-LGBM (the workhorse).
  • Model B — PINN with continuity-residual loss at $\lambda = \lambda^*$ from EXP-S1 Phase B (the mechanism story).

Both models frozen at end of Day 0.

Calibration trigger

The trigger fires when |BLE-derived count − model-predicted count| > 20 % for ≥ 1 hour. On fire:

  1. Server pushes a calibration-mode notification to all phones with the app.
  2. App raises BLE adv rate from 0.1 Hz (background) to 1 Hz (calibration).
  3. Participants present in the room walk through 1–2 cells over 15 min following an app-issued gamification task.
  4. System collects fresh labelled CSI windows with BLE-derived ground truth.
  5. Both models fine-tuned on the 15 min of fresh data — last N layers updated for PINN; new bagging round added for LGBM; learning rate 10× lower than Day 0.
  6. App returns to background mode. Model reload broadcast.

Environmental log

Daily check: furniture positions (photographed), door / window state, additional devices in room (laptops / monitors), temperature + humidity if available, any maintenance events.

Procedure

Phase A — Day 0 training

End-of-EXP-F1 logged data → Day-0 dataset. Train Model A + Model B. Freeze. Compute held-out test accuracy → Day-0 reference accuracy per model.

Phase B — Days 1–30 continuous deployment

  1. CSI + BLE continuous capture during working hours.
  2. BLE-derived ground-truth count computed every 1-s window.
  3. Frozen-model prediction computed every 1-s window.
  4. Trigger evaluator runs every 1 h.
  5. On trigger fire, calibration campaign as above. Log campaign metadata (timestamp, participants, duration, fresh data volume, fine-tune wall-clock, pre/post accuracy).
  6. Daily environmental log entry.

Phase C — Controlled perturbations (optional)

If natural environmental change is insufficient to drive measurable drift, inject perturbations:

  • Day 7: move one chair.
  • Day 14: rearrange furniture (swap table and chair positions).
  • Day 21: add a large object (whiteboard / monitor) near a TX-RX link.
  • Day 28: restore Day-0 layout.

Phase D — Analysis-time strategy ablation

After Phase B closes, replay the collected data through three counterfactual strategies offline:

  1. Strategy A (daily): simulate a fixed daily 10 min calibration window.
  2. Strategy B (weekly): simulate a fixed Monday 30 min calibration window.
  3. Strategy D (never): don't calibrate at all — equivalent to the frozen-model baseline.
  4. Compare against the actual trigger-based strategy (C, the deployment one).

Expected outputs

  • _attachments/exp-f2/csi/day_<NN>/ — per-day CSI parquet.
  • _attachments/exp-f2/ble/day_<NN>/ — per-day BLE log parquet.
  • _attachments/exp-f2/predictions/day_<NN>/<model>.parquet — frozen-model predictions per window.
  • _attachments/exp-f2/campaigns/<timestamp>/ — calibration campaign data + pre/post accuracy + fine-tune metadata.
  • _attachments/exp-f2/accuracy_timeline.csv — continuous accuracy with calibration markers.
  • _attachments/exp-f2/environment_log.csv — daily environmental state.
  • _attachments/exp-f2/strategy_replay.csv — counterfactual strategies (A/B/D) replayed offline.

Analysis plan

Primary metrics

  1. Degradation half-life per model — days until accuracy drops to 50 % of Day-0 performance (Strategy D / no-calibration arm).
  2. Sawtooth amplitude — per calibration event, (post-accuracy − pre-accuracy) / (Day-0 accuracy − pre-accuracy).
  3. Strategy comparison — trigger-based (C) vs daily (A) vs weekly (B) vs never (D): total calibration minutes vs achieved average accuracy.
  4. Environmental sensitivity — correlation between environmental-change count and pre-calibration accuracy drop.
  5. Mechanism transfer test (LGBM vs PINN) — does the PINN with $\lambda > 0$ require less calibration than the LGBM? (Connects to EXP-S1 Phase B: the mechanism is supposed to make the model less drift-sensitive.)

Key figures

  • Fig 1. The sawtooth — accuracy timeline over 30 days, one line per model, with calibration events marked. Thesis-signature.
  • Fig 2. Cost-vs-accuracy scatter — total calibration minutes (x) vs mean accuracy (y), one point per strategy.
  • Fig 3. Environmental-change vs accuracy-drop scatter.
  • Fig 4. PINN-vs-LGBM drift comparison — does the mechanism reduce drift rate?

Success criteria

  • 30 consecutive days of continuous data collection (weekends allowed as gaps).
  • Measurable Day-0 → Day-30 accuracy drop > 10 % on the never-calibrate arm (Strategy D).
  • Trigger-based calibration restores within-5 % of Day-0 accuracy after each fire.
  • Trigger-based calibration achieves comparable mean accuracy to daily-calibration (Strategy A) with < 50 % of the calibration minutes.
  • PINN-mechanism check: PINN's natural drift rate (Strategy D arm) ≤ LGBM's natural drift rate.
  • Sawtooth figure is publication-quality.

Risks and mitigations

  1. 30 days of continuous operation without device dropouts. Mitigation: EXP-P1 dress rehearsal must show zero dropouts over 4 h continuous; treat any field dropout > 1 h as a deployment failure, restart from the last clean day.
  2. Trigger evaluator is itself a model. Mitigation: the BLE-derived count is closed-form (count of unique active UUIDs), so the trigger threshold is deterministic; no risk of trigger-model drift on top of the experiment model drift.
  3. Catastrophic forgetting on fine-tune. Mitigation: 10× lower LR; 5–10 epochs; explicit pre/post accuracy logging gates the calibration.
  4. The mechanism check (PINN < LGBM drift) is the most-likely-to-not-replicate claim. Mitigation: that's the value of including it — if PINN doesn't reduce drift in the field even after EXP-S1 said it should in simulation, that's a finding, not a failure. The thesis can defend it either way.
  5. Phone-penetration variation skews the BLE-derived ground truth across days. Mitigation: log effective-vs-nominal penetration daily per Accurate occupancy estimation with WiFi and bluetooth/BLE packet capture ; report both on every accuracy plot.

Dependencies

  • EXP-F1 passed (the ground-truth chain is trusted).
  • 30+ days of room availability with stable power.
  • EXP-S1 Phase B closed (PINN $\lambda^*$ known, so Day-0 PINN training has a defensible λ).
  • Participant pool willing to leave the app running through the deployment.
  • billah2021_69a2 — BLE-occupancy F1 drops 92.2 → 70.3 % in 7 days. Sets the drift exists prior.
  • wang2026_2758 — cross-environment generalization taxonomy.
  • koo2026_a08d — "lightweight self-calibration routines" future direction.
  • chen2023_5cbd — domain-invariant feature extraction.
  • meneghello2023_0a93 — few-shot domain adaptation precedent.
  • EXP-S1 — provides the PINN $\lambda^*$.
  • EXP-F1 — provides the validated ground-truth chain.
  • EXP-F3 — extends the calibration story across rooms + penetration scenarios.

Notes

The sawtooth is the figure committee members ask to be shown first. Everything else in this experiment supports its defensibility.

Provenance

not recorded

Data types

  • csi-amplitude
  • csi-phase
  • ble-advertisement-log
  • environmental-log
  • model-accuracy-timeseries
  • calibration-campaign-log