Post Image
By Matt GaidicaMay 19, 2022In Uncategorized

Evaluating a 60GHz mmWave Radar System

Given the important connection between the peripheral and central nervous systems, heart and respiratory rates have become valuable measures to incorporate into physiological research (Gaidica & Dantzer, 2021). However, conventional measurement techniques require a physical interface between device and organism. A new class of “mmWave” biotic radar technologies is making it possible to derive such measurements without any physical interface with up to 85% accuracy. Furthermore, they are natively capable of monitoring small changes in movement, making them ideal fall detection sensors. Here, I use the Seeed Studio 60GHz mmWave Sensor (Breathing and Heartbeat Module) based on the MR60BHA1 60GHz radar module to determine its accuracy and applicability to broader applications in non-human domains.

Software (MATLAB GUI)

Seeed Studio recently released a mmWave Wiki and Arduino Library, but ultimately the sensor still lacks a proper user interface. I rewrote most of the library into a MATLAB app. Unfortunately, the functionality of the current device does not match what is contained in the datasheet, so the Arduino library is actually a more accurate way to decode the sensor’s output; the current datasheet appears to be aspirational.



I am using a basic serial-to-USB module from Amazon which appears in the MATLAB GUI port selection dropdown. The mmWave hookup is as simple as RX⇄TX and TX⇄RX between modules. In order to keep the sensor protected and contained, I designed a housing using Fusion 360 and printed it on my Prusa.

mmWave Sensor Housing


I decided not to break out the complete physiology kit to do a proper correlation between signals; given that heart rate is transferred using a single byte (values 0-255), I don’t expect this to replace an EKG. In the first figure (above), the mmWave reported values 10-20 BPM higher than my Garmin Fenix connected to a Polar H10 heart rate strap. My respiratory rate (measured manually with a timer) was consistent, but I would need more data to give a proper analysis. In sum, it’s hard to know if this sensor is just spitting out random values around 70 BPM, so I proceeded with a few more tests.

After Exercise

I went on the treadmill and got my heart rate up to 138 BPM and then sat in front of the mmWave sensor (making sure it said “User within range”). The readings were way off, in fact, I never got the sensor to read higher than 80 BPM despite my HR sitting above 100 BPM for at least a few minutes. I tried the same with push-ups, but very little modulation of the sensor values occurred. I tested it in multiple environments and found the values to not be very correlated with my heart rate monitor at all. I also placed the sensor in front of my dog for a few minutes, but the HR was reading similar values (all ~70BPM), which could be accurate, but I would have expected it to be slightly higher.

Vitals Post-exercise (~2 minutes). Note: early zero values represent when I was out of the room on the treadmill.

Presence, Movement, and Fall Detection

Where this sensor does shine is in its ability to detect movement. As compared to other types of motion detectors, it is clearly above par and the fall detection does a good job of triggering when movement is very abrupt. But with cheap wide-angle camera modules with built-in AI emerging, I would bet that is where the future lies for fall detection or critical care monitoring, given privacy concerns can be overcome.


I wanted an accurate external heart rate sensor, and indeed, Seeed Studio promised that but completely underdelivered. Note, I also tried this sensor with an Arduino and the provided software library with similar results. I’m currently not satisfied with the accuracy of the documentation—which makes developing nearly impossible—or the device itself. For example, I don’t really know what the waveform data is supposed to represent (e.g., do they have units?).

I would be interested to know if anyone has had similar experiences or debugged this device to read out heart rates higher than 100 BPM.

svgMemorizing VFR Minimums in 6 Steps: 3-152 BEG Method
svgGR/PR: An Open-source Grip Strength Meter