Breve update su Carambola
May 24, 2012 | 4
Minute Read
Avevo promesso un breve update su Carambola, e quindi eccolo qui.
Dico “breve” per il semplice motivo che non ho fatto molti esperimenti fino ad ora: la maggior parte del tempo l’ho infatti spesa per cercare di far funzionare la versione 15B di Erlang sul sistema OpenWRT installato sulla scheda, operazione che posso assicurarvi non è stata completamente banale causa limiti di spazio sulla flash (8 MB sono veramente pochi!) e necessità di patchare la nuova release (sorvolando sui problemi di cross-compilazione con il nuovo Mac che sto usando per lavoro), e per provare i pin GPIO presenti sempre sulla scheda stessa.
Il giudizio complessivo che posso dare ora come ora è il seguente: voto 6.5 in crescendo. Questo perchè:
- lato connettività, direi che non ci sono particolari problemi: non ho provato le porte wired, se non per fare aggiornamento del sistema, ma con la connessione WiFi ho creato addirittura reti ad-hoc senza nessun problema (se non capire bene che parametri inserire nei file di configurazione). Certo, i chip scaldano abbastanza… sarebbe interessante capire se spegnendo la wireless scalda di meno, dato che magari in un contesto in cui si tiene la scheda collegata ad un router per far girare qualcosa tipo torrent o un mini-serverino (VPN et al.), potrebbe essere una possibilità concreta (in fondo sono gli usi tipici che si fanno con router riprogrammabili con OpenWRT, e ricordo che la Carambola ha di fatto un set hardware di quel tipo)
- lato connettività hardware (GPIO, SPI, I2C etc), scarseggiamo discretamente: far funzionare i GPIO è in realtà piuttosto semplice (la modalità più facile è leggendo e scrivendo il device /dev/gpio), ma abilitarli non è facile e/o chiarissimo, dato che il chip RT3050 ha i pin che possono funzionare secondo diverse modalità; esistono alcune guide sulla Wiki o sul forum, ed un tool che è necessario scaricare per scrivere alcuni valori nei registri del microprocessore, ma la cosa resta non banale. Con SPI e I2C sembrano esserci un po’ di ritardi lato software, non è chiarissimo se le cose funzionano o meno: in particolare, con SPI pare che le velocità siano discretamente lente. Le cose non vanno meglio con le USB, dove pare che l’hub integrato nella devboard non riesca a reggere benissimo ad alcuni picchi di potenza; pare in realtà che il problema si risolva usando uno hub esterno, il che se risolvesse il problema sarebbe decisamente interessante, vedi punto successivo; non ho ancora testato questa ultima soluzione, ma mi ripropongo di farlo al più presto
- lo spazio su disco è veramente poco (almeno, per i miei usi): chiaramente, la memoria flash interna viene usata solo per installare i programmi, ma ce ne stanno veramente pochi; per questo, sarebbe molto importante far funzionare la presa USB, anche come repository per applicazioni tipo server Web/FTP/p2p, magari collegando addirittura hard disk esterni (meglio se anche alimentati esternamente, penso)
- recentemente gli sviluppatori hanno rilasciato una 2.0 del software: l’ho scoperto oggi, ho ricompilato mezzo mondo ed ora ho un’immagine pronta da testare, vedremo se ci sono stati dei benefici…
Ora, ho scritto “in crescendo” perchè alcuni dei problemi riportati qui sopra si stanno risolvendo (anche se mooolto lentamente) soprattutto sui forum, dove se non altro gli sviluppatori hw/sw intervengono spesso e volentieri per aiutare gli utenti, ed il forum stesso inizia ad essere un po’ più frequentato rispetto a qualche mese fa; resta comunque un device utile all’interno di un progetto che seguo nell’ambito del mio dottorato, quindi continuerò ad usarlo e non appena ho qualche statistica ed opinione più ampia non esiterò a pubblicarla (ad un certo punto spero infatti di raggiungere una release stabile del software di cui ho bisogno, così da potermi concentrare nell’uso della scheda invece che nell’uso della sua toolchain di compilazione!).
Peraltro, sto giusto pensando di acquistarne una seconda “ad uso privato”, con tanto di scatola, da usare a casa come piccolo database per salvare dati da sensori…