Go Down

Topic: Ultrasonic Anemometer (Read 44909 times) previous topic - next topic


Nov 16, 2012, 02:08 am Last Edit: Nov 16, 2012, 02:14 am by carl47 Reason: 1

(analog)H2, H5, H7 and (digital)H10 are earth and are all connected.

(analog)H1 is the amplifier input and is connected to the (digital)4052 pin 3 designated as "amplifier".

(digital)H1 and H2 go to north transducer.
345678 go to the others.

(analog)H3 goes to the (digital)328 pin 5 designated as "envelope".
(analog)H6 goes to the (digital)328 pin 4 designated as "ZCD".
(analog)H8 goes to the (digital)328 pin 28 designated as "temp".

H11 is a test point and goes nowhere.



I connect the cable like this:

H1.......................................................long pin
H2.......................................................short pin  NORTH transducer

There is no ground connection at the transducer.

I use 8 volts for the analog amplifier circuit to give full digital output of 5 volts from the opamps.


Thanks for you answer it helps and i connected the H1 (digital part) whit the H1 (analog part) and the others "H" in the same way is this correct because when i have the calibration of ZCD TEMP... have a log range


To answer your question I need a lot more information.

Is the analog voltage a log range or the digital display?

I can only repeat a previous answer:

Does the calibrate resisitor 1k make any difference. The voltage at analog 5 should change.
If it does not you have a analog circuit error.
If it does and the display "external temperature  =  10.0" does not change you have a program error.
Your job is to find and fix the problem.


Which ultrasonic sensors do you use?


Download UltrasonicAnemometer.zip from:



Ok, found at page 8, it is a "T/R40-16B"  :)
Thank you


Can you give a more detailed explanation of how the time-of-flight coarse measurement is made?  The PDF says:

"This is the simplest method and I incorporate it in this design. The tof is measured when the amplitude of the received pulse exceeds a fixed amplitude. In theory the error of this measurement can approach zero if you average an infinite number of samples."

My experimentation shows that if we transmit a single 40KHz cycle, the amplitude is very small, so instead we must transmit several cycles and allow the amplitude to build up through resonance.  This means that on the receive side, we're always going to miss the first few cycles, until the amplitude gets big enough to detect.  If (for example) the first 2 cycles are always undetectable, then no matter how many times we redo the measurement, we're always going to be 2 cycles late (i.e. off by +50┬Ás).  How is this error corrected?

Similarly, when we stop transmitting, it takes a few cycles for the transducers to stop ringing, so measuring the end of the signal is also not reliable.



Yes you are exactly correct.
If you increase the number of pulses sent the received signal gets much easier to read.

After 16 pulses we get diminishing returns.

In the program I send the 40khz pulses for 64ms - about 25 pulses.
This gives a good tradeoff between readability and total time for the measurement.



Ok, so you send 25 cycles, the first few of those cycles are always undetectable by the receiver - I don't see how the receiver can derive from this how many cycles have passed that it didn't detect. - you have a nice strong signal to do phase detection on, but you still don't know which of the 25 cycles is which by the time they reach the receiver.

i.e. (the following diagram does not include the time of flight, just to make things easier :))

Sender:   ------_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_---------
Receiver: ----------_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-----
                ^^^^                                             ^^^^
     Undetectable due to low amplitude       Ringing after the sender has finished

Am I missing something?


but you still don't know which of the 25 cycles is which by the time they reach the receiver.

This is the the crux of the problem, we cannot know for certain.

We get an approximation using Thresholding:
This is the simplest method and I incorporate it in this design. The tof is measured when the
amplitude of the received pulse exceeds a fixed amplitude.
In theory the error of this measurement can approach zero if you average an infinite number of
I average over 3 seconds.

We then have a tof with an error, we get a closer result using the phase shift.

You cannot use the phase shift alone as it repeats itself every wavelength(25 micro sec).

Hope that this helps.


This seems excellent.
Is there a way that a kit can be made?
If not then I see that there is an EAGLE file here so perhaps I can use that to have a board made and then purchase the other components separately but I'm not sure that is up to date. Have there been any updates to the board/circuit design?

Have you seen these sensors? How can the existing design be updated to measure wind using such a compact form? Any thoughts?

Also, I wonder if these folks know about your sensor?


Apr 19, 2013, 09:20 pm Last Edit: Apr 19, 2013, 11:40 pm by rkguy Reason: 1
I can't find a U.S. supplier that carries the ultrasonic sensor.
Is there a good alternative or can someone direct me to a U.S. supplier?
It's the T/R40-16B from Audiowell
EDIT: I ended up getting this one from Futurelec: USTR40-14A
Interestingly, I got the 60Hz one as well, perhaps more appropriate for the compact sensor I mentioned above.


Apr 20, 2013, 02:36 am Last Edit: Apr 20, 2013, 02:40 am by carl47 Reason: 1

ravensburg was on the web when I started my project.
They like to keep the signal processing a secret so I could not use any of their information.

Interesting to see they now have a reflecting suface which many commercial models have.

I have experimented with a reflector layout but was unable to get a big enough signal.

I have just become aware of the hackerfleet design.

I have only had a quick look but I could not find their signal processing.
Their circuit information looks good.

As I have said before my design could be much improved.
I do not know of any new designs and the eagle files are still current.



Hi, carl47

Finally I found some correspondence related to your fantastic project Ultrasonic Anemometer.

For almost over an half year I am strucling with a not working system.
I built the ultrasonic anemometer on a proto type PCB.
I used the sensor from Conrad a europeean supplier.
Type  A-18p20    fabr. EKULIT  to my opinion they must work and/or are near the specs.
TR SPL  dB  >106
RC SEN   >-74
Dir deg. 80+/-15
Capa. 1800+/-20%
Allow. inp. volt  140

The problems i found are
The system looks working but not relaiable and or recognized.
It respond on disturbing the beam.
Digital looks to work I hear sound from the sensors all 4 of them.
The value for the envolope is about 8000  not the 4000 which must be.
I use diodes 1N4937  the 1N918  are not avalable. equivalent 1N4148 shoult not work either as written by
The sensor wire I also screened and put to earth (-) you never know.
Do you have a clou what is faulty?
I do realize the info is poor but I cab answer your questions.
Like to hear from you.

Kind regards,
THeo  ( ilioSS)

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131