Phase-Correlated Doppler Velocity Sensor
A custom 24GHz continuous-wave radar system for velocity tracking (speed and orientation) using STM32, Embassy Rust, and Digital Signal Processing.
Author: Banila Rares-Sebastian
GitHub Project Link: https://github.com/UPB-PMRust-Students/acs-project-2026-rares567
Description
The system detects and tracks the movement of walking targets (humans) in its field of view, determining both their speed and their spatial orientation (Angle of Arrival). It achieves this by emitting a 24GHz microwave signal and capturing the reflections using a dual-antenna receiver. The microvolt-level phase-shifted signals are filtered and amplified by a custom 4-channel analog front-end (~1000x gain) built to strict low-noise tolerances. An STM32 microcontroller samples these 4 channels simultaneously via a hardware-triggered ADC and DMA to preserve phase correlation. Finally, the MCU runs a Fast Fourier Transform (FFT) algorithm to calculate the velocity vectors and displays the target's speed and angle on a digital screen.
Motivation
I chose this project as it provides a challenging combination of analog electronics (through working on a protoboard and soldering components manually) and embedded programming (through working on a STM32 MCU for digital signal processing). This makes it a great learning experience and a wonderful and precise sensor with utility in any human-related tracking or statistics.
Architecture
Log
Week 7 - 13 April
Ordered components for the hardware from Sigmanortec and DigiKey.
Week 14 - 20 April
Started work on soldering components on the protoboard (op-amps, voltage regulator and adjacent passive components).
Week 21 - 27 April
Completed work on the first stage signal amplifier and successfully tested one channel.
Week 5 - 11 May
Week 12 - 18 May
Week 19 - 25 May
Hardware
The hardware features a custom Analog Front-End (AFE) bridging the 24GHz K-LC7 sensor and the STM32. Because the raw radar signals are in the microvolt range, the AFE utilizes LMV772 low-noise op-amps in a two-stage active amplifier configuration. By placing precision passives (1% resistors and C0G capacitors) in the negative feedback loops, the circuit forms an active low-pass filter. This actively suppresses high-frequency environmental noise while applying a massive 73 dB (~4,467x) voltage gain, boosting microscopic reflections to a readable 0–3.3V range. To guarantee signal integrity, an LT1763 ultra-low-noise LDO provides clean 3.3V power, driving a voltage divider that establishes a 1.65V virtual ground. This biases the op-amps so the AC radar waves can swing symmetrically without clipping above 3.3V and below GND.
Schematics

Bill of Materials
| Device | Usage | Price |
|---|---|---|
| Nucleo-U545-RE-Q | Microcontroller | Lab provided |
| RFbeam-K-LC7 | 24GHz dual-receiver radar sensor | 233.6 RON |
| 4x LMV772MA/NOPB | Low-noise operational amplifiers | 40.76 RON |
| LT1763CS8-3.3 | Low-noise LDO linear voltage regulator | 33.08 RON |
| Display OLED 0.96" I2C | I2C OLED screen for displaying output | 16.96 RON |
| Protoboard 7x9cm FR4 | Protoboard for creating the custom amplifier | 5.76 RON |
| 5x SOIC-8 to DIP-8 adapter | Adapter for converting SOIC-8 to protoboard-compatible DIP-8 | 4.95 RON |
| 8x MFR-25FTE52-1M | 1M OHM 1% resistors | 1.32 RON |
| 4x MFR-25FTF52-100R | 100 OHM 1% resistors | 0.66 RON |
| 4x MFR-25FRF52-10K | 10K OHM 1% resistors | 0.69 RON |
| 2x MFR-25FTE52-470K | 470K OHM 1% resistors | 0.33 RON |
| 5x C320C104J5R5TA7301 | 100nF X7R capacitors | 6.04 RON |
| 9x ECE-A1EN4R7U | 4.7uF 20% capacitors | 10.18 RON |
| 8x C317C101J1G5TA7301 | 100pF C0G capacitors | 8.84 RON |
| 4x MFR-25FRF52-22K | 22K OHM 1% resistors | 0.69 RON |
| 105BPS100M | 1uF 20% capacitor | 0.99 RON |
| C322C103J1R5TA7301 | 10nF X7R capacitor | 1.86 RON |
| ECE-A1VN100UB | 10uF 20% capacitor | 1.86 RON |
Software
WIP
| Library | Description | Usage |
|---|---|---|
| st7789 | Display driver for ST7789 | Used for the display for the Pico Explorer Base |
| embedded-graphics | 2D graphics library | Used for drawing to the display |