The field-deployable effect node. ESP32-S3 Wi-Fi with a single frozen HTTP API on port 80. Four variants — audio, video, GPIO, mixed — covering every effect a themed venue can throw at it.
Every Polaris is the same ESP32-S3 module running the same NorthLink firmware. The only difference between variants is which outputs are populated on the daughterboard. That sameness means one spare unit on the shelf can replace any failure on-site.
Stereo audio playback. Pre-stored audio files trigger by channel. Music beds, dialogue, stingers, and ambient loops.
Dual HDMI video playback. Frame-accurate. Pepper's ghosts, projection mapping plates, queue-line video walls.
Ten mechanical relays. Lights, pneumatics, foggers, motors — anything with a contact closure. The workhorse of the lineup.
Per-channel-configurable audio, video, or GPIO. One node for kitchens, finales, and any zone that mixes effect types.
Polaris exposes one tiny HTTP API and we promise never to change it. A show authored against NorthLink 1.0.0 will run against NorthLink 9.9.9 unchanged. Forever.
GET /trigger?ch=N on port 80. That's the entire production contract. New capabilities arrive as new endpoints, never breaking changes.
From HelmOS HTTP call to first electron through a relay: typical 20–50 ms. Worst case under load: under 200 ms.
Each channel has a per-effect cooldown. Misclicked sequences can't damage hardware — Polaris returns 429 and refuses to retrigger inside the window.
If TrueNorth is unreachable for 60 seconds, Polaris broadcasts its own SSID. Connect a phone, reconfigure, reboot.
Flash new firmware via Compose over the network. 30-second flash window. Always backed up by USB-C recovery.
Hot-swap in 10 minutes. Power off, swap, re-reserve DHCP, fire-test channels. No show file changes. No HelmOS restart.
| MCU | ESP32-S3 (dual-core 240 MHz, 8 MB PSRAM, 16 MB flash) |
|---|---|
| Wi-Fi | 802.11 b/g/n, 2.4 GHz only |
| Boot time | ~3 seconds power-on to ready |
| Power | 5 V DC, USB-C or screw terminal (1 A typical, 2.5 A peak) |
| Storage | 16 MB onboard flash for media (A / V variants) |
| Network IP | DHCP from TrueNorth, pinned by MAC |
| HTTP port | 80 (HTTP only — no TLS on the air-gapped network) |
| Operating temp | 0 °C to 50 °C |
| Indicator LEDs | Power (green), Wi-Fi (blue), Activity (amber) |
| Dimensions | 120 × 80 × 35 mm |
Polaris does one thing: it fires effects when HelmOS tells it to. That contract is so small it fits on a sticky note — and so stable we've never had to change it.
This is by design. The frozen API is what lets us ship hardware that will outlast its show. The Polaris in your venue today will run a show authored in 2031 without a firmware update.
GET /trigger?ch=NGET /trigger?ch=allGET /trigger?ch=N&off=1GET /statusGET /info$ curl http://10.0.0.11/trigger?ch=3 { "ok": true, "ch": 3, "mode": "pulse", "durationMs": 200 } $ curl http://10.0.0.11/info { "device": "POLARIS-A1B2C3", "model": "POLARIS-G", "firmware": "northlink-1.0.0", "channels": 10, "uptime": 14283, "wifi": { "ssid": "TRUENORTH", "rssi": -52 } }
Most haunted attractions ship with a mix of G nodes for relays plus one or two A nodes for audio. Talk to us and we'll model your room map against the variants.