lunedì , 14 Ottobre 2019
iten
Home » Elettronica » Recensioni » Recensione #3: Raspberry PI per uso professionale

Recensione #3: Raspberry PI per uso professionale

Premessa: come il titolo chiaramente dice, l'obiettivo di questa recensione non è parlare di questo dispositivo embedded in generale. Troverete in giro decine di recensioni, scritte e video, tutorial, guide, ecc. Per un qualunque hobbista, appassionato, studente, ecc, questa scheda merita un punteggio di 10/10. Sì certo, si può sempre trovare di meglio ma a questo prezzo è al momento impossibile. 
Questa recensione è, invece, indirizzata a chi vuole adoperare la Raspberry PI in ambito professionale, magari vendendo decine o centinaia di queste schede (come fa il sottoscritto), personalizzandole e calandole in uno scenario d'uso ben preciso. E per questo motivo mi concentrerò sulle criticità più evidenti che ho sperimentato.

 

È passato un anno da quando questo Single Board Computer (SBC), che molti più semplicemente chiamano micro-PC, fu annunciato e ne cominciò la commercializzazione. Sicuramente è un prodotto che ha rivoluzionato il mondo di questi dispositivi, imponendo nuovi standard e costringendo altri competitor ad inseguire sia sul piano tecnologico sia sul piano del prezzo - leggasi BeagleBone Black. Già perché questo dispositivo embedded, con caratteristiche paragonabili ad un PC di fascia media dei primi anni 2000, viene venduto nella versione base a soli €20 + IVA. Avete letto benissimo: €20+IVA per un computer general purpose. Cosa che negli anni '80 non era pensabile neanche nei sogni più perversi di noi appassionati di informatica. Semplicemente non si poteva fare, ed eravamo anche convinti che non si sarebbe mai potuto fare. Touché.

Il successo mediatico e di mercato di questo prodotto è stato tale che fino ad un paio di mesi fa il suo approvvigionamento è stato alquanto problematico: nei primi mesi di lancio occorrevano anche 3-4 mesi per riuscire ad averla, e sono pochissimi giorni che i due principali distributori riescono a garantire una piena disponibilità a catalogo. E questo perché il modello di commercializzazione di questa scheda è sui generis. Il motivo del prezzo così basso è nel modello di business che c'è dietro - o meglio che non c'è. Infatti, la Raspberry Pi Foundation è una fondazione senza scopo di lucro, con l'unico obiettivo di commercializzare un prodotto che possa portare gli studenti e gli appassionati a riscoprire le origini dell'informatica. La produzione e la commercializzazione è stata affidata ai due principali distributori di materiale elettronico a catalogo, Farnell ed RS, i quali hanno accettato di ridurre al minimo i loro guadagni occupandosi della produzione finale del prodotto. I due hanno scelto indipendentemente dove produrre le schede: Farnell le produce in UK, RS in Cina.

Caratteristiche principali

La Raspberry PI è stato il primo SBC dal costo inferiore ai €30 ad avere un processore ARM-11 a 700 Mhz, e che fornisce una GPU integrata per la parte video. La scheda viene venduta in due varianti: il model A e il model B. Il model B è quello più completo: memoria SDRAM da 512Mb, 2 porte USB, interfaccia Ethernet. Il model A ha una SDRAM da 256Mb, 1 sola porta USB e non ha la parte Ethernet (cosa che la rende molto poco appetibile, secondo me). Nel seguito le caratteristiche principali (fonte: wikipedia).

Model A

Model B

Prezzo di offerta:
€20,63 €28,00
SoC Broadcom BCM2835 (CPU + GPU + DSP + SDRAM)
CPU: 700 MHz ARM1176JZF-S core (famiglia ARM11)
GPU: Broadcom VideoCore IV, OpenGL ES 2.0, 1080p30 H.264 high-profile decode
Memory (SDRAM): 256 Megabytes (condivisa con la GPU) 256 o 512 Megabytes (condivisa con la GPU)
USB 2.0 ports:
1 2 (attraverso un hub USB integrato)
Output video:
Connettore RCA per il video composito, HDMI
Output audio:
3,5 mm jack, HDMI
Memoria:
SD / MMC / SDIO card slot
Collegamenti di rete:
Nessuno Ethernet 10/100 (RJ-45)
Periferiche di basso livello: 2x13 header pins for GPIO, SPI, I²C, UART, +3,3 Volt, +5 Volt
Corrente (potenza) assorbita 300 mA, (1,5 W) 700 mA, (3,5 W)
Alimentazione:
5 V via MicroUSB o GPIO header
Dimensioni: 85,60 mm × 53,98 mm
Sistemi operativi supportati: Debian GNU/Linux, Fedora, Arch Linux e Gentoo

La scheda è progettata per eseguire il software a partire da una SD card esterna, da inserire nell'apposito slot. Sono supportate sia le memory card in versione SD che SDHC. Quindi in teoria sono ben supportate anche memorie da 32 Gb. Tuttavia, come parlerò più avanti, io non ho avuto esperienze felici con memorie SDHC.

Sistemi operativi supportati

È inutile dire che, quando si parla di sistemi embedded, chi la fa da padrone è Linux. Anche se esistono SBC che supportano Windows CE e derivati, oggi il grosso del mercato appartiene a Linux e i suoi derivati (leggasi Android). Quindi per questa scheda troverete molte distribuzioni di Linux dedicate al mondo ARM, tra cui Archlinux (la mia preferita per motivi di ottimizzazione), ma anche Raspbian (una derivata di Debian), Fedora ed Ubuntu.

Stesso dal sito di Raspberry potete scaricare le immagini precompilate e pronte all'uso da caricare sulla memory card, il che vi permette in soli 5 minuti di orologio di essere pronti e produttivi. Tutte queste distribuzioni pacchettizzate vi offrono la stragrande maggioranza dei pacchetti software disponibili per Linux su x86, e quindi con un semplice comando alla shell potrete installare quello di cui avete bisogno. Inoltre, tutte le distribuzioni allegano sempre il cross-compiler richiesto per l'architettura ARM11, il che vi permette molto facilmente di compilare vostri programmi (chi in passato ha dovuto mettere su una crosstool chain sa bene quale sia il vantaggio di avere tutto già bello e pronto). Non ultimo, le altissime performance della scheda permettono di compilare i programmi direttamente dalla scheda stessa, magari su un filesystem NFS condiviso in modo da non stressare la memory card.

Perché scegliere questa scheda per realizzare applicazioni professionali?

La domanda è lecita. E se state leggendo questo articolo probabilmente già avrete delle risposte specifiche al vostro scenario lavorativo. Io proverò a sintetizzare le più ovvie.
Innanzitutto i costi di progettazione. Una scheda come la RPi non è una passeggiata da realizzare. Per queste tipologie di schede uno sbroglio a 4 livelli di segnale è il minimo sindacale (in realtà tipicamente ci si sta). Poi bisognerà leggere con molta attenzione datasheet mastodontici da centinaia se non migliaia di pagine. Fare attenzione ad ogni dettaglio celato. Poi ci sarà il problema di selezionare i componenti di contorno: intere giornate passate sui cataloghi a trovare componenti che rispettino i requisiti tecnici richiesti ma senza spendere €1 per un condensatore X7R. Poi, metteteci che non sempre esistono bootloader pronti all'uso e kernel già configurati, soprattutto considerando quella che sarà la configurazione hardware finale scelta. Infine, sono da mettere in conto quei 3-4 sbrogli, di cui un paio sicuramente vi richiederanno la ridefinizione di gran parte della scheda. Insomma, se non si sono maturate esperienze pregresse con questo tipo di prodotti, la progettazione iniziale costa. E neanche poco.

Altro aspetto di cui tenere conto è l'approvvigionamento componenti. A meno di non sapere con certezza che questa scheda che state realizzando sarà prodotta in miglia di esemplari, cosa che vi permette di negoziare quantità e prezzi direttamente con i produttori, la sola BOM per qualche decina di pezzi di una scheda come la RPi supererà di gran lunga il prezzo della RPi. Per piccole quantità sarete costretti a rivolgervi ai distributori a catalogo, i quali spesso vi fanno pagare delle cifre assurde per dei componenti che sul mercato valgono 1/10 o anche un 1/100 (vi dico solo che su RS e Farnell una porta RJ-45 con trasformatore integrato meno di 5€ non la trovate....). E soprattutto sarete costretti a subire il bello e il cattivo tempo di questi distributori (a volte dei componenti spariscono, e i tempi di approvvigionamento sono di 3-4 mesi!). Per non parlare poi delle immobilizzazioni di capitale per l'acquisto di quei componenti che è possibile acquistare solo a volume.

Infine, dovrete mettere in conto i costi di attrezzaggio. A meno di disporre di una linea di montaggio che vi permetta di montare correttamente componenti BGA e di valutarne la qualità (leggasi macchina per l'ispezione  a raggi X), dovrete rivolgervi ad un service esterno per il montaggio. E i costi di attrezzaggio saranno a dir poco sbalorditivi (specie se lo fate in Italia). E nel conto ci dovete mettere l'elevata difettosità che avrete con i primi montaggi.

Insomma, questo clone della RPi vi è costato 100€ a pezzo se siete fortunati. Certo, se il vostro mercato vi permette di vendere questo prodotto con un ricarico che oscilla tra le 7 e le 10 volte tanto, allora è una strada da percorrere. Altrimenti i conti ve li sarete fatti già da voi.

Vediamo adesso nel dettaglio quali sono i vantaggi di questa scheda nell'uso professionale - paragonata ad altri prodotti - e quali, invece, gli svantaggi.

Pro

Forse l'ho già detto: il prezzo. Non l'ho detto ancora? Il prezzo! €28 per un SBC di questo tipo sono una cifra irraggiungibile per chi non ha la possibilità di produrre schede elettroniche con quel tipo di componenti, e soprattutto con volumi molto alti.

Un altro punto di vantaggio molto forte è la disponibilità di software funzionante, stabile e con aggiornamenti frequentissimi. Il successo planetario della RPi ha fatto si che sono disponibili un gran numero di distribuzioni di linux, e grazie al fatto che Broadcom (il produttore del SoC) si è calata direttamente nel supporto al kernel Linux, i kernel che vengono rilasciati sono molto completi e soprattutto stabili. Ne potete stare certi. Ho alcune decine di queste schede che girano ininterrottamente da mesi, con uptime continuo e nessun strano reboot. È badate che non è poco. Vi faccio un esempio concreto. Questa scheda, come molte altre schede SBC che trovate in giro, usa un controller Ethernet/USB con phyter integrato della SMSC. Su altre schede i driver di questo controller (che non sono rilasciati in pubblico dominio) mi hanno dato grossi problemi di stabilità (kernel oops et simila). Sulla RPi ho avuto problemi zero. La distribuzione che preferisco (ArchlinuxARM) ha aggiornamenti a cadenza giornaliera. Non è poco.

Un altro aspetto importante è che si stanno rendendo disponibili tantissimi accessori hardware certificati. Dongle WI-FI, interfacce bluetooth e webcam sono solo alcuni dei prodotti certificati per questa piattaforma e per cui ci sono driver stabili, funzionanti e completi. E questa è una cosa non banale se avete la necessità di adoperare la RPi in un qualche scenario d'uso più complesso.

Come corollario del punto precedente, vi è una buona disponibilità di case plastici per questa scheda. E questo è un dettaglio non di poco conto. In maniera analoga a quanto espresso nel paragrafo precedente, mettere su uno stampo per realizzare dei case plastici specifici costa, e neanche poco. Quei 15.000 euro vi possono partire per una cosa non di elevata qualità, e ogni qualvolta farete qualche contenitore - a meno di disporre di una macchina per iniezione di plastica - dovrete farne almeno quei 500 pezzi con relativa immobilizzazione di capitale (anche se le cifre non sono molto alte). Per la RPi sono apparsi vari case, alcuni più artigianali (ottenuti fresando al CNC pezzi di plexiglass), altri più belli e completi. Uno fra tutti il case Tek-Berry dell'italianissima Teko. Ve lo consiglio. E sempre per questo case di recente è stata rilasciata anche una comoda piastra VESA.

A livello di componentistica questa scheda ha praticamente tutto. Porta Ethernet, 2 porte USB, uscita audio e composito RCA, uscita HDMI e connettori per display e webcam. Poi ha un certo numero di uscite digitali raggruppati su di un pin-header da 26 PIN. Non sono tanti, ma ci si fanno tante cose. Il connettore GPIO ha anche interfacce SPI e I2C.

E ancora. La RPi viene pre-programmata in fabbrica con un indirizzo MAC reale, appartenente ad un pool di indirizzi comprati dalla Raspberry Foundation.  Quindi non dovrete acquistare pool di indirizzi o prodotti specifici come le EEPROM con MAC address della microchip.

Contro

Mi sarebbe piaciuto dirvi che questa scheda non ha punti negativi, o almeno aspetti critici per chi vuole venderla in volumi per un'applicazione personalizzata. Purtroppo non è così. L'aspetto più critico è la mancanza di una memoria di bordo eMMC integrata. La RPi, infatti, affida la memorizzazione dei dati e del sistema operativo ad una SD Card esterna. E purtroppo questi sono dolori. Le memory card sono tutt'altro che un prodotto affidabile, soprattutto quando si tratta di stare sempre in funzione, con continui accessi in lettura/scrittura. Tutte le memorie allo stato solido hanno dei limiti massimi sui cicli di lettura e scrittura. E le memory card, purtroppo, hanno dei limiti molto bassi. Si possono adottare delle strategie per preservare la durata nel tempo delle memory card per l'uso che se ne fa in questi dispositivi (ne parlerò in un prossimo articolo), ma bisogna essere coscienti che quello è un single point of failure. Certo: esistono le SD  per "uso industriale", ma oltre ad avere un costo fino a 20 volte superiore rispetto ad una memory card normale, sono di difficile approvigionamento, rendono il costo complessivo della soluzione molto più alto, e comunque hanno dei limiti fisici. La scelta della Beaglebone Black di adottare una eMMC di bordo da 2GB è una scelta non da poco: in produzione costa quei 4-5 $ a pezzo, ma il vantaggio che si ottiene è altissimo.
Io poi ho avuto pessime esperienze con le memorie SDHC. Ho provato varie marche e modelli, ma non riesco ad ottenere una longevità significativa. Entro 20-30 gg la memory card si danneggia e va buttata. Ad oggi ho felici esperienze con memory card da 2GB e nello specifico con questo modello della Sandisk, con una longevità superiore all'anno e nessuna esperienza negativa. Probabilmente, c'è qualcosa di connesso con l'assorbimento delle schede SDHC che è superiore a quello delle schede SD. Proverò ancora altri modelli, perché quelle da 2 Gb a breve saranno introvabili, ma io ho pessime esperienze.

Come conseguenza di quanto sopra c'è il fatto che il formato di SD card scelto rende l'ingombro complessivo della scheda alquanto scomodo. I progettisti della RPi hanno, infatti, adottato il formato SD standard, e non il microSD come molti altri fanno. La motivazione ufficiale è che trattandosi di un prodotto destinato a studenti, loro cercavano un meccanismo robusto e pratico per consentire all'utente di poter cambiare e ricambiare molte volte la memory card. Certo, per come è posizionata la SD non c'è dubbio che si può sostituire molto velocemente. Tuttavia mi chiedo: era questo veramente un punto critico? Secondo me no: esistono degli alloggi per microSD con modalità push/pull molto affidabili e pratici, ed hanno la stessa solidità meccanica di un connettore SD. Inoltre, per come è posizionato attualmente il connettore a me sembra molto più soggetto a rotture di un connettore microSD protetto dal PCB stesso. E infine: ma realmente c'è questa esigenza di togliere e mettere centinaia di volte una scheda di memoria? Metteteci che oggi è più facile trovare schede microSD che le SD classiche, e il cerchio si chiude. Insomma, la scelta la reputo infelice.
Purtroppo i vari case plastici che sono stati sviluppati per questa scheda hanno tutti il "difetto" indotto di lasciare la memory card esterna molto ben in vista. E questo pone problemi sia di natura estetica sia di affidabilità di prodotto per un uso professionale. Insomma, questo è un altro punto non banale, secondo me.

Veniamo adesso a punti meno critici, ma pur sempre da tenere in considerazione. Per ridurre i costi di produzione, non è stato installato un circuito RTC con possibilità di mantenimento della data con una batteria tampone. Questo, a seconda della vostra applicazione, potrebbe essere critico. Se il sistema operativo viene fatto salire senza una connessione ad internet, vi apparirà l'ora e data di Epoch (1/1/70). E se ciò è importante per voi, dovrete usare un chip RTC esterno con batteria. Ne esistono di vari modelli, ma dovrete usare un circuito esterno.

Il connettore di alimentazione micro USB è un punto debole. Lo trovo fragile e soggetto a rotture. Un bel jack barrel DC da 5mm sarebbe stato molto più pratico. E soprattutto gli alimentatori di qualità costano molto ma molto meno di uno micro USB (molti casi di instabilità di queste tipologie di dispositivi sono da imputare ad alimentatori non stabili - scegliete sempre un alimentatore che abbia almeno il doppio dell'assorbimento massimo della scheda per evitare che inizi ad oscillare provocando strani reboot, blocchi e danni alla memory card).

Manca un LED utente, ossia un led da usare nella propria applicazione via GPIO. Gli costava 0.03$ metterlo. Veramente non si capisce perché non l'hanno fatto.

NDA Broadcom

Infine un capitolo a parte merita il discorso NDA di Broadcom. Se ne è parlato molto quando questa scheda fu annunciata. La motivazione ufficiale è che Broadcom usa questo SoC in ambito militare. Secondo me, invece, Broadcom adopera quel classico modello di vendita di alcune aziende di componentistica elettronica che, prima di rilasciarti informazioni, vogliono sapere volumi, prospettive di vendita, ordinativi. Qualunque sia la motivazione, sta di fatto che questa scheda non è distribuita con una licenza Open Hardware. Questo è un limite non banale per chi vuole usarla in ambiti professionali. Vediamo perché, secondo me.

Innanzitutto bisogna tenere in conto che questa non è una scheda professionale, ma consumer. La Raspberry Foundation potrebbe decidere di toglierla dal mercato. A quel punto voi che fate? Ci avete costruito su un prodotto, dovete garantire garanzie e longevita dello stesso. Avendo a disposizione i progetti originali potete a quel punto decidere di montarla da voi. I SoC in genere hanno una longevita di 10 anni, ma io dubito che la RPi fra 6-7 anni sia ancora in giro. Potendo accedere ai progetti potreste fare da voi, oppure qualche azienda (cinese?) potrebbe decidere di mettere in commercio il clone. Aspetto non da poco.

Poi potreste pensare di derivare un vostro modello, con feature in meno o in più a seconda delle esigenze. Magari semplicemente cambiare il layout (magari facendo fuori la SD). O magari cambiando forma per adattarla ad un case plastico personalizzato.

E, infine, c'è l'aspetto relativo al know-how. Accedere ai sorgenti significa poter accedere al know-how di un altro. Ed è il bello del movimento Open Hardware. Significa poter capire, farsi un esperienza, crescere. Non è poco.

Per questo, secondo me, altri prodotti come la BeagleBoard che distribuiscono i sorgenti hardware sono da prendere in seria considerazione. Ne riparlerò in seguito.

Conclusioni

Come già detto più volte, la RPi per un uso non professionale è un prodotto che merita 5 stelle a tutti gli effetti. Economico, potente, completo, supportato dal punto di vista software. Ma per un uso professionale, o assoggettabile, ci sono degli aspetti che ne frenano il suo uso. Certo, non sono tutti ostativi, però è bene conoscerli e tenersi pronti per eventualmente prendere delle contromisure.

 


Check Also

Recensione #2: Analizzatore di stati logici Zeroplus LAP-C

Breve recensione dell'analizzatore di stati logici Zeroplus LAP-C, il primo analizzatore di stati logici completo alla portata di tutti!

12 comments

  1. Ciao! Articolo molto interessante (sebbene, per quanto possa saperne io, può essere vecchio, non essendoci la data). Comunque non mi dispiacerebbe sapere in che ambito, tu in particolare, utilizzi il Raspberry professionalmente. Con un gruppo di amici ho idee a riguardo, ma devo dire che la parte dei contro mi ha un po' scoraggiato. Ad ogni modo l'articolo fa prendere coscienza di ciò a cui si va incontro e di ciò con cui si ha a che fare. Devo dedurre che dopo tutti i gli aspetti negativi che hai elencato, dal momento che comunque lo utilizzi professionalmente, un guadagno esiste?

    • Ciao,
      l'unico guadagno è quella di avere una piattaforma low-cost molto ben supportata dal punto di vista software. Non c'è niente di meglio in giro. Purtroppo, ti devo dire che se stai pensando di sviluppare un prodotto consumer, allora valuta attentamente di andare su altro. Gli aspetti critici che ho elencato sono molto seri, e io infatti a breve migrerò su qualcosa di custom con una resistenza maggiore.

  2. Ho visto la data solo ora, mea culpa 🙂

  3. Recensione molto interessante.

    Aggiungerei che tutti gli OS normalmente supportati non sono Real Time, per cui l'eventuale gestione di HW "mission critical" sarebbe quasi impossibile. O no?
    Opinioni sul recente annuncio di Windows 10 sull'ultima versione?

    Grazie in anticipo.

    • Ciao, in realtà esistono versioni di Linux, come RTLinux, o altri OS Real-Time, come eCos, ecc, che sono espressamente progettati per i sistemi real-time. Non ultimo, mettici che i micro a core ARM-*A (A sta per application, la serie di MCU ARM dedicata ai sistemi embedded di fascia alta) sono comunque dei microcontrollori con tutte le funzionalità di un micro embedded puro. In genere, a compromettere un po' le cose c'è la paginazione, ma qua è un argomento complesso.
      In quanto a Windows 10, seguo molto da lontano l'evoluzione del mondo Windows. Resto sempre scettico quando Windows è preso in considerazione per i sistemi embedded, perché è troppo complesso e poco "controllabile" per le applicazioni che tipicamente richiedono di interfacciarsi con l'Hardware.

  4. Ciao Carmine,

    articolo perfetto, conferma alcune impressioni avute da un collega.
    Mi sorge una domanda al volo: ma allora in definitiva BeagleBone è migliore di RPi per utilizzo industriale?

    Saluti
    Enzo

  5. bell'articolo 🙂

    ora domanda da 1000000$ sperando che qualcuno abbia consigli:
    il mio raspberry funziona soltanto se uso sd da 4GB! ne ho provate alcune da 8 e 16 ma nulla non si avvia...
    in pratica ho la mia bella 4gb che uso come base e se la copio (con il solito dd if= ... of= di linux) su altre da 4gb non ho problemi, mentre se la copio su schede da 8 o 16 gb niente da fare, il rasp non parte (eppure la copia è identica)

    a nessuno è capitata sta cosa? suggerimenti?

    grazie ciaoooo

  6. Salve, si potrebbe avere una recensione simile anche per il Raspberry PI 3? Tra qualche giorno provo la microSD Action Camera UHS-I U3 - SDCAC/32GB della Kingston. Inoltre come alimentare vorrei provare quello della Apple USB Model A1357. Ci sono alimentatori industriali di piccole dimensioni facilmente reperibili? Io sto effettuando dei test della Raspberry PI 3 per uso professionale in ambiato Lan stream. Potremmo condividere le informazioni e realizzare un articolo. Saluti, Fabrizio.

  7. Anche se siamo nel 2018 e risale a un vecchio post, devo ammettere che hai fatto un articolo con i fiocchi, mi piacerebbe se esiste qualcosa di professionale al posto di Raspberry.

Rispondi a Enzo Santangelo Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.