Ultrasonic Anemometer

assume that it is open source

Everything I do is open source. I do it all for my own entertainment.

buy a circuit board from you

No
I will upload the .BRD file as soon as I'm sure its OK.
Most pcb production houses will produce from the .BRD file.

contact you about something related

Please post any questions in the arduino forum pages

new in this design

  1. Transducers driven straight from 328.
  2. Construction now "flying saucer" shape.
  3. Self tuning for thresholds.

Hi,

I have been looking for a diy ultrasonic anemometer for some time. I came across your earlier posts about your project, and was just about to start to learn how to build a device, when I came across your latest post regarding a Markll version.

I am now waiting with eager anticipation for the details on your newest device. :slight_smile:

Just to whet my appetite, I don't suppose you could post a picture of the new mechanical layout, please?

regards

Patrick

No construction photos yet. Have a pcb:

Hello Karl47,

At the moment some day,s leave so I started to look around on the arduino from.
You still busy.
Last may I contacted you concerning the ultrasonic anemometer.
It is laying some wher eround in a corner.
If time permist I like to cont. solving the problem.
Mean while some stainles steel sensor holders are made.
Still the function must be checked. There is a elecronical failure in the system.
I have to read all the comments in this posts. So I am informed about the latest progress.
I do understand you are launcing your mark2 version.
So for now I will cont. in problem solving. And cot in the rest of my weather station.
Kind regards,
illoSS

Should not be long now.

Made an error in board so I'm getting a new one made and will check it first.

I modified my first board and it all seems to be working.

I want to do some more trials and then write it up.

Note "always double your estimated time"

Note "always double your estimated time"

So true.
Does anyone have reccomendations for low cost fab shops that I can send the BRD file to?

Also, silly question, but I assume that this does not include arduino code, right? What I mean is that this device would receive a command to take a reading from a MicroP (e.g. arduino) and then will return a reading, ostensibly over serial or I2C, etc?

I'm in australia and I used:

It took about a month(but Xmas may have been a factor).
The board is actually made in China and ships through Singapore.
Very happy with board construction.

I have heard that sparkfun.com has a good service.

To run the board you will need my arduino programs.
The output is serial data. The same as first project.
This is the last thing I'm doing.
I want to complete it soon so I can get onto my next project.

Cheers

I’m sorry to say that the version 2 is not working properly.

The conversion from RF style to opamp amplifier has changed the dynamic of the system.
The sensor matching is now very critical.

I’m not saying that the design is flawed.
I’s possible that with some more effort from me it could operate well.

However I have decided to draw a line under this project.
I feel this project has absorbed enough of my time.

I have uploaded most of the project details.
If anyone wants to try it out I will leave my circuit setup and answer
questions on this page.

Download unfinishedUAproject.zip from:

http://code.google.com/p/arduino-projects-carl47/downloads/list

Hi Carl

I have started doing your project for few weeks, There're something in your project I still don't understand.

I have a few question would help me to understand.

1.Why the envelope value should be 4000 ? , where does that value come from?

2.Why the ZCD value should be 3000 ? where does that value come form?

3.I think the untrasonic transducer send pulse for 0.64ms , but why when the pulse recieved the wavelength is about 1.2 ms (from ProjectReport page 15 ) ? I think I misunderstand something.

  1. In this equation windstep = (sqrt((207.36E6 + Exts*Exts)) - 14400.0)*3.6; why it need to multiple by 3.6 ? what is that for ?

  2. In this function float wind = (windstep * diffav)/110000.0; I don't understand about this value (110000) what is that for ? How do you get it ?

Thanks.

PS. Sorry for my poor english (It not my native language =( )

Hi kuroroneo

There are quite a few magic numbers in the program.

1.Why the envelope value should be 4000

4000 is the timer1 count I chose to give me the best result

2.Why the ZCD value should be 3000

3000 is the timer1 count I chose it to be less than the envelope above to give me the best result

3.I think the untrasonic transducer send pulse for 0.64ms

The output from the schmit trigger stays on after the .64ms pulse. This is caused by the ringing of the
transducer which causes the received signal to be nearly twice as long as the transmitted .64

  1. In this equation windstep = (sqrt((207.36E6 + Exts*Exts)) - 14400.0)*3.6

3.6 is a scale factor to give the windspeed step as km/s

  1. In this function float wind = (windstep * diffav)/110000.0

110000 is the timer 1 count that I use to give the number of the wind step.
Its an average value that I found to give the best result.

I wish now I had specified all my magic numbers in the program.

cheers

Have you tried driving the transducers with 100-140 Vp-p? Your OpAmp circuit may work better that way. If I'm not mistaken, it appears you are trying to drive the transducers directly with 5v PWM from the Atmega. With these waterproof transducers, they like much higher voltage in order to operate properly.

Have you tried driving the transducers with 100-140 Vp-p?

That would be much better. However there is a problem with the multiplexer.

They have to be connected to the sensors as well as the 100v(no suitable multiplexers).

If you use pulse transformers to drive from a lower voltage you then get the stepdown
for the receiver. This cancels out the stepup voltage.

Hi Carl
can I have the pcb layout of the version 1?
I would try to build it.
If I understand correctly, the version 1 is working properly.
Thank you

I don't have a pcb for version 1.

I'm not doing anymore work on this project.

The quickest way would be to modify the version 2 pcb.

The opamp amplifier needs to be replaced with the original
tuned amp version.
This would then be the version which did work well.

Hi Carl

I found your ultrasonic anemometer project via hackaday.com about two months ago. I wanted to build one and thought there must have been someone who has done this before me... Thank you very much for sharing this.

I've built a working prototype in the mean time. I've changed quite a few things for the digital part and made some minor changes to the analog part as well but you would easily recognize it as your design.

I'll put my designs and lessons learned online soon. For now I just wanted to say thanks for sharing your great project.

Lukas

I finally found the time to start documenting my project and putting things online. I hope to add a post every day until I catch up with where the project stands right now. The first post can be found here:

Eagle files and the like are not online yet but if someone would like to have them right away I'm happy to send them by email.

Same as Lukas, I started this project a little after him in 2015, following his design and yours. After a lot of hours, I have a working prototype than is (for now) quite stable and gives realistic values ( at least according to my super cheap handheld anemometer). The main circuit is done and the firmware is "usable". I just need to mount the whole instrument in it's final fixture and test it.

So a big thank to both of you for the huge amount of documentation. I learned a lot in the process.

I have read this thread with great interest. I hope to build a working anenometer.

I found the design of carl (UltrasonicAnenometer.zip) to have very complicated electronics, and very simple software. Maybe I am missing something, but I would like to try the opposite if it's possible.

Why not have a high speed ADC and do all the processing in software? This would mean using few components, and make the board much easier to assemble. Maybe the avr is too slow, but a more powerful mcu can do it? Any thoughts on this?

I think this solution is much more powerful as you can also more closely fine tune the frequency for different conditions and wind speeds to obtain better results. It is mentioned 1MSPS or better is needed.

As for driving the ultrasonic sensors, they claim 140v p-p but from what I can see they are driving always at low voltages. Am I missing something?

Hello,

I have some problems due to transducers received signal shapes. All the transducers receives different shape signals, the lenght and amplitude varies a little bit, so this leads to unstable envelope. This makes me difficult to trigger my envelope detector exactly at the same point for all axis and direction.
How could I solve this?
Do I need to use automatic gain control to set constant amplitude for all received signals? Thank you for any help.