-
-
Notifications
You must be signed in to change notification settings - Fork 12
Hardware Setup
This page covers the practical "I have parts in front of me" wiring for v6.x. For mounting position (where to physically locate the radar in your room), see LD2450 Mounting Guide.
| Part | Why this one |
|---|---|
| ESP32-C3 SuperMini | The v6.x reference board. Single-core RISC-V @ 160 MHz, native USB-Serial-JTAG, ~$3. Plenty of headroom for v6.x's single-sensor pipeline. |
| HiLink LD2450 | 24 GHz mmWave radar with up to 3 simultaneous targets reporting (x, y, speed). Required for v6.x — see FAQ. |
| WS2812 / SK6812 LED strip | 5 V data-driven RGB LEDs. 30 LEDs/m for ambient lighting, 60 LEDs/m for crisper position tracking. Length to taste. |
| 5 V DC PSU for the LED strip | Sized at 60 mA × N at full white. A 5 V / 5 A PSU comfortably runs ~80 LEDs at full brightness. Never power the strip from the C3's 5 V pin. |
| Wires | 22 AWG silicone for power injection, 28 AWG for radar/data signals. JST connectors for the LED strip. |
| (Optional) Pushbutton | Momentary, normally-open. The C3 SuperMini's onboard BOOT button works too. |
This matches the C3 SuperMini board profile shipped in the firmware. Pin defaults match out of the box — flash the C3 binary, wire to spec, no NVS pin override needed.
flowchart LR
PSU[5V PSU] -->|+5V| C3[ESP32-C3]
PSU -->|+5V/GND| Strip[WS2812 strip]
C3 -->|GPIO 10 DIN| Strip
C3 <-->|UART 256k| Radar[LD2450]
C3 -->|3.3V| Radar
All modules share a common ground.
| Function | C3 GPIO | Note |
|---|---|---|
| LED data (DIN) | GPIO 10 | WS2812 / NeoPixel data line |
| Radar RX (MCU) | GPIO 20 | from LD2450's TX |
| Radar TX (MCU) | GPIO 21 | to LD2450's RX |
| Reset / mode | GPIO 4 | momentary button to GND (optional) |
| Status LED | GPIO 8 | onboard, active-low on most clones |
| 5 V power | 5V pin | for radar VCC (breadboard); see PCB rec |
| Ground | GND | radar + LED logic ground (common) |
If you remap pins from the web UI later, the unsafe-pin guard refuses strapping / USB-JTAG / flash GPIOs (9, 11–19 on C3) so you can't accidentally brick boot.
Power chain
-----------
PSU +5V → WS2812 strip +5V
PSU +5V → C3 5V pin
PSU GND → WS2812 strip GND
PSU GND → C3 GND
PSU GND → LD2450 GND (common ground for the radar)
Signal — radar (UART)
---------------------
C3 GPIO 20 ← LD2450 TX (radar's TX → MCU's RX)
C3 GPIO 21 → LD2450 RX (MCU's TX → radar's RX)
C3 3V3 pin → LD2450 VCC (~80 mA continuous)
Signal — LED strip (single-line WS2812)
---------------------------------------
C3 GPIO 10 → WS2812 DIN
For strips > ~50 LEDs:
PSU +5V/GND → Inject power at the FAR end of the strip
(prevents voltage droop and rainbow desaturation
on long runs)
USB power is fine for bench testing. For deployed installs, run the C3 from a regulated 5 V source. The LD2450 draws ~80 mA continuous on its 3.3 V logic side — the C3 SuperMini's onboard LDO (typically AMS1117 or similar) can deliver this for breadboard work but tends to run warm under sustained radar transmit bursts.
Always on its own PSU. Sized for the strip's worst-case current:
- 60 mA per LED at full white (worst case)
- For 100 LEDs: 6 A
- For 30 LEDs: 1.8 A
Inject power on both ends for runs above ~50 LEDs. Voltage droop along a long 5 V strip causes the far end to render rainbows tinted blue/green (red LEDs need the most current and brown out first).
Common ground: tie the LED PSU's GND to the C3's GND so the WS2812 data signal references correctly. Without it, the data line floats and you get random pixel corruption.
When you move from breadboard to PCB, do not feed the LD2450 from the C3's onboard 3V3 pin. Use a discrete LDO sized for the combined load:
| Part | Spec | Why |
|---|---|---|
| AP2112K-3.3 | 600 mA, fixed 3.3 V, SOT-23-5, ~$0.10 | Standard cheap pick; handles C3 + LD2450 with margin. |
| MIC5219-3.3 | 500 mA, fixed 3.3 V, SOT-23-5, ~$0.20 | Lower dropout if you ever feed from a near-flat lithium cell. |
flowchart LR
PSU[5V PSU 5A] -->|+5V| C3[ESP32-C3 5V pin]
PSU -->|+5V/GND| LED[WS2812 strip]
C3 -->|onboard LDO 3V3| Radar[LD2450 VCC]
flowchart LR
PSU[5V PSU 5A] --> LDO[AP2112K-3.3 LDO]
PSU -->|+5V| LED[WS2812 strip via star-ground]
LDO -->|3.3V| C3[ESP32-C3]
LDO -->|3.3V| Radar[LD2450 VCC]
All modules share a common ground. Star-ground the LED strip's GND return directly to the PSU, not through the PCB ground plane — strip current can otherwise inject noise into the radar's reference.
- 10 µF ceramic + 0.1 µF on the LDO input.
- 10 µF ceramic + 0.1 µF on the LDO output, placed close to both the C3's 3V3 pin and the LD2450's VCC pin (one cap each is fine).
- 10 µF + 0.1 µF on the LD2450's VCC right at its pin.
LD2450 UART is 3.3 V logic. ESP32-C3 GPIO is 3.3 V logic. Direct connect — no level shifter needed. If you're crossing to a 5 V MCU (don't), you'd need a logic-level translator.
Onboard LED on GPIO 8 (active-low on most C3 SuperMini clones). Pattern meanings:
| Pattern | Meaning |
|---|---|
| Solid on | Booting (transitions to AP_MODE within ~2 s) |
| Slow blink (1 Hz) | AP mode — waiting for Wi-Fi config, AmbiSense-XXXX SSID is up |
| Heartbeat (2 short + pause) | Connected to home Wi-Fi |
| Fast blink (5 Hz) | OTA in progress |
| Long-short-long | Recoverable error |
| SOS pattern | Panic (about to reset) |
If the LED stays solid past the first ~2 s of boot, app_main crashed before reaching set_pattern(AP_MODE). Check the serial log over USB-Serial-JTAG.
The firmware also builds for ESP32-S3-Zero, classic ESP32 (WROOM-32), and ESP32-C6, but only C3 is the v6.x kit PCB target. If you want to use one of the others, see the board profiles in firmware/components/board/board.c for default pinmaps. You can pick the board profile from the Hardware tab in the web UI without reflashing.
- LD2450 Mounting Guide — where to physically locate the sensor for L/U coverage
- Troubleshooting — the BOOT-mode dance and other recovery steps
-
docs/HARDWARE.md— the developer-facing version with extended troubleshooting
Get started
Use it
Help
Upgrading
Reference