Answering one point regarding battery packs:
I've had several battery packs with dual outputs. All have allowed both to be used at once. This may or may not help in your case, depending on how much of the output circuitry is common. They can be:
- wired in parallel, sharing everything.
- independent, sharing nothing but the connection to the actual battery (which is hopefully thick enough not to drop much under load).
- something in between, such as common input capacitors
In the first case, using 2 outputs won't help at all. In the 3rd, it probably won't help. In the 2nd it's worth a try. Without opening it up, you can't know what's going on inside, but you can test it. A good sign is if you have a high current and a low current output. I have one with a 1A port and a 2.4A port, and I'd expect a good chance of success running my RPi3 off the 1A port, and the higher load off the other port (which you're probably overloading anyway).
A few further debugging/wiring tips:
- You need to check what's cutting out and resetting the RPi:
- Is it that the input voltage to it's voltage converter drops below the spec? This could mean it cuts out completely, or that the output voltage drops in an uncontrolled way.
- Is the battery pack cutting its output when it detects excessive current draw?
If you have an oscilloscope, you can use that to check the transient voltage at various points. Even a pocket scope is good for this sort of thing. If not, it might be worth wiring an LED and resistor to run off 5V, and connecting that as an indicator. Look for blinking off or dimming at each power connection.
- I suspect you're using an off-the-shelf voltage converter module. The specs on these can be a bit vague especially if they're of the amazon special variety (or even outright lies). OTOH they can serve well in hobby projects after testing
- You're wasting power in your voltage converters, when they're just doing 5V-5V. The output of your battery pack should be just as good as their output. You may be better off without using them for everything.
- Are you starting motors simultaneously? Motors have a startup current far greater than they draw when running steadily. This will lead to a voltage drop in any shared wiring. That voltage drop will be greater if you start more motors simultaneously. Even 1/4 second offset between starting motors would help.
- You're wiring together a bunch of modules. You're probably using quite thin wires. Go bigger for anything in the power path to the motors, and especially in the shared power path.
And one trickier suggestion, largely software-based:
- See whether your motor driver will do a soft start (at the expense of initial torque). It can do PWM, so you may be able to ramp the PWM to do a software-based soft start, reducing the startup current and spreading it over a longer period. You'll probably want some decent size capacitors on the input to the motor driver board, quite possibly an LC filter taking into account your PWM frequency.