HB100 Doppler radar IF amplifier with MCP6002 for STM32 ADC — gain and filter review

Thread Starter

mehmet_DORA

Joined May 1, 2026
2
Hello everyone,

I am working on a project using an HB100 microwave Doppler radar module with an STM32F411 board to detect motorcycles being ridden on a sidewalk/pavement area.

My goal is not only to detect “motion/no motion”. I want to read the HB100 IF signal as cleanly as possible, amplify it with an op-amp circuit, sample it with the STM32 ADC, and then use amplitude and dominant Doppler frequency to distinguish between a walking person and a motorcycle.

The idea is that a motorcycle will usually move faster than a pedestrian and may also give a stronger radar reflection because of its metal parts. However, I understand that amplitude alone is not reliable, because distance, angle, target size, and reflection conditions also matter. So I want to keep the analog front-end clean and then do most of the classification in software.

Main parts I have:

  • HB100 Doppler radar module
  • STM32F411 development board
  • MCP6002-E/P DIP-8 dual op-amp, 2 pcs
  • Resistors: 1K, 4.7K, 10K, 22K, 47K, 100K, 1M
  • 47K trimmer potentiometer
  • 10K trimmer potentiometer
  • Capacitors: 10nF, 100nF ceramic; 1uF, 10uF, 47uF, 100uF electrolytic
  • Breadboard and perfboard
  • 3.3V / 5V breadboard power supply module
  • 12V 1A adapter and LM7805 regulator



Current circuit idea:

I plan to power the HB100 from 5V. I plan to power the MCP6002 from 3.3V so that the op-amp output is safe for the STM32F411 ADC input. HB100 GND, MCP6002 GND, and STM32 GND will be common.

Since the op-amp will run from a single supply, I plan to create a 1.65V virtual reference:

3.3V -- 10K -- VREF -- 10K -- GND

I will decouple VREF with 100nF and 10uF to GND.

HB100 IF input stage:

HB100 IF → 100nF series capacitor → non-inverting input of the first MCP6002 op-amp stage

The input node after the capacitor will be biased to VREF using 100K. I am also considering adding a 10K load resistor from the HB100 IF output to GND, because I have seen similar HB100 application circuits using an IF load resistor around this range.

First op-amp stage:


  • Non-inverting amplifier
  • Rg = 1K from inverting input to VREF
  • Rf = 100K from output to inverting input
  • Gain ≈ 101
Then I plan to AC-couple the first stage into the second stage:

First stage output → 100nF series capacitor → second stage non-inverting input

This second input node will be biased to VREF with 22K. This gives a high-pass corner around 72 Hz. The purpose is to reduce very slow movement, DC drift, and low-frequency noise.

Second op-amp stage:


  • Non-inverting amplifier
  • Rg = 4.7K from inverting input to VREF
  • Rf = 22K + 47K trimmer from output to inverting input
  • Adjustable gain ≈ 5.7 to 15.7
  • Total gain ≈ 575 to 1585
ADC output stage:

MCP6002 output → 1K series resistor → STM32 ADC input

At the ADC input I plan to add 100nF to GND, giving a simple low-pass filter around 1.6 kHz.

Expected behavior:

With no movement, the ADC should read around the middle of the range, approximately 1.65V. When there is motion, the signal should swing around this bias point. In software I plan to subtract the moving average, calculate RMS/amplitude, and use FFT or Goertzel analysis to estimate the dominant Doppler frequency.


Questions:

  1. Is it a good idea to power the MCP6002 from 3.3V while powering the HB100 from 5V, assuming all grounds are common?
  2. Is a 10K load resistor from HB100 IF to GND appropriate, or should I use something closer to 12K, 22K, or a higher value?
  3. Is the first-stage gain of about 101 too high for the HB100 IF signal? I am concerned about saturation and noise, but I also know the HB100 IF output is very small.
  4. Is the second-stage high-pass corner around 72 Hz reasonable for trying to reduce pedestrian/slow movement components, or should I lower it to around 20–30 Hz and leave the classification mostly to software?
  5. Is a total adjustable gain of roughly 575–1585 reasonable for this application, or should I design for lower gain to avoid clipping when a motorcycle passes close to the sensor?
  6. Is the 1K series resistor plus 100nF capacitor at the STM32 ADC input a good idea? Should I add any extra protection for the STM32F411 ADC pin?
  7. Is the MCP6002, with its 1 MHz gain-bandwidth product, suitable for this two-stage HB100 Doppler IF amplifier?
  8. Will this circuit be too noisy on a breadboard? Should I test on breadboard first and then move quickly to perfboard?
  9. For motorcycle vs pedestrian detection, would you recommend making the analog front-end more selective with a stronger band-pass filter, or keeping the analog front-end relatively clean/wideband and doing the classification in STM32 software?
  10. What mounting angle would you recommend for the HB100? I know that if the target moves sideways across the sensor, the Doppler frequency can become much lower, so I am thinking about mounting the sensor at around 30–45 degrees relative to the sidewalk direction.
I would appreciate feedback especially on the op-amp topology, gain values, filter corner frequencies, ADC protection, and whether this approach is suitable for separating motorcycles from pedestrians using Doppler frequency and amplitude.

Thank you.
 

Attachments

Probably the main difference between a vehicle motion velocity signal and a moving vehicle signal will be the variability. The velocity of a person walking varies with each step. A rolling object's speed does not have that variation. And certainly some folks can drive a motorcycle at a human walking speed. And ifan individual is running they may easily be faster than a slow mororcycle could go.
So I have a question: WHAT is the purpose of sensing the difference between a person and a motorcycle?? That affects the accuracy requirement a whole lot, as I see it.
 

Thread Starter

mehmet_DORA

Joined May 1, 2026
2
Probably the main difference between a vehicle motion velocity signal and a moving vehicle signal will be the variability. The velocity of a person walking varies with each step. A rolling object's speed does not have that variation. And certainly some folks can drive a motorcycle at a human walking speed. And ifan individual is running they may easily be faster than a slow mororcycle could go.
So I have a question: WHAT is the purpose of sensing the difference between a person and a motorcycle?? That affects the accuracy requirement a whole lot, as I see it.
I am working on this project as my graduation project, and my main goal is to detect motorcycles being ridden on the sidewalk/pavement.

At first, I am planning to use this type of radar to detect the movement of a relatively fast object. Then, I would like to use this detection as a trigger. After the trigger, I plan to use an ESP32-S3 Sense board to take a photo of the sidewalk and verify whether the object that caused the trigger is actually a motorcycle. My idea is to send the images to a computer via Wi-Fi and process them there.

Actually, my main problem is the initial detection of the motorcycle. After that, I plan to use image processing for verification. I have also considered using additional sensors to improve the accuracy, but I could not think of another cheap and effective sensor or method for this purpose.

As you mentioned, I may not be able to achieve very accurate results using only this radar. However, I think it may be sufficient for my project if I can at least detect objects that exceed a certain speed threshold.

I am open to any suggestions and advice on this topic. What is your suggestion(anything)?
 
I am working on this project as my graduation project, and my main goal is to detect motorcycles being ridden on the sidewalk/pavement.

At first, I am planning to use this type of radar to detect the movement of a relatively fast object. Then, I would like to use this detection as a trigger. After the trigger, I plan to use an ESP32-S3 Sense board to take a photo of the sidewalk and verify whether the object that caused the trigger is actually a motorcycle. My idea is to send the images to a computer via Wi-Fi and process them there.

Actually, my main problem is the initial detection of the motorcycle. After that, I plan to use image processing for verification. I have also considered using additional sensors to improve the accuracy, but I could not think of another cheap and effective sensor or method for this purpose.

As you mentioned, I may not be able to achieve very accurate results using only this radar. However, I think it may be sufficient for my project if I can at least detect objects that exceed a certain speed threshold.

I am open to any suggestions and advice on this topic. What is your suggestion(anything)?
My comment, which could be useful, is that a motorcycle velocity is relatively constant while a person walking has a varying velocity. So the constant variation, in addition to the lower speed, will certainly indicate walking rather than a motorcycle. THAT variationshould be simple to sense with a doppler system analog output.
 
Top