Skip to content

Web UI Tour

Ravi Singh edited this page May 7, 2026 · 1 revision

Web UI Tour

The v6.x web UI has 6 screens. This page walks each one with what every control does and when you'd touch it.

Open the UI by browsing to http://<hostname>.local/ (default ambisense-XXXX.local) once the device is on home Wi-Fi, or http://192.168.4.1/ while it's hosting AP mode.

The chrome

  • Sidebar (desktop) / bottom tab bar (mobile) — switches between the 6 screens.
  • Sticky header — page title + hostname + live distance chip + Wi-Fi RSSI + theme toggle.
  • Live distance chip in the header updates at 20 Hz so you can see what the device is sensing without leaving the current tab.
  • Theme toggle — dark (default) / light. Saved to localStorage.

1. Live tab

The dashboard. What you see most of the time.

System active toggle

Top-of-page card. Mute/unmute LED output without rebooting. The radar keeps reading; only the strip goes dark when muted. Useful if you're tuning settings and don't want a flashing strip.

Distance card

  • Distance — current smoothed distance in cm, big mono number.
  • Sparkline — last 16 s of distance values.
  • In-window chip — green if the current distance is inside [min, max], grey if outside. Tells you at a glance whether the strip is currently rendering active or background.
  • Min / Max chips — current distance window values; tap them to jump to the LEDs tab where you edit them.
  • Direction chip — "still" / "closer →" / "away →".
  • The two dashed horizontal lines on the sparkline mark min and max so you can see at a glance how often you're inside the window.

Live LED preview

A real-time visualisation of what the physical strip is rendering, at the current distance, color, mode, and brightness. Updates 20 Hz. Useful to confirm that what's on screen matches what's on the wall.

Stat tiles

  • Free heap — how much RAM is free. Drops over hours from ~60 KB to ~50 KB indicate slow leaks (file an issue with the heap-over-time graph from the Hardware tab).
  • RSSI — Wi-Fi signal strength. Above −65 dBm = excellent; below −75 = weak.
  • Uptime — since last reboot.
  • Cycle — radar→LED loop time in ms (informational).

Device card

  • Hostname, IP, mDNS name, RSSI, free heap, uptime, firmware version, board profile.
  • Useful when you have multiple devices and want to confirm which one you're looking at.

2. LEDs tab

Everything that controls how the strip looks.

Distance window

  • Min cm / Max cm — the distance range at which the strip lights up actively. Below min or above max → background.
  • Use the dual-handle slider for quick visual tuning.
  • Typical hallway settings: min=30, max=300 (3 metres).

Light mode

Picker with 11 modes. Each has a description tooltip and the Live preview reflects the choice instantly. See LED Modes for what each one does.

Color

Color wheel + hex input. For modes that use a single color (Solid / Comet / Pulse / Ember / Marquee / Scan / Particles).

Brightness

0–255. WS2812s are very bright; most installs are happy with 80–150.

Span

LED count of the active cluster around the target — i.e. how wide the moving spotlight is. Default 30; increase for a softer wash, decrease for a sharper point.

Center shift

−50…+50. Offsets the cluster from the actual target position. Useful if your sensor is mounted asymmetrically and you want the bright spot to feel "ahead" of you.

Trail

Length of the fading tail behind the moving spot.

Direction light

Tints the cluster slightly in the direction you're moving. Subtle but adds a "motion" cue.

Background mode

  • Off — non-active LEDs go dark.
  • Dim — non-active LEDs render a low-brightness version of the active color.
  • Color cycle — non-active LEDs slowly rotate through hues.

Effect speed / intensity

For dynamic modes (Rainbow, Wave, Breathe, Comet, Pulse, Ember, Marquee, Scan, Particles). Speed is animation rate; intensity is amplitude (e.g. how much the breathe pulses).

Tip: sliders use a 300 ms debounced save. Drag freely; the firmware only commits when you stop. This prevents the C3's HTTP server from saturating under slider drag.

3. Motion tab

Fine-tune the smoothing between raw radar and what the LEDs render.

Mode selector

  • Kalman (recommended) — uses 3 simple knobs. The default in v6.x.
  • PI (legacy v5) — 5-knob PI smoother carried over for users who tuned it on v5.

Kalman mode knobs

  • Response — 0–100. Higher = LEDs follow you faster but noisier; lower = smoother but laggier. Sweet spot: 50–70 for most installs.
  • Look-ahead (ms) — predict where you'll be N ms from now. Compensates for the 50 ms or so the system takes to render. Default 100; raise to 200 if the lights feel "behind you".
  • Outlier rejection — 0–100. How aggressively to reject single-frame distance jumps as noise. Higher rejects more (LD2450 occasionally hallucinates a target at 0 cm or beyond range; outlier rejection eats those). Sweet spot: 70.

PI mode knobs (advanced)

  • Position smoothing × 1/1000 — alpha for the position EMA. Higher = more lag, less noise.
  • Velocity smoothing × 1/1000 — alpha for the velocity EMA.
  • Prediction factor × 1/1000 — how much velocity contributes to the predicted position.
  • P gain × 1/1000 — proportional response to position error.
  • I gain × 1/1000 — integral correction for steady-state drift.

In Kalman mode the Response slider replaces the P/I gains; in PI mode the Response slider does nothing.

Live raw vs smoothed chart

Two-line chart showing the raw radar reading vs the smoothed/predicted output. Watch this while you tune — if the smoothed line lags the raw by a visible amount, raise Look-ahead or Response. If it's noisy, raise Outlier rejection or lower Response.

Distance window (motion-side)

Min / max cm distance the smoother considers "in-range". Outside this, motion stops updating and the smoother holds the last in-range value. Mostly leave at 0–600 (full LD2450 range).

4. Hardware tab

Board profile, sensor selection, pin map, diagnostics.

Board profile

Dropdown of the 4 supported board profiles:

  • esp32c3-supermini (validated, the v6.x kit target)
  • esp32-devkit (classic WROOM-32)
  • esp32s3-zero
  • esp32c6-devkit

Changing this rewrites the pin map to that profile's defaults and triggers a reboot. Use it if you swap MCU boards.

Pin map

Editable. Every pin has a current value and a "default" indicator if it's still on the profile default. Click to edit.

The unsafe-pin guard refuses any pin in the board's unsafe_pin_mask (strapping pins, USB-Serial-JTAG D-/D+, internal SPI flash). For the C3 SuperMini that's GPIOs 9, 11–19. Trying to set one shows an error toast.

Radar kind

Dropdown: ld2450 or sim. The sim driver emits a synthetic distance trace useful for desk testing without a radar wired up. Switch to sim, save, reboot, and you'll see a slow sine wave on the Live tab. Switch back to ld2450 for production.

Radar diagnostic

  • Driver id — confirms what driver is running.
  • Total bytes RX — bytes read from UART since boot. Increments steadily if the radar is talking.
  • Total frames parsed — successful parses. Should track bytes RX (LD2450 frames are ~30 bytes; ratio ~30 bytes/frame).
  • Last frame age — ms since the last successful parse. Should stay under 200; if it climbs past 1000, the radar stopped talking.
  • Last raw bytes — hex dump of the last 64 bytes received. Useful for distinguishing "radar dead" (no bytes) from "wrong driver" (bytes flowing but won't parse).

Save & reboot

Most Hardware tab changes require a reboot. The button gates that.

5. Network tab

Wi-Fi configuration.

Wi-Fi state card

Shows current SSID + IP + RSSI + AP-mode SSID (always-on AmbiSense-XXXX).

SSID picker

  • Scan — lists nearby SSIDs sorted by RSSI.
  • Manual — type a hidden SSID directly.

Password

Standard password field. Save → device tries to connect; you'll see the SSID name + IP + RSSI populate within 5 s if successful.

Hostname

mDNS name. Default ambisense-XXXX (X = last 4 chars of MAC). Change to whatever; saved to wifi.host.

Static IP (optional)

For installs where DHCP isn't reliable.

6. System tab

Admin password, OTA, factory reset, system info.

Admin password

Click Set password → modal asks for the password twice → PBKDF2-SHA256 hash + salt saved to NVS. From that point, any POST to a config endpoint requires a logged-in session (the device returns a cookie). Until you set a password, anyone on your home Wi-Fi can change settings, so the UI banners until you do.

OTA upload

Drag-drop a .bin file (or click to browse). Progress bar; on completion the device reboots. The bootloader rollback path is armed — if the new firmware fails to boot, the device falls back to the previous slot on next power cycle.

See OTA and Updates for the full update flow.

System control

  • Reboot — soft reboot.
  • Factory reset — wipes NVS. Requires you to type the device hostname to confirm.

About

Firmware version + git SHA + IDF version + target SoC + uptime + free heap.

What's gone from v6.0

  • Mesh tab — removed in v6.x. Single-sensor architecture has no peers to manage. See Migration from v6.0.
  • Pairing window / Pair button — removed.
  • Topology editor — removed (segment ranges, fusion priority modes).

Tips

  • Multiple devices: open the web UI on each in separate browser tabs. Each device is independent; there's no cross-device coordination in v6.x.
  • Mobile bottom-tab navigation: same screens as desktop. The Live distance chip moves to the header; the sidebar is hidden.
  • Sliders feel jumpy? They're not — every slider commits via debounced save (300 ms after you stop dragging). The visual feedback during drag is local-only.
  • Dropped Wi-Fi? The device falls back to AP mode if it can't reconnect for 30 s. Look for the AmbiSense-XXXX SSID and rejoin Wi-Fi from there.

Clone this wiki locally