SunRover Part 2 – Solar Power Controller/Power System

Motor Electrical Noise

DC motor electrical noise comes in two flavors: Electromagnetic Interference (Radio Frequency Interference – RFI) and Rail Electrical Noise. Both types of noise can interfere with wireless circuits, and even computers and logic circuits, if not isolated properly. This kind of noise-induced erratic behavior can be very hard to trace and debug. In my case, I could see what was causing it, but how to fix it? That was much harder.

Radio Frequency Interference is radio waves that can couple into other parts of the circuit, causing malfunctions and degradation. If you are using WiFi or Bluetooth for controlling your project, this noise can significantly reduce the usable range. How much RFI is generated by motors? It depends on the type of motor, how you are driving it and the size of the load (i.e., how much current are you supplying to the motor?).

If you are using Pulsed Wave Modulation (PWM), you are sending square waves into the motor, causing the motor to shut on and off many times a second. PWM is how you control the speed of the DC motor in a typical controller design (including SunRover). These square waves may only be at a frequency of, say 200Hz, but square waves contain many strong harmonics extending far above the 200Hz in frequency [3]. The design of the motor will affect the noise dramatically. A small cheap toy DC brushed motor can generate orders of magnitude more noise than a carefully designed but more powerful motor.

How to reduce the RFI noise? Decoupling the motors (as I will describe in this article) will help, but you really need to do two things:

  • Place the motors as far away as possible from sensitive circuits.
  • Provide enough shielding capability to reduce RFI noise. Adding another metal enclosure will provide much better RFI reduction. The metal shell of the SunRover Dagu track unit does provides this additional protection. The shell forms a Faraday cage [4] around the motors, which provides dramatic noise reduction.

SunRover as designed (with the extra metal enclosure) seemed to be sufficiently designed for RFI. I had that part nailed, and I could tell from the way the noise behaved, it was probably not RFI that I was fighting.

I quickly came to the conclusion that I had designed an inadequate power distribution system and poor grounding system. That meant I was coupling what is called Rail Electrical Noise into the equipment bay of SunRover, causing the QPM board and other things to malfunction.

Rail Electrical Noise

Another large source of electrical noise in robots with DC motors comes from the power rails. Because a supply (and the connecting wires for power and ground) has non-zero resistance, the large varying DC motor current flow translates into voltage ripples on both the plus and the ground lines. Understand that the voltage of noise coupled into the power system by DC motors can easily have voltages higher than 3V, which will trip logic gates and cause your circuit to malfunction. This type of electrical noise comes from what are called ground loops. Ground loops [5] are a major source of hum and interference. Ever heard a hum in an audio amplifier or PA setup? It's almost certainly a ground loop.

A ground loop happens when an electrical connection (such as ground) is supposed to be at the same voltage, but the ends are actually at different potentials. This happens because wires do not have zero resistance and, more importantly in our system, the wires do not have zero impedance. (Impedance is similar to resistance but is frequency dependent.) Resistance and impedance are the same at zero frequency (i.e., DC voltage).

When the motors in SunRover turned on or off, they were injecting large amounts of current into the ground, which was then interfering with the digital circuitry. Interestingly enough, wires can have a fairly low resistance, but a high impedance at some frequencies. This problem can cause ground loops that only exist at a specific set of frequencies.

Ground loops also result from multiple paths to ground, some having higher resistance (actually impedance, but let's just focus on resistance at this point), so a complete loop is formed. Ground loops become a problem when one or more signal cables are connected between A and B, to pass data signals from one to the other, where A and B are ground segments, even if connected together.

Although we could decouple the DC motors and cure the RFI issues in the original SunRover design (see the box titled "Best Practices for DC Motor Decoupling"), we could not get rid of the ground loop noise. To solve the ground loop problem, we had to rebuild the equipment bay.

Best Practices for DC Motor Decoupling

The DC motors were introducing significant noise. We cleaned up the "turn on/off electrical noise" with the following good practices for decoupling noise from DC robot motors:

1. Solder decoupling capacitors (one to three 0.1uF ceramic capacitors – NON-POLARIZED!) from one motor terminal to the other. Keep your leads as short as possible (Figure 2).

2. Solder two capacitors (again one to three 0.1uF ceramic capacitors), one from each motor terminal to the motor case.

3. Keep your motor and power leads as short as possible.

4. Route your motor and power wires away from your signal lines.

5. Do place decoupling capacitors (also known as "bypass capacitors") across power and ground near any electronics that you want to isolate from noise. Here you can use electrolytic capacitors and tie the positive lead to the power supply and the negative lead to ground.

6. Use "Star Grounding" wherever possible.

7. Use more and thicker grounding wires than you might initially think.

8. To minimize signal noise and avoid ground loops, ground the shield of shielded signal cables only on one end (thanks to James E.).

9. Add additional filtering capacitors (1000uF and above) across the power terminals.

Figure 2: Decoupling capacitors and ferrite beads on DC motors.

The decoupling of the DC motors cleaned up the "motor turn on electrical noise" from the motors. However, it did not get rid of the "motor turn off electrical noise" problem. That was definitely a ground loop problem.The "turn off" of the motors injects a big spike back into the ground and power supplies, and my inadequate power distribution system, while good enough for the computers, was not good enough for computers plus motors.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Raspberry Pi Geek

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content