Ultrasonic Rangers FAQ
Q. What is the accuracy of the
ranging?
A. We quote 3-4cm. Its normally better than this, however so many
factors affect accuracy that we won't specify anything better than this. The
speed of sound in air is approx. 346m/S at 24 degrees C. At 40KHz the wavelength
is 8.65mm. The sonar's detect the echo by listening for the returning
wavefronts. This echo has an attack/decay envelope, which means it builds up to
a peak then fades away. Depending on which wavefront is the 1st to be strong
enough to be detected, which could be the 1st, 2nd or even 3rd, the result can
jitter by this much. Another effect which limits accuracy is a phasing effect
where the echo is not coming from a point source. Take a wall for example, the
ping will bounce off the wall and return to the sonar. The wall is large,
however, and there will be reflections from a large area, with reflections from
the outside being slightly behind the central reflection. It is the sum of all
reflections which the sensor sees which can be either strengthened or weakened
by phasing effects. If the echo is weakened then it may be the following
wavefront which is detected - resulting in 8.65mm of jitter. It is possible to
see changes of distance as small as mm but then get cm of jitter.
Q. How can I narrow the beam width?
A. The
beam pattern is conical with the width of the beam being a
function of the surface area, frequency and type of transducers and is fixed. The beam
patterns of the transducers used on rangers, taken from the manufacturers
data sheets, are shown below. beam widths are taken at the -6dB points. There is
an interesting article by Harold Carey on reducing the beam width here
Note that, despite the manufacturers spec' of 55° for both the
SRF04/08 transducers and the SRF02 transducer, the SRF02 is slightly narrower.
This is noticeable in practice as well.
![]() |
![]() |
SRF235 15° | SRF04/08 55° |
![]() |
![]() |
SRF10 72° | SRF01/02 55° |
![]() |
|
SRF485WPR 30° Note the side lobes. |
Q. What are the units on the
vertical axis in the beam pattern diagram?
A. Units are dB, taken from the manufacturers data sheet at: t400s16.pdf
Q. What distance above the floor should the sonar
be mounted?
A. If you can mount the SRF04/8 12in/300mm above the floor, that should
be OK. If you mount them lower, you may need to point them upwards slightly to
avoid reflections from the carpet pile or ridges in a concrete floor.
Q. Can we replace the transducers
with sealed weatherproof types?
A. No. We have tried these on both the SRF04 and SRF08 and they do not
work. The characteristics of the sealed devices requires a different design.
Look at the SRF485WPR for a weather resistant part.
Q. What is the RH limit for the
transducers?
A. This is not specified by the transducer manufacturers and is not
listed in the data sheet. The following is the manufacturers response to an
email "The RH here in Taiwan is normally higher than 95%. Just if this
sensor(400ST/R160) is used in the air, it should be okay. Don’t use in
outdoors. Exposing in rainy day or underwater is not allowed."
Q. Is there a need for us to change
the SRF08/SRF10 address when using the sensor, can't I just use the default address?
A. Yes, if you only have one sensor you can use the default shipped
address of 0xE0. You only need to set addresses if you are using more than one
SRF08/SRF10 on the same I2C bus.
Q. Can I fire two or more sonar's
at the same time?
A. No! If two or more sonar's are fired together then they could
pick up each other "ping" resulting in a false readings. Fire them
sequentially 65mS apart
A. Yes! We do this all the time on our test robot, firing 8
SRF08's at the same time. They are facing outwards and fitted around a 15inch
diameter circle. The gain is set to minimum and they are fired using the I2C
general call at address 0, and read individually at their set addresses. Under
these circumstances there is no direct interference.
A. Possibly! - Try it, and compare the results with firing them
sequentially at 65mS intervals..
Q. If I change the SRF08/SRF10 I2C
address, will it stay at that address next time I switch on or do I need to set
it every time?
A. You only need to set it once and it stays set to the new address -
even when you power up again. The I2C address is stored in EEPROM and stays the
same until you deliberately change it.
Q. If I change the SRF08 Range and
Gain registers, will they stay the same the next time I switch on or do I need
to set them every time?
A. Unlike the address, which is permanent, You will need to set the Range
and Gain when you power up again.
Q. Can I change the sonar frequency
of 40KHz to something else?
A. No. The frequency must be 40KHz, because that is the only frequency
the transducers will operate at. Also the circuitry is designed to operate at
40KHz so you cannot change the transducers to other frequency types.
Q. If I reduce the range
setting of the SRF08, can I fire the sonar faster?
A. Yes, but be careful. If you fire the sonar and there is nothing in the
immediate range, than on the second firing, you may pick up an echo of the first
ping which has only just arrived from a distant object. The second ranging will
falsely interpret this as an echo from a nearby object. To avoid this, don't
fire the sonar more frequently than every 60mS or so.
Q. My software master I2C code does not read
correct data from the SRF08/SRF10, but its works fine with an I2C EEPROM chip. Why is
this?
A. The most likely cause is the master code not waiting for the I2C bus
hold. This is where the slave can hold the SCL line low until it is ready. When
the master releases SCL (remember it's a passive pull-up, not driven high) the
slave may still be holding it low. The master code should then wait until it
actually does go high before proceeding.
Q. What is the power output of the
ultrasonic burst.
A. On the SRF04, SRF08 and SRF10 its 100-150mW.