USB dropping; power problem?

I have a pretty complex setup in my robot; several Arduinos powered from two 12V7Ah batteries in parallel. The 12V are stabilized by a ATX car power supply. They also power a PC over a 12V to 19V DC-DC converter. The PC is connected to one of the Arduinos over USB, receiving status messages from it, and the Arduinos talk to each other and to the motor controller over i2c. Here's a schematic:

Now my problem is that whenever the robot starts to move the USB connection drops (meaning the Arduino disconnects from and re-connects to the USB stack on the PC). Everything else is still working though, i.e. the i2c connection is still on, it's just the connection to the PC that breaks.

This happens on full batteries which should (according to the data sheet) be able to supply 140A; nothing in my robot pulls more than 10A in sum. Also the power supplies should stabilize out any spikes, and the motors have denoising capacitors (came with them). I'm at a loss here.

Anyone have an idea what I could do?

Thanks a lot in advance!

This sounds like a classic "ground bounce" problem. Look at the loop of current formed by a signal leaving the USB port, travelling to the Arduino, then returning to the USB port (through the Arduino's GND, power supply GND, then PC power supply GND). If that loop of current shares a wire with the loop of current formed by motor power, then you will have ground bounce due to the voltage drop in a wire from high currents.

You should always keep high-current loops separate from information-carrying loops, like the USB port. The motors should really be on their own separate supply, and at those currents, an optically-isolated interface is suggested.

-- Check out our new shield:

@RuggedCircuits: thank you very much, that did it!!! (Of course, now I have to figure out where to put another circuit breaker switch and another charging plug in my robot ::))

@Richard Crowley:

  1. They are lead-gel batteries of the motorscooter type.
  2. My motors pull 2.8A each at maximum efficiency acc. to the data sheet, the PC pulls 1.5A. Since the motors are not going to be running all of the time and not always full speed, I calculate about 3A for them on average, giving 4,5A in sum or 3h of runtime. More would be nice but would require larger-capacity batteries, which using lead-gel would create a weight/space problem and using a different battery technology would create a money problem.
  3. lead-gel batteries have a recommended discharge current of 2C or less (= 14A in my case) but a maximum discharge current of 10C (= 140A). I should have lots of headroom in either case.