Powering Zumo via arduino voltage regulator?

I want to power my Zumo robot via a 2S Lipo battery. Since there is no normal voltage regulator on the shield, is it possible to feed the battery into the arduino power jack but then have the zumo shield logic powered from the arduino 5V and motors from VIN?

Any other ideas on how to power the zumo from a 2S lipo easily?

Reading the description of the Zumo shield, it seems as if it should “just work” to run it off a 2S pack. The motors come straight from the battery, so they may run a bit hotter if you don’t tone it down with PWM control. While it is above 7.45V (fully charged at 8.2V or so) the boost regulator will output approximately the same as Vbat. Once the battery goes below 7.45V, it should output 7.45V. That power powers the Arduino in turn.

I’m actually putting one of these together right now, and that’s what I’m intending to try, so if something goes up in smoke, I’ll probably report back with pictures :slight_smile:

I plugged in a 2S LiPo and it seemed to work fine. At least no smoke yet :slight_smile:

The 1300 mAh 2S LiPo pack I have is slightly too long for the battery compartment, though. Right now, it’s riding on top of the Zumo.

Also, I first followed the chassis instructions to put it together, only to realize when I got to the shield that there’s another set of instructions entirely. The chassis instructions should have 48 point bold red type at the beginning, saying “if you are going to use the Zumo shield, please go there and don’t use these instructions!”

For example, I already had 5" flexible leads soldered to the motors (with female 1x1 housings,) so they are now sticking out the front and bowing back to the top of the shield, where I soldered some 90 degree male headers at an off angle to be able to connect them. Having a solder connection that is “permanent” like the motors going through the mounting holes is somewhat annoying anyway, so maybe this is just for the better :slight_smile: I should shorten the leads to 2" though.

Other small nits:

  • Can you move the area for the SCL/SDA and voltage sensor headers to somewhere it doesn’t interfere with the DIP 328p, in a future spin of the board?
  • The on/off only seems to affect the motors – the direction indicators and other shield peripherals seem to still be powered with it on “off.” For LiPo, this is not great, as you don’t want to draw them down below full discharge.
  • The battery voltage jumper could be a 1:1 divider, to support 2S LiPo voltages. Fully charged, 8.4V through a 1:2 divider ends up as 5.6V, which is slightly too high to feed into an analog input.
    - When a ICSP is attached to the Arduino, it actually just fits, but you can’t remove it after programming without removing the entire Arduino.

Great thanks testing for me! I really want to voltage monitor (being a lipo and all) so I’ll probably mod mine to have a better voltage divider setup.

Looking at the schematics, it may be possible to just remove R11 (or R10) and have a 2:1 divider already.

Hi, jwatte.

Thank you for the feedback!

This is a great suggestion (and mostly an oversight on my part). I have added a warning to a few places in the Zumo chassis user’s guide, though it’s slightly more subtle than the one you suggested.

We tried a bit to do this on the current revision, but there really wasn’t much room for it. Most people probably won’t need to do anything with the I2C pins, anyway, and it’s not too bad to make a solder bridge (probably using a small piece of wire to help out) to enable battery voltage monitoring.

The current setup gives a little more resolution when monitoring the battery voltage in the Zumo’s standard configuration. However, as you noticed, it’s pretty easy to turn it in to a 1/2 divider by knocking off either R10 or R11. Maybe we should add a section to the user’s guide specifically about how to assemble/modify the board for use with a 2S LiPo pack?

I was under the impression that ICSP usage on the Arduino was very rare and typically limited to reflashing the AVR with an Arduino bootloader; most people program it through the USB connector. Do you prefer direct programming of the AVR through ICSP?

- Ben


All the power from the battery terminal should go through the power MOSFET that is controlled by the switch, so there really shouldn’t be any appreciable power flowing from the battery. Is it possible you have some other connections from the battery to some point on the board, or are you separately powering the Arduino? Can you check the current from the battery with a meter?

- Jan

Regarding shield always being “on”:

I am supplying battery power to the “Vbat” connectors 1/4" in from the edge with the reset button, and 1/2" in from the rear edge. That was the easiest place to solder the cables for the Deans connector for the LiPo. The “Charge” port along the rear edge has another Deans, for charging. Looking at the schematic PDF, it seems that “VBat” is slightly different from “VB” so this connection is probably the reason why I’m seeing it "always on."
I imagine that if I move the LiPo in to the long slots intended for the battery cage, it will work as intended. So that’s what happens when I assume things…

A simpler-to-solder battery port on the left of the switch would be convenient, I guess :slight_smile: Also, re-naming “Vbat” to “Vswitched” or “Von” or something would have avoided me assuming things based on labels without reading the schematic, but I don’t blame the designer for not predicting every weird hacker taking up their stuff.

Regarding LiPo modification instructions:

It would be totally convenient if the LiPo modification was already planned out. Then again, that would take away half of the fun of doing it and getting away with it :slight_smile:
It would be convenient if R10/R11 were actually marked in the silk screen, though. As it is, I have to probe around a bit with the multimeter to isolate that pair.

Regarding programing Arduinos:

I vastly prefer the programmer to the serial upload, because it’s faster, and I don’t have to wait for the bootloader when turning on the device. Plus I get another 2 kB of flash, but that’s seldom a problem unless I attach a graphics/LCD display of some sort… Really, the speed is the main reason. I got a programmer to update the bootloader sometime during the beginning of sniffing out Arduinos, and then was hooked! I notice that the 1.0.1 Arduino environment now also makes “upload using programmer” a command right next to “upload using serial,” so perhaps I’m no longer a lone wolf in this!

Thanks for listening, and I think you have a fun little critter here!

If you have any trouble figuring out which resistors are R10 and R11, just let me know and I can post a marked screenshot.

- Ben

I measured the shield, and believe the two resistors closest to the “zum01a” text counting from the SCL jumper are R10/R11. I’ll probably wait for confirmation before I actually de-solder them, though, as I don’t have a solder clamp and thus can’t do “neat and reversible” de-soldering of SMDs. (Well, at least I’ve never succeeded – maybe it’s possible with more practice than I’ve had…)

In other news, I Dremeled out the rear wall of the battery compartment, so it will fit the LiPo now. When the LiPo was riding on top, with 75:1 motors, it started too fast and would flip over. Even ramping from 0 to 200/255 (my max PWM duty cycle for now) over 1/2 second it sometimes got too happy and flipped over! With the LiPo on the bottom, it’s much more stable.

I also added two 10cm digital IR sensors and made it turn away from walls it senses on the front-left/right, with some random turns inserted after some time, and it’s now a neat little “wall hugger” type rover. Those treads are real hair magnets, though, in this house with 3 kids, 2 cats and 1 dog…

The controller and motors run great at 7.8 kHz PWM (clkIO/8), and seemed to run fine at 62.5 kHz PWM as well (clkIO/1), but I backed that down to 7.8 just to be on the safe side.

Final learning (I should have posted this in the other thread, but here goes): The motor controller will over-current if you have beefy de-coupling caps on the motor. The shield already has some de-coupling caps, so they aren’t needed on the motors themselves. I’m putting this out here so that others searching this forum may find it mentioned.
The symptom of an over-currenting controller (too much capacitance) is that it will just “beep” when trying to go, because the over-current protection chops power, then re-engages, then chops power, …

Thanks for all the Zumo info.

Now that you’ve gone to all the trouble to mod the frame for LiPo,
I hope you realize you can get NiMH AA cells with 2500 mAhr capacity,
and probably for cheaper than LiPo. [if you don’t care, well … never
mind, :~)].

Also, in regards motor decoupling, one thing I notice from the Zumo
shield schematic is that there appear to be no caps on the VBAT pin of
the h-bridge. However, most h-bridges will have both 0.1uF and also a
fat electrolytic, 220 uF plus, right at that pin. The ones on the boost
converter may be too far away to be effective, due to trace inductance.

I personally don’t like NiMH much. They charge too slowly, they deliver power too slowly, and they weigh too much for what power they have. Impatient, I am :slight_smile:

I have a number of LiPo packs laying around – using a 1600 mAh 2S pack for the Zumo that I had retired when upgrading another robot to 3S. (Or was that 1300 mAh? I forget. Smaller than 2500, for sure.)

The price difference is pretty insubstantial. The main concern is to make sure that the pack is not physically damaged (needs hard casing) and you only get 300 charges out of it. For better charge lifetime, I like LeFePO4. More robust than LiPo, more lifetime than LiPo or NiMH, and better capacity-per-weight than NiMH.

Your battery preference may of course vary!