RaceOS
RaceOS live event experience

Sentinel Devices

Sensing along the course, between the timing mats — environmental conditions, crowd density, and (on the newer tier) a real safety-beacon dwell-time watchdog. Two hardware tiers, one shared backend pipeline.

Sentinel Pole (ESP32 tier)

Mains-powered, battery fallback

Environmental + crowd-density sensor pole — mains-powered, with a battery fallback

An ESP32 board wired to a climate sensor and microphone inside a sealed enclosure, reporting temperature/humidity and an anonymized crowd-noise/Wi-Fi-presence reading over Wi-Fi. Runs mains-powered by default, with a Li-ion battery-mode variant for poles where mains isn't available.

BME280 + mic(I2C + ADC)ESP32 board Li-ion pack(battery mode only) GPIO34 (ADC) Mosquitto Brokerwired inside poleWi-Fi / TLS :8883
Everything shown here lives inside one sealed pole enclosure — nothing is exposed except the pole's outer casing.

Sentinel Node (Raspberry Pi tier)

Additive — not a replacement for the ESP32 tier

A Raspberry Pi-class device that does everything the Sentinel Pole does, plus two more capabilities: it can act as an informational timed-bib observation point (denser position data for the digital twin, without ever being mistaken for an official finish line), and it runs a BLE dwell-time safety watchdog against opt-in, physically-issued safety beacons — never a runner's always-worn timing tag, which would have no consent step.

What the safety beacon actually does

A runner can opt in to carry a small BLE beacon. If a Sentinel Node detects that beacon staying in one place for an unusually long time, it raises a real incident automatically — the same dispatch pipeline that already notifies volunteers and emergency contacts for any other reported incident. The beacon's identity never enters the platform's anonymous crowd-counting data — the two are kept completely separate by design.