Live status · Read the latest
monad-knowledge Wi-Fi sensing lab · FIIT STU
running ble-anchor-placement simulation simulation

BLE anchor placement — does topology-informed placement recover graded count?

In plain words

If Bluetooth anchors are concentrated in the room everyone passes through, can they count people rather than only notice them?

dispersed: one per room hub: concentrated where people pass same room, same people, two placements
Where to put the Bluetooth anchors: one per room, or concentrated in the hub room everyone passes through. The design asks whether the hub placement recovers a count that grows with people, where the dispersed one only tells empty from occupied. Schematic of the design, not a measurement.
Why it matters
An earlier study found a Bluetooth anchor tells empty from occupied but flattens out after the first person. That study spread one anchor per room; maybe placement was the problem.
How it is done
Simulate the same crowd twice, once with dispersed anchors and once concentrated in the hub room, and compare how steadily the signal changes with each added person.
Where it stands
The eight-seed comparison did not reproduce the pilot-sized hub benefit: paired slope difference −0.126 dB/person, 95% interval [−0.412, +0.113]. This does not prove both placements equivalent.

Asks, formallyConcentrating BLE/CSI anchors on the high-betweenness hub room (topology-informed) recovers the graded occupancy slope that dispersed one-per-room anchors lose. Powered test: the per-placement Spearman ρ(N, baseline-normalised feature) is higher for the hub placement with a CI that excludes the dispersed-placement value. The pilot suggested this; the powered redo (n=8) must confirm or REFUTE it — a powered negative for the pilot-sized effect is a real result, not proof of zero.

FoundThe eight-seed comparison did not reproduce the pilot-sized hub benefit: paired slope difference −0.126 dB/person, 95% interval [−0.412, +0.113].

StandingCollecting data now · last activity 2026-07-06

Room`resplan-12439-floor-0` with the topology-informed 5-Rx layout (`csi-link-resplan-12439-topo-anchors`) vs the dispersed multiroom layout; ble.enabled scalar floor.

The room

resplan-12439 · resplan-12439-floor-0 · 52 devices

The floor this experiment runs on — its rooms, walls, furniture and the highlighted sensors placed for it. This is the surveyed layout as last exported; a run's replay below shows the geometry as it was simulated.

BLE anchor placement: does topology-informed placement recover graded count?

Current assessment (2026-09-15)

The eight-seed comparison did not reproduce the pilot-sized hub benefit: paired slope difference −0.126 dB/person, 95% interval [−0.412, +0.113]. This does not prove both placements equivalent.

The powered follow-up supersedes the three-seed pilot. Its interval includes zero and excludes the pilot-sized difference; it neither establishes a smaller benefit nor proves zero effect. Presence-versus-graded-count conclusions are conditional on the simulated scene and observation model.

Next evidence needed: Carry placement as a nuisance factor in independent headcount validation. Do not describe the hub arrangement as an established cure for BLE saturation.

Basis: Thesis Narrative, the September 10 synthesis, and the September 15 register review. See the review record for evidence sources and outstanding checks.

Earlier protocol and dated results

The methods and observations below retain their original scope. Read their readiness statements and proposed next steps as historical. The current assessment above records what has changed; frozen thresholds have not been retrospectively revised.

The problem, in plain words

Imagine a doorway with a light beam across it. One person breaks the beam and it goes dark; a second and third person behind them do not make it "more dark." The beam is a presence detector, not a counter. A single Bluetooth link behaves the same way: the first body between transmitter and receiver drops the received signal strength (RSSI) a lot, but each additional body adds less and less — the link saturates. That is why a BLE anchor is great at "is anyone here?" and poor at "how many?" (demrozi2021 ↗).

There is a plausible escape hatch. If you place several anchors where people cluster and transit — a busy corridor everyone walks through — then successive bodies keep blocking different short links, and the aggregate signal across all links might keep sliding down instead of flattening. Deciding which room that is, is a placement question, and placement provably changes how much a radio sensor network can see (zhen2022 ↗; afghantoloee2021 ↗). Our floor's rooms form a hub-and-spoke graph: one 135 m² corridor connects to every other room and has by far the highest betweenness (a graph measure of how many paths run through it). The bet was: concentrate anchors on that hub, and grading returns.

What we are trying to prove

  • Hypothesis (falsifiable): concentrating BLE anchors on the high-betweenness hub room (plus the largest occupant room) produces a steeper, monotone occupancy→RSSI slope than dispersing them one-per-room — steep enough that the per-placement slope difference has a confidence interval excluding zero and exceeding a practically meaningful 0.30 dB/person. If the interval includes zero, the placement does not buy graded count and the hypothesis fails.
  • What a null means: if hub placement does not beat dispersed placement at power, the saturation is intrinsic to single-transmitter narrowband blockage at this density — it is a property of the physics, not a fixable artefact of where you mounted the anchors. Then BLE's honest job stays "presence," the graded count must come from the CSI feature or multiple transmitters, and the IP-106 hardware plan should not budget for graded BLE counting off placement alone.
  • Discipline carried throughout: the BLE event-noise is a self-authored Gaussian, so any accuracy headline against it is circular. The only honest deliverable is a placement comparison of the graded slope, and the real defeater lives in hardware.

How the experiment works (plain method)

  1. Two anchor layouts on the same floor. Take resplan-12439-floor-0 and build two 5-receiver arrangements: the dispersed baseline (one anchor per peripheral room) and the topology-informed layout (3 anchors on the high-betweenness living-0 corridor hub + 2 in the large 47 m² bedroom-1). Everything else — transmitter, materials, occupancy sweep — is held identical.
  2. Sweep occupancy. Simulate N ∈ {0, 2, 4, 6, 8, 12} people, ray-traced through the scene, with a co-registered BLE link solved from the same geometry so CSI and BLE see the same bodies.
  3. Measure the slope. For each seed, baseline-normalise each link's RSSI against the empty room, then fit the slope of aggregate ΔRSSI vs occupied N (dB per person). The unit of replication is the seed — the random crowd placement — not the thousands of pooled frame×link events (pooling those would fake a huge sample size).
  4. Two rounds. A pilot at n=3 seeds (18 runs), then — because n=3 cannot exclude a null — a powered re-run at n=8 seeds (96 runs) with a pre-registered seed-block bootstrap CI, an exact paired sign test, and a Benjamini–Hochberg correction over the 20-cell within-occupied count grid.

What we've found so far (honest, across two rounds)

The two rounds disagree, and the powered one wins. That reversal is the result.

Quantity Pilot (n=3, c-ble-anchor-placement) Powered (n=8, c-ble-graded-count-powered)
Topology slope (dB/person) −0.48 (monotone) mean −0.353 (8/8 seeds negative)
Dispersed slope (dB/person) +0.08 (flat — "saturates") mean −0.227 (7/8 negative — does not saturate)
Paired (topology − dispersed) diff −0.56 (descriptive) −0.126, 95% CI [−0.412, +0.113], p=0.461, d=−0.32
Fine graded grid (ΔN=2) topology d=0.31 (unresolved) 0/20 cells survive BH-FDR; ΔN=2 topology 0/3
Verdict PARTIAL RECOVERY REFUTED at power
  • The pilot's mechanism story was itself wrong. The pilot claimed dispersed placement saturates flat (+0.08 dB/person) while topology alone is monotone. At n=8, both placements carry a negative occupancy response — dispersed does not saturate; it is just seed-noisy. The pilot's n=3 happened to catch a favourable dispersed subset.
  • The between-placement gap is within seed noise. The eight per-seed differences straddle zero: −0.92, −0.39, −0.18, −0.15, −0.02, +0.08, +0.24, +0.33. The pilot's −0.498 lies below the powered CI's lower bound (−0.412) — it is CI-excluded, not merely unconfirmed.
  • What survives is narrow and honest. Hub placement gives a more consistently negative fitted slope (8/8 seeds vs 7/8), a descriptive response-consistency observation — not a confirmed graded count. The observed effect (~0.13 dB/person) is genuinely small: it would need ~75 seeds to resolve and is below the 0.30 dB/person practical threshold regardless.
  • This is a powered negative for the pilot-sized effect, not proof the true difference is zero — the CI still admits differences out to −0.412 dB/person. What it does rule out is the claim the pilot shipped.

How to read the figures

  • fig_csi_ble_anchor_placement (pilot session, registered) — a two-panel comparison: left, aggregate baseline-normalised ΔRSSI vs N for dispersed (flat/bouncing) vs topology (sliding down); right, the resolvable-ΔN effect-size view. Read this as the pilot's story — and read it knowing the powered round overturned it. n=3, so it shows a favourable draw, not a stable effect.
  • seed_trace, paired_diff, perm_null (powered session) — the honest trio: every seed's RSSI-vs-N trace per layout (seed_trace), the per-seed (dispersed − hub) slope-difference dots with the CI on the difference straddling zero (paired_diff), and the paired-permutation null with the tiny observed statistic marked inside the bulk (perm_null). Provenance caveat: these three are described in the powered session's synthesis and live under its artefacts/ prefix, but the session's machine-readable figures[] manifest is empty — a registration gap the artifact audit should close before the figures are cited elsewhere.

Key references

  • demrozi2021 ↗ — BLE occupancy/counting, the second modality's real-world basis and the saturation intuition.
  • longo2019_b72f ↗ — WiFi+BLE occupancy estimation; grounds presence-level capability.
  • rampa2022 ↗ — multi-body RF shadowing physics; why link attenuation is sub-additive.
  • zhen2022 ↗ — adaptive beacon placement gains, the topology-placement premise.
  • afghantoloee2021 ↗ — indoor sensor-deployment optimization; placement changes what the network sees.
  • farsi2023 — coverage/connectivity framing for the OR voice.
  • chen2018_97e0 ↗ — deployment context for presence-level occupancy in buildings.
  • koksal2025_426c ↗ — real BLE-beacon occupancy deployment.
  • peck2008 — the pooling-vs-replication and power basis for the statistician's audit.
  • zhang2026_ccac ↗, guarino2026 ↗ — reproducibility bar the SWE voice invokes.
  • huang2025_060d ↗ — a public real-CSI anchor for the red-team's cross-check demand.
  • zhang2024_1d32 ↗, simoni2023 ↗ — privacy-preserving occupancy for the responsible-sensing voice.
Campaigns & sessions 2 campaigns instantiating this experiment
Campaign Session State Runs Started Report
c-ble-anchor-placement KYPPCW5A finished 18 2026-06-25 synthesis →
c-ble-graded-count-powered 7J8TJQP6 finished 96 2026-07-06 synthesis →
Simulation runs the 20 most recent, newest first
Run Date Gate Campaign Replay
GPQSBVZQ 2026-07-07 ✓ c-ble-graded-count-powered —
EC376ZTW 2026-07-07 ✓ c-ble-graded-count-powered —
3G05N18M 2026-07-07 ✓ c-ble-graded-count-powered —
DB70QCV3 2026-07-07 ✓ c-ble-graded-count-powered —
BQJV95NC 2026-07-07 ✓ c-ble-graded-count-powered —
NYPQAW3Y 2026-07-07 ✓ c-ble-graded-count-powered —
DSQ8B36S 2026-07-07 ✓ c-ble-graded-count-powered —
NT8D00DV 2026-07-07 ✓ c-ble-graded-count-powered —
9R8F2V8T 2026-07-07 ✓ c-ble-graded-count-powered —
GT9AMSCC 2026-07-07 ✓ c-ble-graded-count-powered —
TR9M9YK1 2026-07-07 ✓ c-ble-graded-count-powered —
ZB8J21YR 2026-07-07 ✓ c-ble-graded-count-powered —
E69RYZMK 2026-07-07 ✓ c-ble-graded-count-powered —
S3GYYG12 2026-07-07 ✓ c-ble-graded-count-powered —
KKTK9APH 2026-07-07 ✓ c-ble-graded-count-powered —
TP3DBBDQ 2026-07-07 ✓ c-ble-graded-count-powered —
SNAWYD88 2026-07-07 ✓ c-ble-graded-count-powered —
KNRETJ7V 2026-07-07 ✓ c-ble-graded-count-powered —
R954F1MX 2026-07-07 ✓ c-ble-graded-count-powered —
TPB6JZHA 2026-07-07 ✓ c-ble-graded-count-powered —

All exp-csi-static runs in the workbench →

Provenance

Data origin
simulated
Domain
csi
Room layout
csi-link-resplan-12439-topo-anchors

Data types

  • csi-amplitude
  • ble-rssi
  • per-link-summary