main index Le mie pagine sulla Beagleboard cominciano qui!

Le ultime notizie sono invece contenute nel blog.


Premessa importante

La confezione della Beagleboard contiene solo la board. Niente cavi, niente accessori, niente di niente. Tutta la documentazione si trova sul sito ufficiale Beagleboard (naturalmente in inglese) e sul googlegroup Beagleboard; un paio di ricche fonti di informazioni sono la pagina apposita di ELinux ed il wiki Beagleboard validation.

Per domande e chiarimenti rinvio a loro, che sono assai più numerosi e preparati di me. In queste pagine mi limito a presentare alcune mie impressioni, che ovviamente non posso garantire come esattissime (sto imparando anch'io!).


Primo problema: il cavetto

Per cominciare, l'unica cosa che serve è un cavo da USB normale a USB mini-B (maggiori informazioni nel Beagleboard System Reference Manual). Questo tipo di cavo ha cinque "poli" dal lato "mini"; tale lato "mini" del connettore (la parte metallica) è largo 6,8mm ed alto 3mm (dunque non è il cavetto con cui ricaricavo la batteria del telefonino).

Per mia fortuna avevo il cavetto del mouse bluetooth (utilizzato solo per ricaricarne le batterie) che era esattamente di quel tipo: infatti ha funzionato subito. Non ho idea di dove si può comprarne uno senza sbagliare. Chi non riesce a procurarsene uno, può sempre alimentare la Beagleboard con un alimentatore stabilizzato da 5V e usare la porta seriale RS232.
Attenzione: un tizio che ha usato un alimentatore non stabilizzato da 5V ha fritto alcuni componenti essenziali della Beagleboard e si sta ancora mordendo i gomiti per la sventurata idea.

Con quel solo cavetto "USB-miniAB" si ottiene il duplice risultato di alimentare la Beagleboard e di avere un canale seriale USB col quale accedere "come da terminale" alla board (magico!!) Per maggiori informazioni rinvio ovviamente alla documentazione di cui sopra ed al Beagleboard Reference Manual (PDF zeppo di foto e notizie, vale la pena sfogliarlo per bene!).


Anzitutto ho provato col mio Apple Powerbook. Collego ad una delle sue porte USB il cavetto con la Beagleboard collegata dal lato "mini" del cavetto: sulla Beagleboard si accende uno dei quattro LED (quello del Power-On) e poi gli altri... è festa!

Il Mac OS X riconosce la Beagleboard come /dev/tty.modem000001 (vorrei prendere a calci i programmatori Apple che hanno trovato un nome così geniale e così pieno di zeri).

Nota: per qualche misterioso motivo, da mesi non me la riconosce più (provato con tre cavetti diversi e su entrambe le porte USB). Soliti "miracoli" della Apple. Sono stato costretto ad agganciare la Beagleboard ad un computer con Linux.

Non avendo un emulatore di terminale, lancio l'environment della scheda Arduino (che un emulatore ce l'ha) e... magico! Era già settata a 115200, e si vedono le ultime stringhe dell'u-Boot (la Beagleboard, quando fa il boot, manda su seriale il log di quello che succede - e se oltre alla seriale USB c'è anche la seriale RS232, allora lo manda pure lì: il contatore dei dieci secondi mostra 7 6 5 4 3... e poi i messaggi dove si lamenta che non trova nessun sistema operativo né sulla NAND flash memory né sullo slot SD; se la SD è inserita, a quel punto si può sempre dare il comando boot per avviare Linux da lì).

Si può anche utilizzare da terminale il comando screen /dev/tty.modem000001 (se la Beagleboard non è stata riconosciuta allora non si può usare né screen né il terminalino di servizio dell'ambiente della Arduino).

Scopro una cosa fastidiosa: che premere il tasto di reset della Beagleboard equivale a staccare e riattaccare il filo (per cui il software si lamenta che la porta seriale USB della Beagleboard non esiste più... per poi ritrovarla qualche momento dopo). Non è un problema gravissimo (e temo che sarà difficile o costoso riprogettare l'hardware della Beagleboard per aggirarlo).


Passo dunque al mio tablet PC con Linux Ubuntu 8.10: anche qui, collegando la Beagleboard alla USB, si accendono i LED (è festa come prima!).

Una rapida occhiata al dmesg rivela che la Beagleboard viene vista come /dev/ttyACM0 - utilizza cioè il driver cdc_acm (presente di default sul kernel Linux della Ubuntu e di chissà quante altre distribuzioni Linux).

Lancio minicom -s da una finestra terminale, scelgo come porta seriale /dev/ttyACM0 a 115200 baud 8/N/1 e... funziona come prima e più di prima. Premendo qualche tasto sulla tastiera agganciata al tablet vedo il prompt del boot della Beagleboard:
OMAP3 beagleboard.org #

Qui batto "help" e poi invio e vedo una lunga sfilza di comandi (sono quelli dell'uBoot, il bootmanager di default).

Anche da Linux c'è il fastidioso problemino della ttyACM0 che "svanisce" (facendo inorridire il minicom) quando si resetta col tastino di reset della Beagleboard (quello accanto al tastino "user") oppure quando si dà da quel prompt il comando reset seguito dal tasto Invio.

L'ho tenuta accesa un quarto d'ora per vedere quanto scalda: processore (OMAP3530) e memoria RAM e flash sono sovrapposti (i due chip sono saldati l'uno sull'altro a una distanza ravvicinatissima!). Scaldano ragionevolmente poco (ci si può tenere il dito sopra senza provare troppo fastidio); gli altri fanno ancor meno calore.

Nota: nei giorni successivi scoprirò che con Linux scalda meno (poiché Linux, quando non c'è niente da fare - anche se solo per minuscole frazioni di secondo - tiene il processore in idle: consuma meno e scalda meno). Dopo oltre due ore di funzionamento, il processore era appena appena tiepido, e così gli altri chip.

È tardissimo, è ora di andare a nanna, proseguirò domani... non prima di aver dato qualche comando per vedere qualche scritta in più:
...
nboot   - boot from NAND device
nm      - memory modify (constant address)
printenv- print environment variables
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
showvar - print local hushshell variables
sleep   - delay execution for some time
test    - minimal test like /bin/sh
version - print monitor version
OMAP3 beagleboard.org # bdinfo
arch_number = 0x0000060A
env_t       = 0x00000000
boot_params = 0x80000100
DRAM bank   = 0x00000000
-> start    = 0x80000000
-> size     = 0x08000000
DRAM bank   = 0x00000001
-> start    = 0x88000000
-> size     = 0x08000000
baudrate    = 115200 bps
OMAP3 beagleboard.org # coninfo
List of available devices:
serial   80000003 SIO 
usbtty   00000003 .IO stdin stdout stderr 
OMAP3 beagleboard.org # iprobe
Valid chip addresses: 48 49 4A 4B
OMAP3 beagleboard.org # printenv
bootcmd=if mmcinit; then if run loadbootscript; then run bootscript; else if...
bootdelay=10
baudrate=115200
loadaddr=0x80200000
rdaddr=0x81600000
console=ttyS2,115200n8
optargs=
mmcargs=setenv bootargs console=${console} ${optargs} root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait
...


Size comparison (using LEGO minifigs and 2 euro coins)

home page - send e-mail