My compass decreases its reading as much as 90 degress with take-off motor power (high current).  It does this both on an APM 2.5 and an APM1 board.  I've moved the APM board to the secnd deck in the stack and the deviation is only 10 degress, but stll present.  I've been testing with nothing connected to the APM but a RX to try to isolate the problem. 

I have a stock 3DR-A frame with 880kv motos and a Attoilot 90A current sensor.  Stock 3DR power distribution board.

Obviously this is an issue with just my set up.   Could it be a bad power distribution board?  Current draw seems to be as expected (~28A in hover).  Can the placement of the Auttopilot current sensor cause a mag field that can affect the APM's magnetometer? 

Has anybody seen this issue before?

Views: 4935

Reply to This

Replies to This Discussion

No ideas? 

I'm troubleshooting this problem and would like to use the CLI compass test while the motors are running.  Has anyone done this?

Other than that, I'm at a loss as to why my compass deviates with increased motor current.  I'm using all 3DR stock parts, so if it were a design flaw, many would have the issue.  Right? 


Why would you be at a loss? We know about this, there are about 100 threads on the subject. High DC currents make a magnetic field (exactly how your motors spin). The only way to counteract is to increase distance between the offending wires and the mag sensor. Also, twisting the wires together can reduce but not fully eliminate the effect (same reason CAT5 cable has twisted pairs). Magnetic field decreases (squared) by distance. Thus, moving a wire a 1/2 inch has a major effect. Moving it an inch can nearly reduce the field to nothing.

No, you cannot "shield" the APM either, somebody tried that and obviously it didn't work. The equivalent of blocking all light to a light sensor.

Again. moving the High current wires (not the signal wires) will make a difference. When you added the current sensor, you changed the high current wiring path and thus that's what is causing the inteference. This isn't a design flaw in the APM, it's the way you built the machine.

Sorry if I come off as harsh, just trying to get the point across. If the magnetometer can sense field stregth of the earth to determine orientation, it most certainly can detect the current of 4 motors running through a single wire. Remember the current is additive at the battery wires to the power distro board, so if one motor draws 8 Amps, then times 4 that's 32 AMps minimally to hover (very conservative numbers). 32 Amps is more than enough power to be stronger than the earth's magnetic field over a short distance. Just move the current sensor and fat wiring either lower to below the bottom plate, or far left or right away from the magenetometer and avoid any loops in those high current wires. 

Or this thread by moving the magnetometer (you would have to move the APM since it's onboard)


Vernon - Yea, harsh.  I should have asked my question in a more concise way - my apologies.  

I have a 3DR PDB and an Attopilot current/voltage sensor.  How do folks hook them up to ensure the combination (if that is the issue) does not affect the magnetometer?   There must be hundreds or even thousands of this set up out there and there's not much to get wrong.  I kept the fat wires as short as possible.  Should they be long and twisted?

I have indeed read many, many threads (including the ones Vernon cites), but have found none that address this issue.     The best approach may be to move the APM further away from the PDB, but that's not the way 3DR says to build the copter so there must be another approach.   

I'll figure it out.  I know what needs to be done to troubleshoot the issue.   Just trying to save some time by asking the community.  

Somewhere, someone will have a graduate study based on this subject.

There is modelling software for mag field analysis. I have the AttoPilot sensor but its location is very close to the battery. The battery is at the bottom of the quad.

On the other hand, I run an arming harness from the +DC Main to the top deck and back down to the PDB

That lead almost certainly affects the mag sensor but I have'nt paid any attention to the issue.

I work on MRI systems. Mag fields and I are very familiar. It is possible to attenuate the field affects by shimming with high mu steel, but in the case of an aircraft, it would only add weight. Not a desirable situation.

Ships actually used wiring and power supplies to null out the residual fields of all the steel in them. I guess the killer solution is a variable supply that would null out the motor wiring fields actively.

That solution is certainly a graduate level project.


My answer was and still is the same as Doug's, move the current sensor to the bottom near the battery to keep all high current wiring as far away from the APM as possible.

"I have the AttoPilot sensor but its location is very close to the battery. The battery is at the bottom of the quad"


That said, I get too what you are asking about "how to test". You mentioned the CLI but honestly, that's not going to tell you anything. What you need are 4 custom props with basically blades with 90 pitch such that they provide no axial thrust but give the same torque load as a regular blade, then monitor the sensors via connection to mission planner and ramp up the motors to watch the mag reading. You won't get an answer with no props because it won't be the same current and thus mag fields. Props on sounds dangerous, but is possible. Centrifugal impellors would be the safest load representing real life conditions.

I doubt theres a huge difference between props on and off....If your equipment is putting out that much noise,it's going to be putting out noise even without the prop load. Also are you detecting this with the quad still on the ground but with props on? If you are then take them off and go 25 to 50% throttle.  It would be easy enough find out if it's detectible without the props, just try it both ways. Twisting the wires wont help you....That works to reduce interference in cables by using 2 twisted cables instead of 1. That way any interference is picked up out of phase for each wire so when they combine back into 1 at the end the difference in the phase of the interference cancels each other out.

The APM2.5 allows you to use an external Magnetometer which you could mount farther away from the source of the interference. Other then that,  Look at your quad. Does it have hollow arms? If so your could route the wires inside of them on there way to the motor. Also it is most likely your power wires and your wires from the ESC to the motors that are causing the problem. Are those wires routed separately? If you cannot run the those wires through the arms, then run them under the arms so that the arms act as a shield.

Also if none of that helps, are you using low grade motors or ESC's? Cheap equipment "can" be more noisy. Your best best may be using an external Mag if you have an APM2.5 You said there was a huge difference by moving the APM..... Well you can move it allot farther if it's a separate unit

Hey Will, thanks for thinking about my situation.    I’ve been busy with other things (family related) and haven’t made much progress finding the source of magnetic interference at high power.    In answer to your questions, I’m using all stock 3DR parts – 880kv motors and 20A ESCs purchased from 3DR.  I’ve powered up only one motor at a time and the problem exists with all single motor/ESC combinations.   And the motor wires are feed through the arms, as you suggest.  By The Way, I have a good test jig that has arm tie downs so I can power up the quad in my office allowing different set-ups and configurations to be tried out, under full power with props on, anytime.  I even have fences around the props in case a prop lets go at high speed.

My next steps are to remove the AttoPilot 90A current sensor and see if that affects the results.  I may try moving the ESCs further out on the arms but don’t look forward to this because it involves de-soldering and re-soldering (with shrink-warp) all motor wires.  I will then try to move the APM higher up on the stack – maybe by adding another deck.  Finally, I’ll add an external magnetometer.

This all gets me to think about “why me”?  I’m using all stock parts to avoid this kind of issue.  Then I start to think that perhaps many others have this issue and don’t know it.  I mean how many people test the on-board magnetometer with full power to the motors?  Even if I have a bad (as in noisy) ESC or motor or whatever, it’s very frustrating to have to perform this level of troubleshooting with stock parts. 

Oh well, back to my graduate level study project (as Doug calls it)…..

Again I don't think adding the props will increase the interference that much. Also after reading the post again Id bet that the source of the electromagnet field skewing your compass is the motors themselves. (since they create a magnetic field to work, and the stronger the field, the faster they go.

Also a normal compass may help with your trouble shooting.

But if your using stock 3DR motors, ESC, and frame, and putting the APM where they recommend and still getting interference id Email them.

For all I know, the APM may take into account where the mag is without the motors on, and then where it goes when there on and use that to get the right heading. but that is a shot in the dark.

One other thing is follow the instructions when setting up the magnetometer to look up your default value on the net, and go from there.

Success - sort of.

Well, I learned what everyone knew.  I relocated an external 3DR magnetometer to the top plate of the 3DR frame using the APM 2.5’s external I2C connector and it works great (no surprise).  No compass deviation with full throttle and props on. 

I say this is sort of success because I still believe the internal APM magnetometer should have worked in the stock 3DR frame – as it does for thousands of other users.   Makes me wonder how many people have this problem and don’t realize it.

I tried everything I could think of to isolate the source of the interference.  I tried single ESC/motor combinations (maybe one was bad), moved the ESCs out on each arm and shortened the ESC to motor wires as much as possible (maybe the ESC to motor wires were interfering as they exited the arm near the PDB) and a few other ideas.  All with no luck.    The only thing that worked is to use an external compass on the top plate. 

Chris, I couldn’t find wiki instructions on how to hook up an external magnetometer to an APM2.5 and configure the software to use the external device.  I can generate a wiki page if you like.


Now you, at least, have a known good result from which you can compare changes. A+

As you found out, the ESCs would not have contributed to this deviation. +1 with Will on the props also. The outrunner section of the motor is actually a permanent magnet (in effect). The rotating field (that pushes against the static field in the rotor (outrunner) section is made with the wiring coils (driven, of course, by the ESC leads).

The Inverse Square Law  applies to the mag fields of the system so putting any mag sensor as far from the fixed & variable sources is better.

Tis a shame you had to buy another sensor but.. then again the community can benefit from a how-to on adding the external unit.

Oh, I guess moving/removing the AttoPilot didn't help either?


Right - removing the AttoPilot did not help.  I now have it on T60 connectors, so it can be removed at anytime. 

I knew the ESC/motor combination wouldn't help, but I was desperate to find an issue.  Tried everything I could think of that could have remotely been a cause.   Maybe its just proximity to the PDB??  Thats my current working theory.  I did move just the PDB lower (and not the ESCs) and it helped.

Reply to Discussion



Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2018   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service