Arduino Underwater Sonar/Altimeter

I have a crazy idea of starting a new project.
its gonna be huge, every fisherman and ROV hobbyist will want one.
My intention is to obtain a Boat depth sensor, couple it up to an arduino or shield that will provide the drive signal and measure the return signal.
OK some electronics is required to provide the 120v DC drive signal for a transducer and perhaps a preamp but after that i think the arduino will do a pretty good job of making it all work.
My aim is to make it cheap (i didnt write the jokes).
i would be interested to hear from anyone who has done some work or research into getting such a project off the ground.
or if you would be interested in joining in.

first I need one of these
its not air driven so the other usual sensors used on Robots are no good. this transducer will be expected to send and receive.

my inspiration came from this guy

look forward to your replies

[no experience disclaimer applies :wink:

In how far does the consistency of the water influence such transducers in getting correct readings. I have seen clean rivers and dark brown lakes and quite some in between.
When there is dirt in the water it much change the speed of sound.
Also the depth itself will have an influence on the speed of sound (more compressed materials conduct sound waves faster)
And finally the temperature of the water will influence the speed of sound.

just some thoughts that came up, reading your post.

As you live in the lake district you are of course in the middle of the market, have you considered crowd funding? Think the idea is good enough.

Hi Rob,
as you have correctly pointed out the signal passes through solids quicker than liquids.
the link to Mike Thompsons Side scan sonar is tried and tested and to the best of my experience and knowledge working with sonar particulants in the water dont effect the signal too much - apart from tea, i once worked a shipwreck salvage project, we freed some tea which had been carried in the hold. That stuff really is a sonar killer.
The principle of ultrasonic ranging are quite simple and straight forward.
as it happens i have found some more juicy bits.
written by Jeff ?
this provides the starting block for the trigger pulse for the ultrasonic transducer creates 40 KHZ and creates signal bursts

void startTransducer()
  TCCR2A = _BV(COM2A0) | _BV(WGM21) | _BV(WGM20);
  TCCR2B = _BV(WGM22) | _BV(CS20);
  OCR2A = B11000111; // 199, so timer2 counts from 0 to 199 (200 cycles at 16 MHz)

void stopTransducer()
TCCR2A = 0;
TCCR2B = 0; // I think this is all that is needed since setting the CS bits to zero stops the timer.

void setup()
pinMode(11, OUTPUT);

void loop()
delayMicroseconds(400); // wait for 400 microseconds

OK one small proble i dont appear to be able to get it working - or at least i cant tell until i get back to work and test pin 11 with a scope.
i have put a led on it and expected to see a fairly well, continuesly lit led - No.

so an ideas or suggestions would be helpful.

my plan would be to use this pulse/burst to drive a fet amplifier stage which in turn would drive the transducer with 110v at 40Khz - ok there is more circuitry than that ( like a line matched transformer etc) but you get the general idea.

if i can get this working im almost half way there (the other half is the receiver, what: amps filters FFT perhaps - ending up with a 0-5v output).
Im sure this project most be of huge value and interest, i have read several forums where people are asking if an underwater sonar is possible and cant find any real work that has been done on it.
the whole idea of building such a thing is cloaked in mystery even the online patents are non existant.

so any input please shout

The code works,
it would help if i look at it on a scope the first time around but it was 10 miles away at work.
Im now working on the fet amplifier/driver stage

still no interest

Still working on transmitter circuit

I am currently experimenting with the circuit produced by jessica Luan in her thesis

Its written for Microchip PIC but should work the same with the Arduino UNO/Mega.
The clock speed is faster on the arduino for a start (16Mhz as apposed to 10Mhz).
the pulse generation code listed above produces the 40Khz required for the transducer i have and provides 3 bursts per second.
if the arduino receives and processes the signal fast enough then i will be able the measure depth 3 time a second.
mindful the the speed of sound through water for 100m depth may not allow for 3 operations per second.
once a second should be easly acheiveable and thats good enough for me anyways.

i was given a tip the other day which was invaluable
when i measure the transducer signal use a scope lead switched to X10 as the signal is larger than expected 600v P/P
I got the advice just before i toasted my £175 china special scope.

so still working on transmitter circuit.
i have designed a pcb based on jessicas schematic and i am building it up in stages as i get each part to function

wish me luck.


Very interresting project you have going. I just stumbled over it just now as I am thinking of making a AUV to play around with.

How is the Project going, did you finish it or is it still ongoing?.

Check out these: For processing the results For Ben Smith doing his own mapping

This sounds great!
I'm an ROV pilot, I got into arduino a few months back with a hexcopter project. What I noticed with the hex was there was a lot that crossed over to ROV. From sensors to the control system. This got me thinking about the possibility of doing another similar project only this time building a small inspection class ROV. Today I started thinking about sonar and other sensors we use. So I did a google search for arduino sonar and you popped up. Anyway my background is in electronics but more to the point I used to build sonar systems and the transducer heads.

I was wanting to ask you why you chase 40khz? That would give you a very long range and low resolution. Surely you should be looking in the range of 300-700khz?

Also someone asked about the state of the water. Would you be able to incorporate a seperate small transducer facing at a fixed plate a known distance away to act as a sound velocity sensor. Look up vailport's mini Ava and you see what I mean. Very simple device.

Anyway how did the project go? Did you finish it? I'd be really interested to find out more.



I am also interested in using an underwater transducer. I have yet to find a retailer for this specific part in Canada but I am more concerned with the basic signal received by the transducer. I suppose that the raw signal has to be processed in some way before you can extract a time delay. What does a typical signal look like?

Did you manage to find a suitable transducer? You have a local transducer manufacturer in Canada, see Sonar Transducer: Underwater & Air Use.

I have bought 2 cheap underwater sonar transducers.But they don't have any model number. I googled but didn't find any datasheet and any information regarding using them..

Black, 2-pin, like the picture that i attached (though front is smooth and has no hole in it) -
please help me with the circuit.

Are they really "underwater" units, or simply "water-resistant", like automotive parking sonar sensors?

This sounds like a very interesting project would love to see how it develops. Would you please post updates when you progress?



I found the following and it looks good as it is proven so. It is a bit costly but still less that 90% of the other concepts out there

Any update on this topic?

Guys, do we have any news on that?
I am struggling to find any type of Sonar Sensor for underwater utilization.
And Chinese have tons of them for the fraction of the price but in the form of finalized devices

I'd also like an update on this topic. Can we start a new discussion so more people can see? Many of the options I've seen were fairly expensive in the 200-300$ range for transducer and converter.

I'm building an ROV project that requires an altimeter as well and I've found this sonar altimeter from Blue Robotics that has an Arduino library and examples. It's still in the $200-$300 range but looks like it will work.

Here's the sonar:

And here's the sonar Arduino tutorial:

I'm interested in other options as well if anybody finds something.

I'm a developer of a compact underwater sonar with UART interface.
I have some modules that I would like to be tested in real use.
If here is somebody who can make a simple example with the module and display, I could provide them a sonar.

It sounds like an interesting project. I would like to know the progress of your project.