Monday, July 30, 2012

Introducing the BeagleJuice, 2nd Generation: Laptop-Grade Power Management for the BeagleBoard

Last week, I took a trip through some of the battery boards and power management systems we created for the Arduino, BeagleBoard and Amber. The development of the 2nd generation BeagleJuice was inspired mostly by requests for a “standalone Amber backpack”.
image
Sort of…I took a little artistic license with the picture above! The Liquidware Amber power supply and BeagleJuice, 2nd Gen were both built with advanced power management principles in mind.

(Edit: I got a few questions about this - the BeagleJuice, 2nd Gen comes with the standard 5V barrel jack cable to charge any 5V device that fits the jack, like the BeagleBone or PandaBoard. For the adventurous, it's not a huge stretch to wire your own cable to the 2-pin Molex connector...)

The 2nd Generation BeagleJuice is a modern, laptop-grade power supply that implements smart charging technology to manage multiple cells in series to deliver higher charge capacity, as well as high-power output. It’s optimized for 2-cell, 3-cell, and 6-cell configurations to deliver 2800, 4200, or 8400 mAh of capacity.
image
Onboard LEDs provide multiple status readouts as well as charge information. Advanced features can be accessed over I2C pins directly, or via a Zero Insertion Force (ZIF) ribbon connector. Here at the lab, I’ve used the 2nd Gen BeagleJuice as a primary power supply for several BeagleBoard units concurrently – which centralizes the power management system for remote installation clusters. The high-capacity BeagleJuice provides quad 5V outputs via discrete 2-pin Molex connectors.
image
I’ll cover some details on charging cycles in the next blog, but in addition to smart charging and power input management, the heavy-duty power supplies that the BeagleJuice is modeled after also focus on being fault tolerant and providing an added measure of battery preservation. This “safety” logic protects the battery from:
  • over current charge/discharge
  • over temperature charge/discharge
  • over voltage charge/discharge
  • cell charge/discharge imbalances
While no system is perfect, taking these issues into consideration is a big step closer to advanced power management and portable power supplies, useful for hobbyist and embedded prototyping projects with the BeagleBoard alike. Since the BeagleJuice, 2nd Gen comes with 2 5V barrel jacks connectors, it can actually power the PandaBoard and Arduino, as well as my phone with a custom-spliced USB connector. Here’s a quick shot of the new BeagleJuice in action:
This is Part 2 of 3 on portable power management for prototyping embedded systems. The next post will walk through some of the charging algorithms and explain some of the complexity around charge management ICs - justin dot huynh at liquidware dot com

6 comments:

cladden said...

Very cool. The led fuel gauge could be lit up by a light pipe for external case viewing.

Andre said...

What voltage does the i²c bus operate on? Can this also be used in combination with a raspberry pi?

Justin said...

Great question, Andre. The I2C bus is configurable. Bring your own voltage into the Vext pin. The range is 1.8V to 3.3V.

Any I2C host board could work with the battery. Currently, we have the driver coded for Android/Linux/OMAP, but it could be hacked to anything that talks I2C.

In terms of simply power supply, the 2-pin molex connectors output 5V at up to 5A, and I'm splicing my own microUSB wires on, as you see in the video.

Mike Gionfriddo said...

I tortured my BJ2 with some 5A spikes, and it is still working perfectly.

Andre said...

Looking at the documentation ( http://elinux.org/RPi_Low-level_peripherals ) the GPIO pins operate at 3.3 Volt. In Alternative Configuration 0, some of these pins are the I²C Bus. I assume the will also be operating at 3.3 Volt.

Justin said...

Andre, a few other people were asking the same thing, so I got a diagram together and posted it up here:

http://antipastohw.blogspot.com/2012/08/3-useful-things-to-know-about.html

Hope this helps!
Justin