Sonar Noise Reduction update

 I have read the arducopter manual and also reviewed some of the earlier forum posts and initially moved my sonar sensor (recommended Maxbotix) 3" away from the main electronics but still see too much noise for the sonar to work in Alt Hold properly,  So I did some more research and think the following may be of interest to the group. I certainly hope it allows me to keep the sonar closer to the centre of my copter rather than out on an extended arm and nearer to the motors and props.


I found a simple solution from Maxbotix, that should eliminate the effects of excessive supply noise which can impact the Sonar sensor operation.  Placing a 100 Ohm resistor in series with the V+ line along with a 100uF Electrolytic capacitor (6.3V +/- 20% tolerance) to ground, you create an effective filter for the sensor.  This ensures that almost any noise introduced onto the line is captured and only clean stable power is supplied to the sensor.  See the photo schematic below:




This combined with perhaps a shielded cable as described here may eliminate the need to place the sensor out on a long plastic arm as I have seen mentioned in another forum post and in the Arducopter manual.


The only concern I have is extending the ground plane to the sensor board and whether this may introduce other issues.   For example, normally the signal receiving end ground plane would  be tied to earth,  But in the arducopter this is not possible being a flying platform. 


Anyone care to discuss / comment  the possible side effects of a floating ground between the APM and sensor acting as an antenna of some sorts if both ends are connected? In other words would connecting the signal wire shield to the GND on both the APM and Sonar (As described in the Maxbotics article)  be ok? Note the postive, negative and Analogue signal would be inside the shield. 


I plan to do some experimenting over the next few days and report back my findings.


One other quick question.  How many people run with sensor filters enabled on the  IMU shield (3 in total)? What are the cons if you use the filters?  e.g some sensitivity loss in the detector / sensor?


You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • I have been following this threat with interest, and have placed the filter mod and the shielded cables with the LV EZ0 sonar and MP 1.2.28 mav 1.0.

    How do I graph the sonar signal? Is it "localsnrdb" in "Graph This"? All I see is variable stair stepped signal with motors running with "tuning" checked. I see nothing related to sonar to check when graphing a log.

    Am I correct, to ground the shields on the APM side?
    LOG.AM | новости
  • Hey All,

    So I made the changes today and let me just say "WOW", what a difference, unfortunately the telemetry was not working this avo and the light was fading quick so I did not have time to find the issue which means I don't have any logs to share.


    I do however haves a video to share with a comparison and some pics of what was done...see below;


    You can hear the motors pulsing in the video due to the default settings not being be able to deal with the amount of thrust that is being generated from the 3-blade 9x7 props.







    I covered the shielded cables with some protective cable cover I had left over from my water cooled PC build as I like things to look "nice" (hence the ESC's just above also being covered in black :)

    If you are wondering why the extra cable in the loop on top of the sonar, this is because the sonar is to be mover once the 3 axis camera gimbal shows up...not actually too sure where I will mount it then, probably directly underneath in the centre of the copter as the batteries will be move towards the back to counter balance the weight of the mount and Cannon 5D MK3 camera. I will power the gimbal off it’s own power pack on gimbal as well as a video TX and Turnigy 9x RX which will be controlled by someone else. I will replace the current Turnigy TX & RX with my Aroura 9 TX & RX shortly but I plan to fly via my Saitek X52 pro joystick via the telemetry link and control a “flight camera” (which is a decent 720 line unit) with either my fatshark goggles or one of the thump sticks on the joystick …but I digress


  • Hey All,


    I have run into the same issue with the same sonar mentioned here (no surprise there). At first I  was not getting any readings while in flight (stayed at 20cm) even though it work on the ground. I played around with a few things without much luck until my father was back in the country where he could give some help with his wealth of knowledge seeing he is an electrical and computer engineer and works in robotics R&D.


    A few things that have been pointer out,

    -        firstly the power filter, he strongly recommended not using either 10 or 100 ohm resistor on the +ve line, as it was said earlier in the post you are asking for trouble with voltage drops and the start-up calibration of the sonar. He has recommended a choke with 50 or more turns on it, this will not affect the power and will do a far better job of removing the noise the 10/100 ohm resister is meant to be handling, it may however turn it into an antenna but this will be corrected by the 100uF capacitor. He assumes the reason for the 10/100 ohm resistor is that it very cheap and very small, but noted a 100 turn choke for the small current is not much bigger than the capacitor and only costs about $2 more. The capacitor and choke should both be directly soldered onto the sonar and then a shielded cable attached.

    -        the shielded cable being used needs to be braided copper around each of the internal wires to be effective, using aluminium as a shielding source is not that good, so don’t bother with the cables using it such as USB cables or ipod cables (an to be honest apple equipment is cheap nasty rubbish anyways so their cables are not much better [current iphone 5 cost less than $90 to make] not too many people around that don’t have an apple device with a cable that is coming apart….but I digress). A decent shielded cable will also have the cores twisted as well.

    -        There is no way to put a filter on the signal wire without undue effect on the handling….he said don’t even try this

    -        Using the I2C mod will give the best results as PWM is the only way to go, keep in mind that if the power is unstable you may still get issues.

    -        Solder everything, don’t use plugs or connectors when it comes to passing a signal through, the power is fine but solder the signal cable

    -        Shield the power and signal separately


    Originally I would not get any sonar reading as soon as the motors spin up, this was using an unshielded cable that ran under the ESC’s and parallel to the motor cables. I changed to a crappy shielded cable without any better response, so I move the cable away from the ESC and yet still not any better. It was not until my father looked at the setup and pointed out that the motor cables and ESC were both mount on carbon fibre and so was the sonar mount and that carbon fibre is notorious with carrying EMI, moving the sonar away from the carbon rod fixed the issue immediately, well at least it seemed that way.


    Above about a meter high the sonar starts to spike all over the shop, making Alt hold no good above a meter, the funny thing is it does not seem to do this with the props off (so it could be acoustic/vibrations or still be EMI as the motors have no load on them without the props. I have not yet filtered the power, but the power for the sonar is coming from the APM but its power is supplied from a decent low noises filtered 5amp SBEC, the power for the OSD/RX/FPV are all on separate SBEC’s (yes that’s 4 SBECS in total), the only other things powered by the APM is the GPS/optical flow/telemetry and the SBEC’s are power off 2x 8,400mah high C lipo batteries in parallel so there is plenty of juice and a reasonably stable supply and there are no servos connected. I do however feed the sonar cable up through the middle of my power distribution board and then under the APM before it is connected (although shielded all the way).


    Next step tomorrow is to go down to jaycar and grab a 100+ Turn choke, a capacitor and a high quality braided shielded cables with 2 cores and one with a single core. Dad has recommended running the signal wire on its own and have this go directly to the APM and not go near anything else with this cable, he does not think the power is less likely to be the issue in my setup but worth spending the $6 to make sure.


    The only other thing is to make something that is vibration and acoustic proof to mount the sensor in, or at least reduce both. I noted that in most of the vibration dampened mounts I see have a bolt running through them, does this not defeat the purpose of the dampening material in the first place. Anything with a high density (ie. the bolt) will conduct the vibrations through the dampening material, sure the dampening would help somewhat but most of the vibrations would just traverse the bolt. Would you not be better to simply glue the material to each surface, it’s not like the sonar weighs anything? I am thinking to use some acoustic absorption foam and put the sonar in-between 2 pieces of the foam with around 3 -4cms of excess foam around the edge and the foam on the downward facing part to be level with the sensor array, this would “help” absorb any stray noise coming in as well as work as the vibration dampener, then I could just glue the top side to something with some rubber cement. If it works I will run the same shielding and filter on the Optiflow sensor to be sure it is noise free also.


    If this does not work then I will be ordering my arduino mini tomorrow afternoon, I assume it would still have enough headroom to run the 3dr OSD mod as well?

    Update to come in the next day or so when I have tested the mods.

  • The sonar thing is a problem for me too... i thought i had it all sorted, see my post here

    Here is the before

    3692445282?profile=originaland here is the after

    3692445291?profile=originaland all was looking sweet.

    but now its gone back to worse than before!

    the quad has changed alot since fixing the sonar, its been changed to an octoquad with coax motors and ive changed from mystery ESC's to JDrones esc's. but the main system is unchanged. the same Ubec is powering the AMP, all the mounting is the same, with the AMP, Sonar, and all the other accessories.

    My problem is even without the motors running, the readings are bad... real bad! this is raising and lowering the quad from 0.5m to 1m

    3692445534?profile=originalI need to check for a bad connection, but i have soldered all the connections so i dont think thats the problem. vibration cant be an issue because the motors arent running, have even tried with the ESC's removed (powering the APM, RC, and sonar with ubec from a battery and leaving everything else out)

    Ahh that reminds me... ive changed Recievers.. to one with telemetry! and also changed the XBee to 38400 baud.. i wonder if one of these things will have changed anything???

    Changing the Xbee to 38400 was to try and fix a connection issue with the ardustation but didnt change anything, so i will change that back to 56k anyway. and i can try without the receiver and arm using a joystick thru the Xbee. this will rule out both of these or show for sure if there is a problem with one of them!

    Shame im offshore again for another month or so :(

  • Moderator

    Does anyone have online links to the resistors and capacitor mentioned here.

  • It's probably best if I continue my sonar noise research here.

    I also have a BIG problem with sonar noise on my heli that I have been trying to fix.  I have been doing methodical testing to find out what the cause is.  I have the RC filter, heat, and shielded cable on my sonar, but the problem remains.  So I started by shutting down all electrical noise sources and testing, and found that my problem is NOT a result of electrical noise or EM radiation at all.  My problem is 100% related to vibration.

    My final test proves it.  I simply disconnected my sonar from the frame and mounted it on some foam.  I ran the heli with the tail blades installed, but the upper head section removed.  I tested response by moving my hand in and out of the sonar beam.  Then I touched the sonar mount to the frame again, and you can see what happens in this single image.  Not only does the sonar get noisy, but the distance it measures (on average) in inaccurate.

    Sonar Test 7.JPG

  • I have got the sonar to work better with powering (5v) directly from the eksternal bec (not from sonar output at apm). I mesured 4,6 v from sonar output with 5,2v at apm input, I dont now how this sonar power line is constructed inside apm?

  • I have added the 10ohm resister and 100uF cap, shielded cable and extended sonar mount - it is undeniable to me how much of a difference this made for the stability of my quad. Thank you for the great technical post -- this is the kind of stuff that I love!

    The main reason I am posting this is to detail the sonar mount, as it may be of interest to others:


  • Hey guys,


    I don't do 'copters but it looks like while some people have solved many of the problems, a few of you still need some fresh ideas, and I have gotten some mil equipment past "noise" issues in years and decades past. You've got to get your head around a couple of different ideas. Electrical noise, magnetic noise, and mechanical noise.


    1. Electrical noise. Putting a filter on the sonar power supply will keep power line noise from going into the sonar. But if it isn't power line noise, it does you no good. In fact, that 100 Ohm resistor is scary. Remember that when the sonar sends a pulse, it will draw a pretty big current. If that 100uF cap can not supply all the current needed then there will be a pretty big voltage drop on the power sonar's power line. That can adversely affect readings. You probably want a pretty big cap near the sonar, but a small, low ESR cap *right* near the sonar might be a good idea too. And as little R in series as you can get away with. A scope will help you track this and decide if you need it. (Cap type & size.) Come to think of it, it may not even be noise coming in the power line, it might just be voltage drop during transmission. Someone might try the cap alone, without any series R.


    2. Magnetic noise. Y'all are running big and varying current through your ESC's. This creates big and varying magnetic fields. An electrical shield will do *nothing* against a magnetic field. Since you can't get rid of the magnetic field, you need to play it's own game. (This is what twisted pair is for.) With every twist of the wires, the induced voltage is the opposite of the voltage induced in the prior turn. The smaller (physical size, not strength) and closer the magnetic field, the more turns per inch (TPI) you need in your wires to cancel. So, make sure that the power and signal wires to the sonar make 2 or 3 turns per inch (or more) from the Ardu out to the sonar. Evenly spaced. Also, do your best to run those wires perpendicular to any high current wires. Do not run the sonar wires parallel to motor power wires, for example out an arm.


    3. Mechanical noise. The piezo element in the sonar will generate voltage when shaken, just as if a sonar pulse is received. You can reduce sonar vibration not just by putting foam or absorbent material around it, but also by adding mass to it. Just like a an electrical filter -- for example the proposed one for the power supply -- has both R & C (or L and C) components, you put R (foam) between the shaker and your sensor, and you add storage (mass) out with the sensor. If you can double the mass of the sonar device you will have halved the frequency which it can be shaken at. Stick a couple ounces of lead on the back of the sonar...


    The data output can be filtered -- I'm sure that it is in software -- to greatly reduce spikes that are sharper than any realistic acceleration of the airframe might cause. A single spike is not a worry. A series of spikes represents a different value.

  • I'm not using this filter, only a shielded cable and 3 ferrites inline. This is my test for about 5 minutes holding my hexa (with props and motors running) on my room, solid ground and changing some centimeters after 2 minutes, then 1, etc...

    I guess these spikes are normal, right?


This reply was deleted.


Hiroki Tanaka liked Hiroki Tanaka's profile
Oct 13
Derrick Davies liked lisa TDrones's profile
Sep 23