After plenty of testing I have concluded that the SRF02 sonar is NOT A VIABLE REPLACEMENT for the Maxbotics MB1200 series of sonars for the downward looking (alt hold) sonar on Arducopters.
The SRF02 was attractive to me for three reasons:
1) it is an i2c device (ie it sends its range signal back to the arducopter as a digital signal) and,
2) you can command a reading from it (ie it is not ranging all the time)
3) it is relatively low cost (less than £10 or approx $20)
One of the likely sources of sonar noise that a lot of people see in their arducopters is the analog signal, many people have lessened their noise problems by shielding the signal cable and moving the sonar and cables away from their ESCs - hence the digital (i2c) sonar was worth a look.
In the future I'd like to test some obstacle avoidance - to do this you need approximately five sonars operating (front , back, left, right + down). The sonar modules we use will interfere with each other if two are ranging at roughly the same time. Having a sonar module you could command to range was therefore worth a look.
So why is not a viable replacement?
Well - It does work OK its just that the Maxbotics modules are better in a few important ways.
1) range the SRF02 is quoted at 6 meters in reality it is only able to do that over a hard surface. Over grass it is less than half that range reliably
2) it seems to be more sensitive to noise (or less sensitive to signal - hard to know which) than the MB1200 series of modules. See the attached graph - The red line is the SRF02 sonar data , green is barometer and blue the commanded altitude. With a bit more filtering the noise could be reduced but this is not seen in an unshielded Maxbotics sonar mounted in the same location. This test included flying the copter in Alt Hold mode up and down over a mound about 2 meters high - this is why the Barometer graph does not follow the sonar. It also means the ground below the sonar was angled at up to 20 degrees. My interpretation of this is that the sensor is just not picking up some of the ultrasonic returns and giving bad range data for this reason.
I have written a SRF02 Library reasonably compatible with the Arducopter code if anyone is interested. When I get the time I will investigate using the SRF02 sonars and this library for obstacle avoidance.
Here is the Library: SRF02.zip
Back to my I2C version of the Maxbotics sonar for now for me