Problemi di gioventù per il Raspberry Pi 4
Raspberry Foundation è chiamata a correre ai ripari.
Problemi di gioventù per il Raspberry Pi 4 causano malfunzionamenti con alcuni cavi USB-C.
La Raspberry Pi Foundation ha confermato l’esistenza di questo malfunzionamento direttamente da Eben Upton, una delle menti dietro la creazione della board. Sembrerebbe che il problema sia già stato individuato.
“Gli smart charger identificano erroneamente il Raspberry Pi 4 come un adattatore audio e si rifiutano di fornire energia”.
Questo succede perchè il tipo di cavi denominati “e-marked” contiene un chip che ha la precisa funzione di analizzare la tipologia di dispositivo per vedere se è in grado di ricevere la corretta tensione di alimentazione, o il flusso di dati che intendiamo trasmettere. Detta così, potrebbe sembrare che il cavo sia in grado di controllare la tensione di alimentazione o il flusso dei dati, cosa tecnicamente errata, tuttavia il cavo “e-marked” è comunque richiesto ogniqualvolta ci si trovi in una situazione in cui l’intensità di corrente elettrica (carico) sia di almeno 5A (Ampere) o si abbia una potenza maggiore di 60W (Watt) con trasferimento dati da 5Gb/s o 10Gb/s.
Dettaglio assolutamente da non trascurare quando si affronta questo tipo di problema, è dato dal fatto che lo standard USB-C non supporta in alcun modo l’operazione di estensione del cavo tramite prolunga: quante volte ci siamo trovati nella situazione in cui abbiamo un cavo femmina e un cavo maschio e li mettiamo insieme al fine di avere un cavo più lungo? Moltissime, tuttavia quando parliamo di USB-C questa operazione è assolutamente da evitare.
Attenzione: nel gergo tecnico, per “Non supportato” non si intende che una procedura o una tipologia di collegamento non funzionerà se attuata, ma che non c’è il 100% di possibilità che quel collegamento o procedura sia sempre funzionante. Nel caso del mettere insieme due cavi USB-C per farne uno più lungo, occorre ricordare che quando allunghiamo un cavo, andiamo ad aumentare allo stesso tempo la sua resistenza interna e, tale variazione, rilevata dal chip all’interno del cavo stesso, può impedirne il corretto funzionamento.
Tornando all’argomento principale, ovvero al problema che sta affliggendo il Raspberry Pi 4, Eben Upton ha continuato il discorso sottolineando che “questo tipo di mal funzionamenti non si erano mai verificati durante la fase di test e che è sicuro che in un prossimo futuro la board possa avere una nuova release che porti con sè una risoluzione del problema“.
In realtà, una soluzione al problema già esiste e risiede nelle specifiche tecniche del Raspberry Pi 4, nella misura in cui viene caldamente consigliato l’acquisto del caricabatterie proprietario, con una spesa che varia dagli 8 ai 10 dollari. Se il vostro problema è questo, basta clickare sul link, mettere il prodotto nel carrello, pagare e attendere pazientemente l’arrivo del pacco.
Se invece desiderate capirci di più, il discorso è un po’ più ampio. Per prima cosa dobbiamo tornare indietro e analizzare il problema nella sua completezza: perchè Raspberry Pi 4 viene considerato un adattatore audio da diversi smart charger?
Quando si ha a che fare con dispositivi “open source”, non bisogna mai approcciarsi ad essi nello stesso modo in cui ci si approccia ad Hardware proprietari brevettati: la natura open di questi dispositivi lascia virtualmente “carta bianca” ai loro creatori e, dare per scontato il loro funzionamento come se fossero dispositivi commerciali, espone il vostro fianco a sgradite sorprese e a fallimenti inaspettati. Il vantaggio di queste schede di sviluppo è dato dal fatto che ogni scheda tecnica, ogni data-sheet, ogni scherma circuitale che compone la board può facilmente essere reperito on line ed è la cosa principale che bisogna fare per poter effettuare un’analisi completa della board che decidete di utilizzare per i vostri progetti. Vale lo stesso discorso che si fa quando da un sistema operativo proprietario come potrebbe essere Windows, si decide di passare ad una qualsiasi distribuzione di Linux: bisogna necessariamente cambiare mentalità. Windows non è Linux e Linux non è Windows. Windows è il risultato di una software house quotata in borsa, la quale ha a libro paga interi edifici pieni di programmatori stipendiati per sviluppare software, correggere bug e adattare il prodotto alle richieste del mercato. Linux è una community dove chiunque può mettere mano al Kernel software e sviluppare secondo le proprie necessità.
Mettendo a confronto gli schemi circuitali della porta USB-C standard e della soluzione adottata da Raspberry Foundation, possiamo renderci immediatamente conto di quale sia il problema:
USB-C STANDARD
I terminali CC1 e CC2 rimangono separati e vengono collegati a massa (GND) attraverso due resistori in configurazione “pull-down”. CC1 ha la sua Rd, disgiunta dalla Rd di CC2. Entrambe le Rd hanno un valore di 5.1 KOhm. Per chi non lo sapesse, il resistore di “pull-down” evita il problema del “pin floating”, ovvero la tendenza all’oscillazione del livello logico (0 o 1) presente su un pin a causa dei disturbi interni alla circuiteria, forzando il livello logico del pin a 0.
USB-C RASPBERRY Pi 4
CC1 e CC2 sono collegati insieme a massa (GND) attraverso un unico resistore (R79) pari a 5.1 KOhm in configurazione “pull-down”.
Da questa scelta progettuale derivano due errori:
Il primo errore commesso dagli sviluppatori di Raspberry è quello di aver provato a progettare questo circuito ex novo, esponendosi quindi ad un inevitabile malfunzionamento. Quello che troppo spesso succede con le community open source è che, nel tentativo spasmodico di creare qualcosa di differente, finiscono solo per complicarsi la vita. Qualcuno forse dovrebbe ricordare loro che nel momento in cui un disegno circuitale o un determinato tipo di tecnologia viene definito uno “Standard”, diviene automaticamente “normativo”, ovvero “obbligatorio”, richiesto dalle specifiche universali per poter ad esempio definire “USB-C compatibile” un determinato dispositivo.
Il secondo errore è quello di aver portato avanti la fase di test unicamente con i cavi USB-C più elementari e non con quelli evoluti, dotati di chip “e-marker”, responsabili del problema con il Pi 4. La motivazione di tale scelta non è di facile lettura: si potrebbe ipotizzare il fatto di aver considerato i cavi dotati di “e-marker” troppo “di nicchia”, ma anche qui sarebbe stato sufficiente mettere in pratica un’analisi di mercato. Basti pensare che Apple utilizza regolarmente ormai da tre anni cavi “chippati”: considerando la diffusione dei device di Cupertino a livello mondiale, è facile supporre che molte persone possano avere in casa questo tipo di caricatori e volerli utilizzare anche con il Raspberry. Una specifica di test più articolata e ad ampio spettro avrebbe fatto sicuramente emergere questa criticità e avrebbe permesso agli sviluppatori di accorgersi del problema ben prima della commercializzazione di Pi 4.
Per dovere di cronaca, occorre sottolineare che la varietà di cavi USB-C in commercio è elevatissima e non è raro trovarne di malfunzionanti, tuttavia proprio a questo proposito, la fase di test sarebbe dovuta essere ben più accurata e portata avanti in maniera differente. La community open source costituisce una risorsa dal valore incalcolabile, valore che mai dev’essere messo a repentaglio con “sbadataggini” grossolane.
Siamo certi che Raspberry Foundation correrà presto ai ripari, sfornando una board degna del buon lavoro fatto fin ora.