# Ping Echo Sounder. Closer than "Minimum Range". What happens?

**URL:** <https://discuss.bluerobotics.com/t/ping-echo-sounder-closer-than-minimum-range-what-happens/12810>\
**Category:** Ping Sonar Devices\
**Created:** [August 24, 2022, 8:05pm UTC](https://discuss.bluerobotics.com/t/ping-echo-sounder-closer-than-minimum-range-what-happens/12810 "2022-08-24T20:05:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Loola](https://avatars.discourse-cdn.com/v4/letter/l/a3d4f5/32.png) [@Loola](https://discuss.bluerobotics.com/u/Loola)\
**Post date:** [August 24, 2022, 8:05pm UTC](https://discuss.bluerobotics.com/t/ping-echo-sounder-closer-than-minimum-range-what-happens/12810/1 "2022-08-24T20:05:03Z")

</div>

Hi!

I hope to get a detailed description to what happens to the output in the Arduino serial monitor when an object is closer than 0.5 m (Minimum Range) and all the way until it touches the sensor. My hope would be that the output would be something like just zeros or nothing at all, like the sensor would stop sending until the object is further away than 0.49 m.

Just erroneous numbers doesn’t work for the project i am currently working on. I hope for the best.  
Thank You!

Regards,  
Loola  
Sweden

---

<div class="post-metadata">

**Author:** ![EliotBR](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/eliotbr/32/6937_2.png) [@EliotBR](https://discuss.bluerobotics.com/u/EliotBR)\
**Post date:** [August 24, 2022, 9:32pm UTC](https://discuss.bluerobotics.com/t/ping-echo-sounder-closer-than-minimum-range-what-happens/12810/2 "2022-08-24T21:32:18Z")

</div>

Hej @Loola, välkommen till forumet! 🙂

The minimum distance is because it takes some time for internal sonar reflections to die out (effectively the device itself ‘ringing’ from each ping transmission). Accordingly the signal in that region is at maximum values, or at least very close to it - you can see the profile in [Ping Viewer](https://docs.bluerobotics.com/ping-viewer/).

The physical minimum distance for a given ping depends on the scan range and speed of sound, because when the sensor is trying to detect targets far away it uses a longer transmit duration for each ping, which increases the ringing time, and accordingly increases the minimum range before usable data comes through.

> [@Loola](#):
>
> My hope would be that the output would be something like just zeros or nothing at all, like the sensor would stop sending until the object is further away than 0.49 m.

If that’s your preference you can [turn off auto mode](https://docs.bluerobotics.com/ping-protocol/pingmessage-ping1d/#1003-set_mode_auto) and use the [`set_range`](https://docs.bluerobotics.com/ping-protocol/pingmessage-ping1d/#1001-set_range) message to set the `scan_start` beyond the minimum detection distance (see [`range`](https://docs.bluerobotics.com/ping-protocol/pingmessage-ping1d/#1204-range) for more details on the parameters). Note that using manual mode also turns off automatic gain control, so you’ll need to determine an appropriate gain value and scan range for your application (or do your own dynamic control of them as relevant).

---

<div class="post-metadata">

**Author:** ![Loola](https://avatars.discourse-cdn.com/v4/letter/l/a3d4f5/32.png) [@Loola](https://discuss.bluerobotics.com/u/Loola)\
**Post date:** [August 25, 2022, 8:44pm UTC](https://discuss.bluerobotics.com/t/ping-echo-sounder-closer-than-minimum-range-what-happens/12810/3 "2022-08-25T20:44:25Z")

</div>

Hi!

“Manual mode” looks like a desirable function. If I in manual mode set range to be 500mm. What result will show up on the Arduino serial monitor when the object is at lets say 300mm from the transducer?  
And would the result be the same despite different lengths like 200mm and 400mm?

Some clarification please.  
“1400 continuous start: Command to initiate continuous data stream of profile messages”.  
What does it mean, is it something that needs attention when in “manual mode”?

Regards,  
Leif

---

<div class="post-metadata">

**Author:** ![EliotBR](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/eliotbr/32/6937_2.png) [@EliotBR](https://discuss.bluerobotics.com/u/EliotBR)\
**Post date:** [August 26, 2022, 6:20am UTC](https://discuss.bluerobotics.com/t/ping-echo-sounder-closer-than-minimum-range-what-happens/12810/4 "2022-08-26T06:20:10Z")

</div>

> [@Loola](#):
>
> If I in manual mode set range to be 500mm. What result will show up on the Arduino serial monitor when the object is at lets say 300mm from the transducer?

Most likely that’s still too close to be detected, so probably you would get some arbitrary distance estimate with 0 confidence.

> [@Loola](#):
>
> And would the result be the same despite different lengths like 200mm and 400mm?

The scan length is the part of the scan range after the scan start.

If you have a good idea of how far away the target is, you can set the start to a bit before it and set a short length so that you get more precise readings in the area of interest (e.g. measuring depth with a boat in a lake that’s known to be 6.5 to 6.8 m deep, you could set `scan_start` to 6200 mm and `scan_length` to 1000 mm to get reasonably high resolution profiles and distance estimates).

As I described in my previous comment, you can also use `scan_start` if you know you have some region of data at the start that you’re not interested in (e.g. you want to avoid the data from the initial ringing region, or just you know your target surface will always be at least some distance away).

> [@Loola](#):
>
> “1400 continuous start: Command to initiate continuous data stream of profile messages”.  
> What does it mean, is it something that needs attention when in “manual mode”?

If you want the full profile of each ping, you can request the [`profile`](https://docs.bluerobotics.com/ping-protocol/pingmessage-ping1d/#1300-profile) message. `continuous_start` is for if you know you want to continually receive profile messages whenever a new profile is available (depends on the set [`ping_interval`](https://docs.bluerobotics.com/ping-protocol/pingmessage-ping1d/#1004-set_ping_interval), or the scan range and speed of sound as a physical limit), instead of needing to manually request a new profile each time. A display and logging program like Ping Viewer can make use of that to avoid excess communication overhead.

That’s unrelated to the auto/manual operation modes, which are instead to do with whether the sensor determines its own range and gain to try to suit the conditions, or if the controller (you / your code) is specifying those manually.

From that documentation it seems like it only applies to `profile` messages, so if you’re just wanting `distance` or `distance_simple` messages then `continuous_start` would not be relevant. That said, I haven’t personally tried it with those messages, so it’s possible that it does actually work with them as well, in which case we should update the documentation to make that clearer.
