This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Short distance measurements in AIR (Level from the Top)

Customer Problem:

  1. Use TDC1000 to measure drill depths for a “professional” quality drill with the following specifications:
    1. Min distance 17cm (from transducer)
    2. Max distance 70cm (from transducer)
    3. Measurement accuracy ~5mm
    4. Work even in “hammer drill mode”
    5. Setup needs to be unaffected by “dust” (sealed transducer)
    6. Need single transducer solution as cost is an issue. 

Since air is so absorptive with respect to ultrasound higher excitation voltages are required. How high, depends on several factors:

  1. Distance. The farther, the higher voltage required as power drops off exponentially with distance. For this range 30V should work fine.
  2. Target angle: The further I'm off angle the smaller amplitude echo I'll receive.
  3. Surface reflectivity: A nice smooth surface will give a better echo than a rough varied one (think flat lumber vs. tree bark). 

In a nutshell 1-3 above all relate the SNR of my ultrasound signal path. Changing any of the above will the size of my echo and reduce my measurable distance.

For ease I used the TDC1000_GASEVM as it:

  1. Is powered from USB
  2. has up to 30V excitation build in. (which can be bypassed to test lower voltages)
  3.  Can interface to 2 transducers should I really need a short range lower than the ringdown time of a single transducer.

I mounted it on a blank PCB board which I then attached to a hammer drill with velcro straps.

Testing in the lab yielded some promising results:

  1. I was concerned the “hammer vibrations” would interfere with the transducer so created a test to simulate that by drilling with a fixed depth in “hammer drill” mode.
  2. The vibrations were not observable

See below:

With Drill running and no depth change (no hammer mode)

In air a STD of 3.02us yields  [343 m/s*3.02e-6)/2] approximately .5mm


With drill running in Hammer mode(and no depth change)

So drilling with no depth change and no filtering other than averaging yields:

In air a STD of 18.774us yields  [343 m/s*18.774e-6)/2] approximately 3.2mm


What EVM/drill combo looked like:

Side view:

 Front View:

 During testing (note: metal plate used to make zero depth change)


If the drill is not orthogonal to the surface by more than 10 degrees (approx.) no echo is detected (due to the tight beam transducer used).

  • Transducer used: Bestartech's 200kHz "sealed" air transducer. A really important feature of this transducer is its tight beam angle which allows it to work so well for this application. The tighter the beam angle the less energy dissipated over a larger area to the longer a distance that can be measured with lower excitation frequencies. 

The vendor link: (

Arrow’s link: (

  • register files for the above setup are here:


  • Also the clock source is CPU_CLK (1.2Mhz) on the board (see TDC1000_GASEVM User's Guide).

Another thing to keep in mind is this setup setup can be used to do level sensing in a container "From the Top" of the container. The issue with that application is that any liquid condensing on the transducer face will severely limit range and will require experimentation.

Also it is ESSENTIAL to read my app note on Sensing Level as it goes over understanding and characterizing transducer ring-down for your system and how to adjust the TDC1000 to compensate for it.

17 Replies

  • Here's a few more pics showing TDC1000 GUI tabs and scope shots at the minimum and max range:

    Setup tab: Note CPU_CLK source set to 1.6Mhz

    TDC1000 Tab 

    TDC7200 tab with the "mask bits" set to ignore the ringdown Stop pulse (see scope shots below)

    Scope shots showing: Start (Ch1/Yellow), Stop (Ch2/Green), Compin (Ch3/Purple)

    Transducer ringdown based Stop pulse circled in red:

    Range at 16cm:

    Scope shots showing: Start (Ch1/Yellow), Stop (Ch2/Green), Compin (Ch3/Purple)

    Transducer ringdown based Stop pulse circled in red:

    Range at 70cm:

    Tank tab with air Speed of Sound showing 16cm

    Tank tab with air Speed of Sound showing 70cm

  • In reply to Matthew Minasi:


    I am currently trying to detect the concentration of a very light gas with a very high speed of sound and am looking to be able adapt flow rate. For this I believe I need to reduce the distance between my transducers to increase signal size for accuracy. I am just wondering if you have any advice for reducing the transducer ringdown signal in the receiving path so that I can bring the transducers closer together?

    thanks in advance,

    Russell Engebretson

  • In reply to Russell Engebretson:

    Let's discuss your question on a separate thread instead of here.
  • Hi Matthew sir,
    I have used the register file that you have stated above, for "from the top" application of level sensor. But I need to increase the accuracy is It possible, I have also tried TDC100_TDC7200EVM that work good for fluid level detection and it also yields far more accuracy than this gas_EVM kit, Is it possible to get accuracy in the rage of 0.5mm using the Gas_EVM . If no then please help me understand.

    Please help me with this

    Thank You
  • Hi!

    I tried the pictured GUI setup with the same frequency (200kHz) transducer, and my oscilloscope is showing no signal and my graph has no data. Any ideas as to what could be going wrong?

    More importantly, what would I have to change about your method/settings above to be able to apply this technique at distances of a few centimeters?



  • In reply to Nancy Stone:

    My mistake. What I meant to say instead of "no data" was that the graph data is not changing based on distance. It is even not changing when I completely unplug the transducer, which makes the graphing result seem like utter bogus, since it doesn't depend on the transducer at all.
  • In reply to Nancy Stone:

    Hi Nancy,

    I went through this process a while back and there are a bunch of settings you have to play with. If you are using the register values listed here, there is a minimum distance from emitter to receiver of 17cm (as listed at the top). This is because there is a blank period which the receiver is "not listening". If you spread your emitter/receiver further from each other you should pick up a signal. If this is the case, then you need to play with the registers in the Timeout section of the TDC1000 tab - enabling the force_short_tof register should allow you to pick up signals closer to each other. 

    It has been a while since I played with the EVM, but if you have questions I should be able to help you out.

    Also, are you doing this in air? or another gas, I was dealing with helium which introduced many other obstacles. 



  • In reply to Russell Engebretson:

    Hi Russell!

    Thanks for your response. My plan is to get this exact example working first and then take your advice about changing the timeout section to suit shorter distances. I am just using air for now; helium is a bridge I can cross when I get there.

    So I've copied the register values from here and am testing the transducer at distances greater than the 17cm minimum. I get a graphical response that lingers around the same value but still no change with respect to change in distance whether it is 17cm or 40 cm away from a target (I have been moving my transducer away from solids like a notebook or tabletop). What could be the reason for this do you think, if I've practically copied this initial article?

    Thanks for your help!
  • Dear Matthew! Hello again!

    As you maybe remember, I have the almost same application - I should measure liquid level through the air from top.

    I purchased TDC1000-TDC7200EVM (GASEVM is not available here), modified it for measuring (changed the filter components to fit 400kHz tranducer), and connected it to custom boost board, exactly copied from GASEVM. The only difference is use of 24V power instead of boost 30V converter.

    I see the output waveform on tranducer on my scope showing the booster working good, but again - I see no echo nor STOP pulces.

    I set up registers exactly as shown in this thread, except TX_FREQ_DIV I set to 4, as my tranducer is 400kHz, not 200.

    Please, help me! Thank you!
  • In reply to Nancy Stone:

    Hi Nancy,

    Sorry for the extremely delayed response, I do not know if you still need assistance with this project? 

    If you are still stuck there are a few things to try. First, do you have an oscilloscope to hook up to the board? Can you see your received waveform?

    One issue which may be causing the constant trigger, independent of transducer distance, could be that the trigger is being set due to the ring down of your transducer? you could try increasing the threshold value from -35mV to something higher and see if that helps. 



This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.