Using Ping Sonar Altimeter and Echosounder to measure distance to water surface

I have tried to measure the distance from a buoy to the water surface by pointing a Ping Sonar Altimeter and Echosounder towards the water surface, see picture for setup.

When it was tested in a small pool, with completely still water I got centimeter accuracy.
But when I tested it at sea, at about 18m depth the return I got from Ping1D() was only:
Distance NONE, Confidence NONE.

The logs from my raspberry show no issues with connecting to the sensor.

Have anyone else tried to use the Ping Sonar to measure the distance to a water surface?

Any chance to get a log file of the profile data? That would be a good way to diagnose. I’d be happy to take a look if you could get a log file with profile data.

Hi @OASimen,

As @ljlukis mentioned, a log of the profile data would be useful.

A couple of extra questions:

  1. Is your sonar in auto mode?
    • If it’s in manual mode and has been configured with a limited scan range then it may not be able to detect 18m away
  2. Do you know how upright the sonar is pointing?
    • If it’s at an angle then unless the sea is quite choppy it’s quite possible the sonar pulse will reflect off the water surface and away from the sonar, in which case it just never sees a return - there’s some additional explanation here

It is controlled by usiong myPing.get_distance()

Default settings for the sonar.

It deviated from completely upright by about 10 degrees during a 10 minute test.
I also tested another echosounder at the same time (echosounders tested sequentially, so there was no interference between them) and at least it was upright enough to get some readings.

Might be that I should have set the distance in the sensor