Skip to content

Hardware Setup

Ravi Singh edited this page May 7, 2026 · 2 revisions

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.

Bill of materials

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.

Reference wiring (C3 SuperMini)

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.

Bird's-eye

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
Loading

All modules share a common ground.

Pin map (C3 SuperMini)

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.

Wire-by-wire (breadboard prototype)

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)

Power supply

Logic side (C3 + radar)

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.

LED strip

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.

PCB rev recommendation (for the upcoming kit board)

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.

Bench pre-PCB power chain

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]
Loading

Recommended PCB power chain

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]
Loading

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.

Decoupling

  • 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.

Sensor logic levels

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.

Status LED

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.

Beyond the C3

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.

See also

Clone this wiki locally