Has anyone come up with a 12V alternative to the standard BrickPi 8 AA battery pack? I’ve been researching this for a few weeks and I haven’t come across anything that is small, light (as in weight), provides 12v and enough mAH to run for 15-30min. I don’t need something that runs for hours and hours, just consistent power for a robot to run autonomously.
I have done a bit of research myself and the hobby industry is the best place for the batteries we need. The 1 above from the robot shop is actually designed for hobby use. The Lipo batteries have pretty good weight to capacity but are mainly designed for very high discharge rates.Most lithium ion don’t put out enough amps for the brickpi and can catch fire if you use them but there is some special designed lithium ion batteries around designed for hobby planes and have very very good weight to capacity like this one http://www.hobbyzone.com.au/Lithium%20Ion,%20FPV it is 3500mha capacity with 10amp discharge in only 150g. Compared to the most expensive top performing 8 x NiMH AA with capacity of 2400mah at 250g.
See the “Batteries and Power” section of BrickPi3 Technical and Design Details for BrickPi3 battery requirements (BrickPi/BrickPi+ has similar requirements). While it is safe to run at 12v, the BrickPi3 (specifically for the sake of Lego motors) should be run at 9v. An 11.1v LiPo battery should work fine, but a 7.4v LiPo should also work well. Lego motors have an internal resettable fuse that will trip before the motor gets too hot, so it’s safe to run at 12v, but 9v is still recommended (since the motors were designed for 9v). Other than for running motors, the BrickPi3 will run safely at up to 14.5v.
When weight is not an issue, I typically use either 8x NiMH rechargeable AA cells (nominally 9.6v), or a 7.2v NiMH RC battery pack (8.4v or 9.6v would also work well). I have run the BrickPi3 and Raspberry Pi (with WiFi) for well over 6 hours on a set of 8 freshly charged NiMH Duracell cells rated at 2500mAh (runtime is subject to motor usage/load).
Although weight is a consideration size and capacity is much more important. The Lithium ion battery that I brought is about half the physical size and 2/3 the weight of the best performing NiMH while having double the watt-hours capacity (3500mah at 11.5v compared to 2400mah at 9.6v )
When trying to drive a fast robot with camera and camera light and also 7" display screen it helps, mind I do get a couple of hours out of the 8xAA NiMH batteries.
@Matt
Is the speed of the motors turning controlled by varying the voltage sent to the motors or is it done by switching a constant voltage on and off quickly?
The reason that I ask is if the speed of the motors is controlled by voltage then this means that I could avoid using high motor speeds when using the 11v LiIon batteries that way I won’t over supply to high a voltage to the motors and risk damage.
While developing the BrickPi3 I did extensive testing with 12v connected to the BrickPi3 running Lego motors (primarily NXT motors, but some with EV3 motors). There were times that the internal PTC re-settable fuse tripped and had to cool off, but I didn’t notice any degradation of the motors over time.
The motor speed/power is controlled with PWM (Pulse Width Modulation, which is switching a constant voltage on and off rapidly). On the BrickPi3, the PWM frequency is 20kHz (fast enough that you can’t hear it “hum”).
Honestly I think the most likely problem would be that the extra torque could cause gears to strip prior to the fuse tripping, but I’ve never had it happen to Lego motors (and I’ve used them a lot). You could limit the PWM to something like 75% to reduce the likely-hood of a mechanical failure, but I’ve never worried about it, and I’ve never had an NXT or EV3 motor fail.
Yes gear stripping is another thing that I am worried about. With everything that I do I tend to take things to the limit so do understand that things always break that there weakest link. Lego is a kids toy and was never designed to be taken as far as some of us adults are developing it to. Mind it is good to hear that you haven’t destroyed a motor yet, I suppose it is only time that will tell for me but I might try not to push the motors too hard as they are my kids toy.
Thanks again Matt for sharing your knowledge with us.
Just to clarify, that “1.5A continuous, with peaks of up to 3A.” is what the on-board 5v regulator is capable of supplying to the 5v rail (with the primary load being the Raspberry Pi and any attached USB devices). Since it’s a switching regulator and not linear, as an example let’s say you are using 10v batteries and the regulator is running at 90% efficiency, so at 1.5A load on the 5v output the batteries only need to be sourcing about 0.83A. Realistically, the RPi3 with WiFi averages less than 500ma draw (based on my testing it was usually about 380-450ma). Using the same 10v batteries at 90% regulator efficiency, that’s only about 280ma from the batteries. The BrickPi3 circuits do use a little power, but it’s an order of magnitude lower than what the RPi uses.
Running motors will be the biggest draw on the batteries. Motors do not run from the 5v regulator, but rather directly from the batteries. To get an idea of how much current the motors will draw, you can take a look at Philo’s motor characteristics page for Lego motor details.
So I am looking at getting a linear actuator that runs on 5v with a max draw of 460mA at stall, if I understand what you said then I can power 2 of these actuators off the 5v GPIO pin as well as the RPi from the BrickPi that has is running off a 11v battery supply?
In theory that should work, but motors are electrically very noisy, so I wouldn’t recommend it. How would you control the linear actuators? Would you add your own H-Bridges? The H-Bridges of the BrickPi are connected to the battery power, not to the 5v supply.
I was looking at these https://www.actuonix.com/L12-R-Linear-Servo-For-Radio-Control-p/l12-r-.htm they operate just like a servo. I was just now learning about servo control and although I could control them by plugging into RPi GPIO pins and creating software PWM meaning that it will need threading to happen parallel and also chews computing power to maintian, I was thinking that easiest way would be to use your PiviotPi please see my other questions on this thread What does the PivotPi do for u?
I see. It looks like those are indeed controlled just like a standard servo, so the PivotPi should work well to control them. The BrickPi3 has an I2C grove port you could use to connect the PivotPi.