Let's Make Robots!

Brushed electric motor interfere with GPS?

On my AGV, I am losing GPS updates when I am in motion, or to be more specific, when I turn the back wheels with the big brushed motor. It is on an Arduino and I know about a potential soft serial and servo library issue, but it doesn't happen if I only turn the steering servo.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

 

A big (1000 uF) cap from BEC power to ground fixed it!

This invalidates some of what I thought I knew. I had another GPS module come in the mail; I needed another one of those cheap Pharos GPS modules that I like so much to match ones in a couple of other units. Anyway, it comes as a USB GPS and I crack it open and solder to the TTL leads. But before I did that, I dropped it in the project box on the AGV right next to the other one, waited until it started pumping data, then powered on the AGV and sent it commands to fire up the motor and data kept right on pumping in. So it isn't the GPS after all (or at least not its capability to receive from sattelites and transmit on serial line); it is serial data being read being read on the Fio that has the problem. I think...

Anyway, I am still going to do the power conditioning caps and twist the motor leads. I di try another test where I continued to power the system with the BEC but had the ESC PWM line disconnected. The reason I did that is that there was a problem with using newsoftserial and servo libraries together and I had to revert to using servo2 to resolve it. So I wanted to make sure there wasn't still some software issue. there wasn't. Hopefully cleaning up pwer from the BEC will do the trick; I really don't want to add an additional voltage regulator if I don't have to.

The best solution would be isolating the powersource of the GPS from the rest of the circuit .

I just tried powering it with a 4.8v NiCad and still get the same symptoms. I am afraid that the motor is generating a serious field of interference. It is a Trinity T-Tech Modified 7.2v racing motor. If I get the kinks out and turn it loose, it will cover ground very quickly.

Then your best chance would be in placing the gps unit as far as possible from the motor, and perhaps do a small Faraday cage around the motor . http://en.wikipedia.org/wiki/Faraday_cage

Motors are a very noisy component. A motor can be modeled as a resistor and an inductor. As you know inductors store energy and brush-less motors tend to spin very fast. Motors produce more back emf the faster they spin. This means brush-less motors could be causing a lot of noise in your circuit and to solve it you would need to build a filter circuit (diodes or caps).

Alternatively it may be that the motors are drawing so much current that they are making the other pins on your micro controller unstable. Does the motor seem to be struggling?

To diagnose the problem we need to know more about your setup. Are you using an ESC? Do you have separate power lines for logic and motors? Are you loosing readings even if the brush-less motor is just free spinning? Can you monitor the voltage on the motor with an oscilloscope to see if you are getting noise (or worst case scenario with a multimeter before and after motor spins)? These are the first things I would check before proceeding. Serial readings are very sensitive to this kind of noise as it throws the timing off. It doesn't seem to be a software problem to me. Hope some of this helps somehow.


More Back emf at
http://www.animations.physics.unsw.edu.au/jw/electricmotors.html

Brushless motors at
http://www.allaboutcircuits.com/vol_2/chpt_13/6.html

* I think you are on the right path with that link, sorry I typed this up before you posted that bottom link before me.

You missed one thing in my first post - it is a brushed motor. There are some details in a blog. I am using an ESC and I am powered by the BEC. I really prefer one big battery if I can get by with it. Maybe that power needs "cleaning". If the motor is struggling, it is struggling  with frustration because it could go a lot faster than I am running it.

My bad thats a really big thing to miss. I was reading about Patrics quadracopters and had brushless in my mind :P Still EMF principle holds though. If possible seperate the power between logic and motors by 1) Using seperate batteries or 2) Using voltage regulator. If not then filer your power lines with diodes and/or capacitors (small ceramic, Tantalum or mylar film ones for high frequency noise and large ones like electrolytic for power surges like when your motor just starts up). That would be what I would do. The link you posted shows a solution I would try. Cheers. 

Maybe an answer:

http://www.stefanv.com/rcstuff/qf200005.html

I will get 3 caps on Monday and give that a try...

That is the correct answer. It will help a lot with the noise. Other advice would be to use a separate voltage regulator for the logic instead of getting power from the BEC inside the ESC. But because you get that noise only when spinning the drive motor, the capacitor filter will be mostly enough. Also, twist the motor power leads, from the motor all the way to the ESC.