I built a mmWave material classification radar
Engineering a mmWave Radar for Material Classification
Building a hardware startup is easy incredibly grueling. I spent half a year diving deep into the trenches of RF and embedded systems to create a radar capable of identifying materials. This project began as my "end of studies" thesis, though it evolved into something more. Unfortunately, due to a lack of funding, the venture remains in a state of limbo.
The Problem: The Asbestos Trap
In Europe, asbestos is a pervasive architectural nightmare. It's hidden in walls, and the only way to know if you're breathing poison is to hire specialists.
The current industry standard is destructive: you cut a sample out of your wall, send it to a laboratory, and wait for a result. Because of heavy regulation and the "fear factor," the pricing is predatory.
| Analysis Stage | Actual Cost | End-User Price |
|---|---|---|
| Lab Analysis | \approx \1$ | \approx \60$ |
| Multiple Samples | Linear increase | Exponentially expensive |
The Goal: Create a non-destructive radar that detects asbestos in situ.
🛠️ The Hardware Stack
Since I'm an engineering graduate specializing in wave physics and material science, I knew I needed a rapid prototype rather than starting from scratch with a PCB.
Core Components:
- Radar Front-end: Texas Instruments
IWRL6432 BOOST - Controller:
ESP32development kit - Software Assistance:
Claude Code(which has turned software development into a commodity)
Prototyping Checklist:
- Integrate TI Boost board with ESP32.
- Develop a physical test bench for material swapping.
- Implement a mechanism to test material tightness/compression.
- Design a mechanical enclosure.
📡 The Digital Signal Processing (DSP) Pipeline
The device utilizes FMCW (Frequency Modulated Continuous Wave) radar. Instead of a static tone, it emits a "chirp"—a frequency sweep that increases over time.
The Signal Flow
- Chirp Characterization: I spent two months perfecting the toolchain and fighting the compile flash debug cycle. I had to precisely map the start frequency, slope, and bandwidth.
- Mixing: The received echo mixes with the transmitted signal to create a beat tone. The frequency of this tone is proportional to the distance: .
- Range FFT: A Fast Fourier Transform converts these frequencies into distance bins, providing reflected energy levels at various depths.
- Capon Beamforming (AoA): To avoid "blurry" returns, I used Minimum Variance Distortionless Response (MVDR) beamforming across the MIMO array. This resolves the Angle of Arrival (AoA), creating a sharp angular density spectrum.
🧠 The AI Integration
To turn raw electromagnetic data into a label, I implemented a Convolutional Neural Network (CNN).
The network ingests the density spectrum tensor and learns the complex permittivity of materials, specifically:
- (The real part: energy storage)
- (The imaginary part: energy loss/absorption)
Under the hypothesis that materials are layered and changes between them are discontinuous, the AI can conclude: "This entire layer consists of material X."
⚡ RF Engineering & Simulation
RF design is black magic highly complex physics involving PDEs and chaotic systems. To optimize my antennas to match the TI specifications, I used OpenEMS.
The Simulation Workflow:
I wrote a parametric simulation in Python to calculate antenna characteristics. By extrapolating transfer functions from the TX to the RX MIMO array, I used convolution to simulate the entire path:
Emission Reflection Reception.
# Conceptual OpenEMS Parametric Loop
for antenna_shape in range(min_width, max_width, step):
sim = OpenEMS.run_simulation(antenna_shape)
if sim.directivity == target_directivity:
save_optimal_geometry(antenna_shape)
break
Technical Note on FDTD: I utilized the Finite-Difference Time-Domain (FDTD) method, specifically the Yee method, to model Maxwell's equations.
Warning: OpenEMS does not support GPU acceleration, so I had to aggressively optimize the simulation volume to avoid infinite wait times.

Final Result: The simulated signatures closely matched the real-world measured outputs, paving the way for the final step: testing against actual asbestos-contaminated samples.