[BeagleBoard] Beagle Battery Prototype

Prototype assembled and tested

I have designed these 12 beagleboard battery prototypes. I have assembled one, and it actually has only a few small errors; none of which need rerouting. It actually works well, and i wrote a small code in C++ for the processor. You just wire up this board to your BeagleBoard with USB, and it will power it, and tell it the battery status and temperature through serial like so:
[0,0,85,87,24] which is in [%,%,%,%,Celcius].
The four charging circuits also work fine, i am currently testing them and seem to work (now making some graphs).

This board has been to the stratosphere

This board was made for the Space Camera Live 1 project. In that project, it succesfully powered a beagleboard for over 10 hours, with half the battery left. It worked great and reliably.

I have 12 but only need 2

So i have 10 spare. If you want one, sure. One PCB is $5, shipping all over the world (envellope) is $2. So paypal me (timbobel@gmail.com) $7 or €5, include your adress and it’s on it’s way for you to solder. I’ll give you a BOM (schematics are in my other post about the beagleboard battery). In this way i make a $2 profit, so thanks for the coffee/beer!

Module in the light. PCB is 1.6mm thick. Weight: 30g.

Parts & Prices

All parts i used are pretty standard and cheap, except for the regulator. The regulator is a Picto TLynx DC/DC module that has very low ripple, very high efficiency (~95%) and can pump 6A. 6A at 5V means it can deliver 30W (!). That part is the most expensive and costs $13. One lipo chargerchip is $1, the processor and FTDI ~$6, and the rest (LED’s and resistors) costs next to nothing. The PCB itself costs $3.Total cost of the module ~$25.
And then you have to assemble it too. It is super-super easy with just a heatgun. I bought a cheap one last week, and i did it well in one go using solder paste (see video). Almost no solder bridges.

Bottom Assembled

Top Assmbled

Soldering the beast

Here is the video i did last night, takes 2 minutes, at 50x speed. That means i was busy a total of 100minutes (of which at least half was troubleshooting).

Errorlist

All errors are actually very minor, and do not inflict the function whatso-ever. Miracle!

The RGB statusleds are reversed: they have common anode – i assumed common cathode. Solved: using just one led and place it in reverse (easy but no RGB 🙁 ).

The ISP reset signal goes through a capacitor. Should go around this capacitor. Solved: short this capacitor the first time when burning bootloader on the processor.

The 22k pullup resistor on the ON/OFF signal from the V.reg should not be there. Solved: just leave it unsoldered.

The headers for the battery are spaced 2mm apart, should be 1mil. Solved: A normal 1mil header fits anyway.

When measuring voltage if switch is set to lipo, the first battery is measured fine, but the second one in series it measures including the first one. Solved: in the c++ program, just subtract the 2nd signal from the first one; like; 8.1V-4.0V=4.1V .

Stacked under a BeagleBoard, enough to power the BeagleBoard (at 1Watt) for 48 hours.

Charging test

This is a test i measured with the output of the module itself when it was charging one battery. It took a few hours to get from ~30% to 100%. You can see it nicely stopped charging at 100% (=4200mV). You can see the temperature of the regulator rising a bit during the high charge part in the middle, and rising again when it was done charging. I am not sure why that is exactly, but it’s nothing to worry about.

Battery duration test

I hooked up the module to the beagleboard, powering it for 10 hours when it still had not yet used half the juice (see above picture). The beagleboard was running though remote desktop, with which i let it use 100% of the CPU. As you can see, to my delight, the batteryboard did not get above 37 degrees, which means that the board runs very very efficiently (the temp sensor is right next to the voltage regulator).

Duration test: 6000mAh from 80% to 40% in 10 hours on full 100% CPU

Discharge profile with small batteries

More charge tests

With lipo’s, charging is difficult and important. Thats why i test it now. The board can charge up to four independant batteries at max 500mA per battery. So i charged two 6000mAh batteries, and one 1000mAh battery. As you can see, the temperature remains fairly cold while even giving the batteries a total of 1500mAh.

Charging three batteries at once

First batch to testers

I sent you a PCB: how do you assemble it?

Assembly was fairly easy, since i had the right tools. I bought a $100 hot air solder gun, and used solder paste. How to use that, check out youtube. Then, even soldering the tiniest of tiniest is super easy and VERY fast. I recommend the experience to all engineers and enthusiasts.

Using the little processor on board for battery monitoring

Also, this module has got a processor, the atmega 328P. I wrote a program for it in C++, it reads the battery voltages, shows it through the LEDs and gives it back to your beagleboard though USB. The only thing you have to do to get that to work is burning the arduino bootloader on the processor using the ISP header on the board. For that, you need a parellel processor, tiny isp, etc etc. These are very common. Burning the bootloader itself you can do with just one click through the Arduino IDE software.

More to come during the week…

All small components are "1206" size

Green part is for battery-usb monitoring (sends battery info through USB) this is not neccesary for the unit to work at all. 2 is voltage regulation, 3 is battery charging stuff. You dont need to solder all four chargers; 2 minimum.

How to burn the bootloader on the chip (using f.e. Sparkfun's Pocket AVR programmer; very easy).

hi
I have seen your projects, you are very crazy and very intelligent. Good work!
well, I have a begaleboard XM , I need portable power supply, Can I try your battery prototipe? I buy one or two modules (complete !).

But maybe thath a little problem.
In the picture I note that you power supply your beagleboard by USB OTG.
I already make sure that is not sufficient this power, It ‘s necesarry power by 5 Volt (with 800 mA capability)

Hi Gionvanni !Thanks for the interest, but i do not manufacture them assembled. Do note that my BeagleBattery powersupply regulates power up to 6A (6000mA!) on 5V. And the usb input can indeed take up more power than you state. Though, it can not supply more in turn itself.

I just finished soldering everything and I run into a problem with the regulation circuit. I’m providing 5.1V as DC input to the BeagleBattery via the input mini usb connector but I get 0V out of the dc-dc converter. When I measure the voltage right after the diode (aka the converter input) it starts at around 0.7V and slowly goes up up to 1.1V and stays there. Do you have a clue on what the problem might be? (I left the 22k resistor unsoldered as you suggested)

Hm.. Okay.. do note tha tone side of the board is for input (the one with the DC jack) and the other is for output (one with the 3 connectors). Well.. it could be, i had that, that the voltage regulator (which is pretty hard to solder) is not soldered on it well enough. Otherwise, if you solder every part as you see in the pictures i guess it should be fine. Or, maybe, there is a short somewhere?

Hi Tim.
Why are you using 22k resistors next to the top red led (for first battery) instead of 10k resistors as you do for the others?
How did it go with SpaceCamera, you launched it today Sunday right?
Best!
German

I’m making good progress with the BeagleBattery, still in the process of soldering the components. I have a question the ISP programming of the ATmega 328p. It’s about the cap that needs to be shorted. By shorting you mean just bridging the two pads of the capacitor that you indicate with a simple wire and then replacing this wire with the cap after the chip has been programmed?
I’ll use avrdude for the programming, which lines did you use for the programming (I’m interested about how to se the fuses)? And which Arduino bootloader did you use?
Best!! (thanks a lot for the help)
German

Hi German. Great to see that you are still on it. At least I am heaving a lot of pleasure from it. I have been able to power my beagleboard plus 4 perhipials on USB for >> 10 hours yesterday on two lipo’s. Now i just put it on charge, i like it a lot (though still you might as well get a laptop :). Anyway, i just put the arduino bootloader on it. When putting the boatloader on there you have to bridge the capactor=shorting it. Indeed, just make sure the capacitor is shortcircuited. I actually did that by hand – pressing “load bootloader” on the computer, and keeping my hands very steady shorting the capacitor for the next minute. After that you’ll never have to do that again. From that moment on, you can just use your USB connection to load your new programs on it. Bootloading the bootloader is easiest with the Arduino IDE, but you do need an AVR programmer, or, use another arduino with a bit of hacking. At least, you have to wire up the ISP header and use that for bootloading (after that you’ll never need those pins again). Personally i use this one http://www.sparkfun.com/products/9825, cheap and easy.

yeah that could work well, and then it’d be a good idea to hook up the supercap. too (http://nl.farnell.com/jsp/search/productdetail.jsp?sku=9692720). You can actually use any solar cell that is from 3V up to 6V per solar cell. Then dont put it on charge, and guaranteed that that will work (if there is enough sun).

I need to ask some questions about the components. I believe I’ll do them here one by one so I don’t abuse of your time. First one:
Are you using a resonator with built in cap? If that’s the case what’s the capacitance value?

Yes it is a resonator with build in capacitors. Just take 8MHz or 16MHz (if you take differently you will mess up the baudrates). Also you can choose not to use the capacitor at all, but configure the chip to use its built in resonator, which is pretty cool, but it takes a little programming with the AVR programmer, and its not super reliable as the osc/res are. Anyway, in my experience it doesnt matter what the capacitance is. i use them without and it worked fine. But ofcourse, they recommend 22pf. Sadly though, Farnell (where i bought them) didnt show the capacitance values, so i just took three samples, which i all three tried, and worked. For instance, this one worked fine: http://nl.farnell.com/ael-crystals/c16m000000s004/resonator-sm-16mhz-cv/dp/1448145

Thanks a lot! That made things pretty clear. Here’s my next question. Switches. You have 5 switches in the board correct? 4 of them have 6 pins in 2 rows. The one to switch from ext lipo is a 3 pin switch (only 1 row). Are all these switches on-on? Do you have a reference to the 6 pin switches? (I don’t know where to get them)

Awesome! Thanks for the link. Let me continue with the questions (I’m almost done). You’re using 1206 caps all over except for the the 100uf and 22uf ones, right? Three more questions: what’s the nominal voltage of the caps? Can you provide a reference for the 100uf and 22uf caps (I’m not sure I have the right ones)? What’s with the supercap that you’re leaving out on the board, what should I use there?
Best! Hopefully I’ll be able to assemble the board soon 🙂
German

correct. though i will admit, for troubleshooting i usually ignore the diodes and fuses. doublecheck my footprint, i always flip leds & diodes. Actually i had a batch of SMD leds that was produced the wrong way around (ebay.. ) so i had to desolder them again 🙂 but that wasnt a big hassle with a hot air gun; just blow them away.

Great! This is probably the last one Tim (sorry to keep bothering you). With regards to the leds: It seems there’s no common cathode rgb leds for the package size you’re using on the board. Can I just use standard 1206 leds and sold them in a diagonal arrangement as you show in your board?
Will these leds work for every led on the board?http://nl.farnell.com/jsp/search/productdetail.jsp?sku=1466000
(not sure because voltage says 2V)
Thx!!
German

Any 1206 led will do really, you have to check out what resistance they need to be yourself, this can be anywhere between 100ohm and 5kohm. And indeed, the leds are not a great succes, though it works great, you can control them individually if you hook them up as i did on the picture. By the way, its good that you ask these questions, then i only have to write it once =)

There is a switch with which you can choose for power through Lipo’s or power through DC jack (the black switch on the board, see pictures). If you want to turn if off when you’re on lipo’s, just switch it to DC jack mode.