I have found a solution to the HC-SR04 problem

A project log for My Dalek Build

For next Halloween I want a Dalek for "Trick or Exterminate"

agpcooperagp.cooper 10/02/2016 at 06:410 Comments

I have found the problem!

Dale Heatherington said:

"During my experiments I observed that large objects well within sonar range sometimes did not show an echo. Moving them a fraction of an inch resulted in large return echoes. This was caused by multiple reflections arriving at the receiver out of phase. They canceled each other out! The solution is space diversity. Two receiver transducers are placed about an inch apart. They are connected to separate signal processing chains. It's unlikely that both receivers will be in a phase null at the same time so reliably is greatly improved. Now I have three transducers per channel but it works great!" (source:

Here is Dale Heatherington's dual receiver sensor setup:

This is exactly what I was finding with my sensor tests and with the HC-SR04!

So the answer is not four sensors but eight or twelve.

Well actually all I really need is enough overlap that if a sensor will not read then just average the distance between the two adjacent sensors.

Actually a much better approach is scanning sonar like this:

Time is running out so the answer is either two sensors per direction (eight all up) or twin sensor scanning sonar.

Time is short so using the existing driver board is preferred.

Unfortunately the driver board does not have room for eight sensors:

I could add a daughter board with another PCF8574 but a better idea is to trigger two HC-SR04s at a time and the diode OR the returned echos.

The only problem now is that I only have two spare HC-SR04s.

But at least I can test the idea why I am waiting for the new sensors to arrive.

Here is the twin sensor concept (note: I have added a 10k pull-up resistor to the echo output):

The transit and receive sensor pairs are about 36 mm apart (~1/2 wave length).

So no negative transmit interference pattern (except at 90 degrees to the sensors).

The theory is simple but I did a simple simulation in Excel:

The theory is that the receivers are far enough apart that both receivers are less likely to be affected by a negative interference at the same time.

The sensor echos are diode ORed, so the first sensor to fire will interrupt the MPU.

The transmit power is doubled as well.

As Dale says, I could stack more of these sensors if increased reliability is required.


I assembled the dual sensor with ORed echos but unfortunately it was even more unreliable. I can't win! I do know one of the sensors was not that good but still.

I still beleive there is merit in the multi-receiver solution though.