-
-
Notifications
You must be signed in to change notification settings - Fork 12
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/(defaultambisense-XXXX.local) once the device is on home Wi-Fi, orhttp://192.168.4.1/while it's hosting AP mode.
- 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.
The dashboard. What you see most of the time.
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 — 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.
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.
- 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).
- 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.
Everything that controls how the strip looks.
- 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).
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 wheel + hex input. For modes that use a single color (Solid / Comet / Pulse / Ember / Marquee / Scan / Particles).
0–255. WS2812s are very bright; most installs are happy with 80–150.
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.
−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.
Length of the fading tail behind the moving spot.
Tints the cluster slightly in the direction you're moving. Subtle but adds a "motion" cue.
- 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.
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.
Fine-tune the smoothing between raw radar and what the LEDs render.
- 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.
- 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.
- 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.
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.
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).
Board profile, sensor selection, pin map, diagnostics.
Dropdown of the 4 supported board profiles:
-
esp32c3-supermini(validated, the v6.x kit target) -
esp32-devkit(classic WROOM-32) esp32s3-zeroesp32c6-devkit
Changing this rewrites the pin map to that profile's defaults and triggers a reboot. Use it if you swap MCU boards.
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.
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.
- 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).
Most Hardware tab changes require a reboot. The button gates that.
Wi-Fi configuration.
Shows current SSID + IP + RSSI + AP-mode SSID (always-on AmbiSense-XXXX).
- Scan — lists nearby SSIDs sorted by RSSI.
- Manual — type a hidden SSID directly.
Standard password field. Save → device tries to connect; you'll see the SSID name + IP + RSSI populate within 5 s if successful.
mDNS name. Default ambisense-XXXX (X = last 4 chars of MAC). Change to whatever; saved to wifi.host.
For installs where DHCP isn't reliable.
Admin password, OTA, factory reset, system info.
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.
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.
- Reboot — soft reboot.
- Factory reset — wipes NVS. Requires you to type the device hostname to confirm.
Firmware version + git SHA + IDF version + target SoC + uptime + free heap.
- 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).
- 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-XXXXSSID and rejoin Wi-Fi from there.
Get started
Use it
Help
Upgrading
Reference