Electronic – arduino – Why is GPS module acting strange

arduinodronegpsquad-copter

I am working on a Arduino based quadcopter. The Arduino being used is a Blend Micro. Not shown in the following diagram are 4 infrared sensors, 1 ultrasonic sensor and a 9 axis accelerometer.

Drone Wiring

The issue is that when the propellers are spinning the GPS "freaks out." The fix light flashes randomly as opposed to 1Hz as it does when the motors are not spinning.

If I had to make a guess it would be that the current passing through the snubber diodes does not completely re-enter the respective motors, causing fluctuations in the voltage attached to Vin of the GPS. I do not know if this correct and if it is, I am not entirely sure how to fix it. Perhaps a voltage regulator?

Edit: The GPS module is the "Adafruit Ultimate Gps"

Best Answer

You need, at a minimum, a large amount of bulk decoupling on your power rails. The motor driver is going to be wreaking havoc on your supply rails, and the GPS does not like this.

Better still, use two different rails, one for the motors, and one for the logic (GPS, IMU, MCU, etc). Even though the GPS has (if I read correctly) an onboard 3V3 regulator, you should try to keep your motors as electrically "far away" as possible from everything else.

I doubt you've actually got a 5V battery as your schematic says. If it's a regulator, run the motor driver directly from the battery, and regulate only the logic rails. If it's a battery, adding a regulator should help. If you put a scope on the power supply rails while this thing is running, you will quickly find out if the rails are the problem. If it's not noise from the motor drivers/motors, you might be drawing more current than the battery can provide (and causing the supply to droop).