I want to take a laptop-based ultrasonic radar system and convert it to a hand-held device. I have Tx and Rx filtering circuits already, now I need to decide on what to do the signal processing on. Since I already have a Pi 3B+ it would be helpful to use this to produce a 40 kHz PWM signal, which can be filtered through the Tx circuit to produce a 40 kHz sinusoid, and then sample a received signal through a suitable ADC (perhaps MCP3008?) and process the data on the Pi 3B+. I've read concerns online over the varying rate that is achieved with the pi due to it being a general-purpose device and not receiving data from the MCP3008 in a dedicated fashion. The MCP3008 has a 200 kHz sampling rate but I doubt I will achieve above 60 kHz with the Pi. I ideally need 65 khz sampling rate, so, am I totally wrong here? Will this work with a Pi 3B+ and an MCP3008? Or do I need a different ADC? Or should I consider a DSP? (I have seen also that I could use my arduino with the MCP3008 for sampling then transfer this data to the Pi for processing - perhaps this is the best option given what I already have?)

  • 1
    \$\begingroup\$ ultrasonic radar ... it is not radar, if it does not use radio waves ... you are talking about a sonar \$\endgroup\$
    – jsotola
    Jan 3 at 20:42
  • \$\begingroup\$ What is the pulse width of the transmitted signal? This will determine the bandwidth of the system, ultimately the sample rate of the ADC once you understand the receiver filter roll-off characteristics (shape factor). \$\endgroup\$
    – qrk
    Jan 3 at 22:50

1 Answer 1


Unless you use a real time kernel, you're very unlikely to get anything close to that sample rate, and even then, i think its unlikely.

It would be a lot easier to use a DSP or general microcontroller (I really do like the RP2040 / Raspberry pi pico) to do the sampling (with the ADC you mentioned as the RP2040 only has 3 ADCs) do any basic filtering / conditioning and shove it through the serial port (USB) to the Pi for more meaningful calculations. You may be able to do the calculations on the pico / RP2040, i don't know.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.