domenica 14 giugno 2009

Running Beagleboard off 4 AA NiMH batteries

I got my Beagleboard and Pico Projector and am familiarizing with them. I am planning a wearable system (but bought also the DLP because it's just too nice).

First, I ran Beagleboard on four NiMH AA-batteries: it works (1.2V*4 = some 5V without load when fully charged; voltage drops below 4.3V when they are almost fully discharged; I think I can assume that four NiMH won't fry the Beagleboard). I did not yet stress-test them to figure out how much up-time they stand in normal conditions; the ones rated "2300mAh" seem to work more than two hours with video enabled and 100% cpu usage (my "compile fest").

Then, I also tried to run also DLP Pico Projector on the same 4xAA battery pack. Well, it works, but I'll have to think more about it: DLP sucks some 900mA @4.8V (added to some 410mA peak by Beagleboard, it's 1.3 amps drain! No surprise when I tried AA batteries of a different brand and they couldn't stand 1.3A even when fully charged - they claimed a "2700mAh" rating but "mAh" on batteries seems to be more a manufacturer's opinion than a measure).

RS232: I made my own cable; at first it did not work - it worked when I switched TX/RX (actually Beagleboard's RS232 pin 2 must go to pin 3 "PC side RS232" and vice versa: "null modem").

I appreciated the page "Beagleboard validation" and the prebuilt minimal Linux environment, they saved me a lot of headaches. A few minutes after downloading and unpacking Codesourcery 2007q3 I was able to compile on PC and run on Beagleboard a few C-language test programs written by me (and watch latest Star Trek movie on the ceiling using BB+DLP).

I wrote a simple benchmark (some million loops while doing some useless integer math operations and local function calls): using the same "gcc -O3 ..." on all machines, it appears that the 500MHz OMAP3 outperforms a 600MHz-clocked Pentium-M machine and performs like a 450MHz PPC G4 (and I did not yet test the latest gcc coming with Angstrom). Nice beast!

I do not plan to use LCD signals and MMC2, so I can have at any time two SPI, two I2C (one on the expansion connector, the other on the LCD signals), two GPT_PWM, the second UART (rx/tx only), and 8 GPIO lines - I only have to work out a MUX_VAL(...) list. And I'll have to buy some level converters (for example, my Wii Nunchuck talks on 3.3V SDA/SCL).

BBSRM, eLinux pages and a few months of lurking on this mailing list were the best tools to solve problems. I see that most of the questions here are Linux-related issues because there is not yet some "official Beagleboard distribution" containing all of the working stuff (DSP, 3D, i2c/spi/dlp...); the Narcissus stuff was anyways a good solution - I was able to "natively compile" Ruby 1.9.1 on the Beagleboard off my 4 AA NiMH batteries and even use my Nokia bluetooth keyboard.

My 2cents for future Beagleboard releases:

- if possibile, plan some "rectangle-shaped" Beagleboard; a squared Beagleboard is nice, but is not that "wearable" on my belt or wrist <grin>

- put external connectors on two consecutive sides (maybe OTG and 5VDC could stay on the same side of SDHC and EHCI); this will allow easier "boxing" (rev.B had connectors on four sides; rev.C has on three sides but some "spare" space on two of them).

- could "dead" pins of the RS232 connector be used for extra GPIO lines (disabled by default)?

- maybe the LEDs (including power-on LED) could be dismissed (only leave two holes to put in any common LED): after "boxing" the Beagleboard, their light is kind of useless.

4 commenti:

  1. Ciao,
    se voglio stabilizzare la tensione delle batterie come posso fare?

    Mi spiego, vorrei utilizzare delle batterie ricaricabili.. ma non le trova da 5v .... posso stabilizzare la corrente con 7805?

    RispondiElimina
  2. Io sto usando da tempo la Beagleboard solo a batterie (sempre quattro pile stilo NiMH, tensione nominale 1.2V per quattro = 4.8V), anche se per periodi non prolungati (un'ora, un'ora e mezza per volta; le rare volte che mi sono ritrovato le batterie scariche, la Beagleboard si resettava continuamente).

    Il 7805 serve solo se usi un alimentatore esterno non stabilizzato (che dichiara 5V ma appena acceso ne spara per un attimo anche otto). Che io sappia, il 7805 dissipa tutto l'eccesso sotto forma di calore, cioè spreca un sacco di corrente (infatti ho sempre visto alimentatori a 9V per aggeggi che in ingresso avevano quel fatidico 7805, 78HC05, etc).

    La Beagleboard tollera al massimo 5.2V (dopodiché si danneggia irreparabilmente) per cui nell'alimentarla con quattro pile ricaricabili non si corrono rischi (infatti non ho mai visto più di 5.1V sulle mie NiMH anche a vuoto e appena caricate).

    Le pile normali alcaline sono da 1.5V (quindi 6V nominali, quindi fanno danni).

    Sì, esistono batterie ricaricabili da 5V (non so se sia possibile comprarle in Italia), si ricaricano (lentamente) anche da porta USB, ma costano un botto e non sembrano avere grande capacità (leggevo attorno ai 900mAh); le vendono per lo più per "ricaricare iPod".

    Al momento le NiMH ricaricabili mi sembrano la soluzione migliore (anch'io sto pensando ad un sistema portatile che dovrebbe avere tanta autonomia).

    Secondo me l'ideale sarebbe utilizzare una batteria per notebook alla quale collegare un DC-DC converter di quelli che prendono in input fino a 13-14V, consumano poco e restituiscono 5V stabilizzati.

    C'è per esempio questo da Sparkfun (un po' esagerato, visto che regge fino a 6 ampére e nel datasheet comunque diceva che consumava sugli 80mA, se non ricordo male).

    Dicevo che secondo me sarebbe ideale usare una batteria da notebook sia per i costi (relativamente contenuti rispetto alla capacità) che per l'affidabilità (dopotutto sono costruite a livello industriale, per sopportare lo stress dei notebook).


    In realtà il problema dei 5V sulla Beagleboard riguarda solo il fatidico "5V rail", quello che alimenta le porte USB.

    Qualcuno infatti ha fatto un po' di esperimenti e ha visto che se non si usano periferiche su porte USB, si può abbassare la tensione. Lo stesso Coley garantiva che si può abbassare la tensione di alimentazione fino a 3.8V; qualcuno è riuscito ad abbassare fino a 3.6V, al di sotto della quale la Beagleboard non riesce a fare il boot (i 3.6V, più sicuro se 3.8V, sono richiesti sia per la memorycard che per il DVI-framer, che necessitano di 3.3V stabilizzatissimi).

    RispondiElimina
  3. Poche idee e ben confuse...

    Il 7805 non stabilizza la corrente ma la tensione, ovvero entrano sul pin 1 un massimo di 12V ed escono sul pin 3 sempre e solo 5V, il pin 2 e' la massa in comune.

    Il 7805 NON spara un bel niente oltre i suoi 5 volts, 5 volts e solo 5 volts... se escono 8 volts i casi sono 2: o si tratta di un 7808 o si tratta di un 7805 bruciato.

    Il 7805 NON dissipa l'eccesso in calore, in quanto non esiste corrente "in eccesso" si tratta di corrente che transita attraverso il circuito integrato e a causa della caduta di tensione genera calore, maggiore e' l'assorbimento del carico sul pin 3, maggiore e' il calore emesso dal circuito integrato.

    Le sigle 78xx05 stanno a significare diverse caratteristiche rispetto al comune 7805, come contenitore, massima corrente erogabile, massima tensione di ingresso, massima temperatura in assenza di raffreddamento forzato, e tanti tanti altri parametri.

    Non capisco il senso di "alimentatori a 9V per aggeggi che in ingresso avevano quel fatidico 7805", se in ingresso hanno 5 volts come fanno ad erogare 9 volts?

    RispondiElimina
  4. Anche lo Zx Spectrum aveva un 7805 a bordo, a valle dell'alimentatore che dava 9V di output (15 a vuoto).

    Gran parte delle Beagleboard "fritte" lo sono state perché la gente sbagliava alimentatori. Per disperazione, gli autori della Beagleboard hanno messo un adesivo "5V" sul connettore.

    Il costoso DC-DC che ho segnalato (dal sito di Sparkfun) non usa un 7805.

    Sì, ho qui qualche 7805 "un po' cinesino" che per un attimo all'accensione tira fuori più di 5V (quasi 8) e poi funziona normalmente. Lo consideravo già guasto, per cui non l'ho mai usato per la Beagleboard.

    Ho comprato in USA batterie da 5V con uscita USB, ma è inutile sprecarsi, visto che si tratta di comuni batterie NiMH in serie e con un regolatore di tensione ad alta efficienza.

    RispondiElimina