SunRover Robot Ground and Power Distribution

SunRover Robot Ground and Power Distribution

What is SunRover?

SunRover is a tracked solar powered robot designed to move around and explore the area while sending back reports, tracking weather, managing a power budget tightly and providing a platform for testing new sensors and equipment as they become available.

SunRover Block Diagram
SunRover Block Diagram

The Block Diagram

The major subsystems are shown to the right.   It takes a lot of thought to put together a good block diagram.  You make a lot of design decisions that might be difficult to change later in the design.   Here is a list of the major system decisions:

  • Use a prebuilt Track and Motor controller system
  • Solar Powered system
  • Solar Panels will be shifted from one subsystem to another according to demand and task set
  • Two major computers:  Raspberry Pi 2 for higher levels of control and an Arduino for power management and turning devices and sensors on and off
  • Dual WiFi communication Paths
  • SunRover control panels using RasPiConnect [ www.milocreek.com]

The Ground and Power Distribution System

SunRover Equipment Bay
SunRover Equipment Bay – Generation 1

The box you see to the right is the 2nd box we are building for SunRover.  The first boxIMG_5740 was too small and did not have an adequate power and ground distribution system.   This system was basically working with the generation 1 box (to the left), but we were still struggling with some motor noise issues that was affecting the equipment bay and interface boards.  We have been adding additional decoupling capacitors around the motors and the affected boards, better improved chassis grounding, and the issue was improved, but still not totally fixed.   The symptoms at the last were you could turn the motors on but when you stopped them, you locked the QPM boards that switched the motor LiPo batteries from stacked to unstacked modes.  A reset of the boards would fix it most of the time, but once out of 3 times you would have to cycle power.   Not a good operating mode.

What is happening?  We think that since the grounding system was inadequate, we were getting a spike into the QPM Boards that would reset them and sometimes throw them into CMOS latch up mode.   This led us to start thinking about ground loops.   Ground loops result from multiple paths to ground, some having higher resistance (actually impedance, but let’s just focus on resistance at this point) in multiple paths to ground where this is not required, so a complete loop is formed.  Ground loops become a problem when one or more signal cables are then connected between A and B, to pass data signals from one to the other.

Best Practices of decoupling DC Motors in Robots

The issue was not the digital signals.   Things looked really good (we run diagnostic routines in the Raspberry Pi) until we started really testing the motor control software.   The DC motors were introducing significant noise.  We cleaned up the “turn on electrical noise” by doing the following good practices on 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
  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” where ever possible

This cleaned up the “turn on electrical noise”.  However, we still had issues with the “motor turn off electrical noise”.   When the motors were shut off (and we used the brake command on the TRex Controller to do this, which just exacerbated the problem) we would lock the QPM boards and we would lose the 12V battery power.

The turn of of the motors injects a big spike back into the ground and power supplies.  Since we had done the above decoupling, we started to think that we had ground loops in the system.  The spike was moving the ground around and sometimes latching up the Quad Power Management boards.   We looked at the grounding system in SunRover and basically concluded that it was inadequate.    We also had under-estimated the size of the electronics in the equipment bay (kept adding more and cooler sensors), so we decided to redo the equipment bay from scratch.

SunRover Equipment Bay Generation 2

We added a solid copper wire along the bottom as shown to the left.   We then connected all the ground terminal blocks (and we putIMG_5756 these all over the place) to this grounding wire using thick gauge wires to reduce resistance.   We then ran the two power supplies (3.3V in green and 5.0V in red) parallel to the grounding wire.

We have now started installing all the hardware of SunRover back in the equipment bay. We are installing all the motor control hardware first and will throughly test the motor and power system before starting to add the rest of the system.   We really did this in reverse order last time (just a few motor tests before adding all the sensors) and we do not want to make that mistake again.

Note that even with the less than perfect power distribution system in generation 1, the Raspberry Pi and Arduino both performed flawlessly.

What’s Next

The picture to the right shows the initial placement of boards in the SunRover equipment bay.  There is an Arduino Due, a RaspberryIMG_5768 Pi2 and the 5 motor battery and solar panel multiplexing control boards (Quad Power Management Boards).

Results of the motor testing later this week.