Doppler Chronograph for high speed bullets


New member
I'm looking to build a radar chronograph as cheap as possible, preferably under $100. I have a pretty solid programming background but my knowledge about radar technology and electronics in general is more or less zero. I was hoping this project could change that.

The goal is to be able to measure rifle bullets in the range of 150 to 1500 m/s (~500 to 5000 feet/s) with an accuracy of 0.5 m/s (1.6 feet/s).
I've ordered a 24GHz CW Radar that I will use to generate a Doppler signal that my Teensy 4.0 finally will convert to a velocity and display on a screen.

Velocities of 150 ->1500 m/s translates to 24k -> 240kHz Doppler signal. To be able to sample this, we need to be able to do at least 2*240 = 480 samples/second. I think, based on this post, that this is not a problem for the Teensy. It seem to easily be able to do 1M samples/second.

What is not clear is if the signal of the radar is strong enough. There are commercial 24GHz Doppler radars out there that are able to measure bullets, but I don't know exactly which kind they use. Examples are: LabRadar, Garmin Xero C1 and AndiScan micro. There is a thread on Reddit where we have discussed this in more detail. I'm happy to take feedback regarding the choice of radar and wheter of not it will work but I'm mainly hoping to discuss the rest of the pipeline. How to translate the noisy signal from the radar to a number on an OLED-screen.

This is an overview of how I imagine the process:

The output signal from the radar contains three components:

1. Noise from the radar itself (the electrical components). This is noise is 116mV according to the datasheet.
2. Doppler signals from all other things than the bullet (background noise).
3. Doppler signals from the bullet.

The filter
In order to remove as much background noise as possible we need to remove the low frequencies, preferably everything below 24kHz. I further guess that there might be some leakage from the 24GHz oscillator to the signal which needs to be filtered away. Hence we need a band-pass filter. Filters are for sure outside my comfort zone. After some searching on the web I learned that I probably need a second order filter such as Sallen Key


I even found a calculator on a shady website. I think C1=C2=15nF, C3=100nF, C4=47nF, R1=15kΩ, R2=7.5kΩ, R3=R4=200Ω will get me in the right ballpark. As for the OP-AMP I have learned that GBP is important, I've ordered a couple of EL5146CS-T13 that has 60MHz GBP. I hope they will work.

Gain and Bias
The signal level is (according to the datasheet) between 563mVpp and 1819mVpp (depending on which Category it belongs to, I don't really understand what they mean by this though). The offset is -300 to +300mV meaning that the signal will oscillate somewhere around -300mV to +300mV. Ideally, we would like to have a signal that has a mean on exactly 3.3/2 = 1.65V and has a Vpp of 3.3V in order to utilize all the bits in the Teensy ADC.

I figured its easiest to put the gain first and then do the offset. In the manual for the radar they suggest 80dB gain:
Depending on the application the total required amount of external amplification can be
somewhat around 70 to 80 dB, in order to get the mixer output signal into an amplitude range
of 1V.
To get 80dB gain in one stage for our 240kHz signal we need an OP-AMP with we need a GBP of 240kHz*10^(80/20) = 2.4GHz. However, ChatGPT strongly recommended that I use multiple OP-AMPs instead so I figured I'll make 2 ~40dB gain circuits and use the same OP-AMP as in the filter instead. The available gain for that OP-AMP should be 60Mhz/240kHz=250x Gain ~= 48dB.

I'm thinking this setup:

Where R7/R13 is an potentiometer such that I can adjust it later if the signal is too weak.
If I understood things correctly, the gain for this setup is calculated by

Vo/Vin = 1 + R7/R8

and if we plug in 250x gain we get a maximum quote between R7 and R8:
R7/R8 = Vo/Vin - 1 = 250 -1 = 249

Hence having R8 = 1k and R7=250k should give 48dB gain.

Two of these gain circuits should give 48 + 48 = 96dB gain.

As for the bias, adding a 1.65V bias to the signal seems to be pretty straight forward using a non-inverting OP-AMP adder:

I only know that R12 and R15 need to have the same resistance, but I'm a bit lost of what absolute values to use here. This seems to work in the simulation.

Zener Diod
Finally we have the Zener Diod that is supposed to protect the Teensy ADC from voltages higher than 3.3V and a normal diod to prevent negative voltages.

All information above comes from searching the web and some dialogs with ChatGPT so I'm sure there are tons of erroneous assumptions and facts.
I'm most interested in feedback on the Zener diod circuit since it's the most important that it doesn't fail. The R9=1kΩ is for instance completely arbitrary, I don't fail to reason properly about it.

Anyways, that's it for now. I will follow up later with discussions about the signal pipeline from the ADC to the screen.
I noticed when I was tinkering around with an diode that the 3.3V pin isn't actually 3.3V DC bur rather something with RMS 3.3V and a peak voltage of 4.1V (as measured after the diode). This phenomena is only present when I power the Teensy from a AC power source. If I unplug my laptop it disappears and the 3.3V pin is a solid DC output.

Could reading such a voltage using an analog pin damage the Teensy in some way? I've read that one should absolutely not apply higher voltage than 3.3V.