La maggior parte delle persone che ha bisogno di un adattatore Wi-Fi USB spende circa cinque dollari online e aspetta uno o due giorni per la consegna. Lo sviluppatore software Bái Yìbai, invece, ha deciso che doveva esistere una soluzione più interessante. Anziché acquistare un semplice dongle Wi-Fi, ha trascorso un intero fine settimana festivo a scrivere un firmware capace di trasformare un Raspberry Pi Pico W da sei dollari in un adattatore Wi-Fi USB completamente privo di driver dedicati. Il progetto ha recentemente attirato l’attenzione di Adafruit, che ha messo in evidenza il firmware e lo ha fatto conoscere a un pubblico molto più ampio.
A prima vista può sembrare una quantità enorme di lavoro per evitare di spendere pochi dollari, ma è proprio questo il motivo per cui il progetto ha attirato la nostra attenzione. Non si tratta di risparmiare denaro. Si tratta di dimostrare quanto possa essere flessibile lo standard USB quando qualcuno è disposto a ragionare in modo un po’ diverso.
Normalmente, quando si collega un adattatore Wi-Fi USB a un computer, il sistema operativo si aspetta di comunicare direttamente con l’hardware wireless. Questo significa in genere installare driver in grado di comprendere lo specifico chipset Wi-Fi presente nell’adattatore. Ogni produttore utilizza una propria combinazione di hardware, firmware e software, ed è per questo che l’installazione dei driver ha tradizionalmente fatto parte dell’esperienza d’uso di un adattatore Wi-Fi USB.
Il Raspberry Pi Pico W segue un approccio completamente diverso.
Invece di presentarsi al computer come adattatore Wi-Fi, gli comunica semplicemente di essere un adattatore Ethernet USB. Tutti i sistemi operativi moderni comprendono già i dispositivi Ethernet USB, quindi non c’è nulla di nuovo da installare. Windows, macOS, Linux e perfino molti sistemi operativi mobili includono già il supporto necessario.
La parte davvero intelligente avviene all’interno del Pico. Mentre il computer crede di inviare normale traffico Ethernet attraverso USB, il Pico converte silenziosamente quel traffico in comunicazioni Wi-Fi sfruttando la propria radio wireless integrata. Dal punto di vista del sistema operativo non sta accadendo nulla di insolito. Per l’utente, il computer sembra improvvisamente dotato di connettività wireless senza aver mai caricato un driver Wi-Fi dedicato.
È un po’ come assumere un interprete.
Il computer parla soltanto Ethernet. Il router wireless parla soltanto Wi-Fi. Invece di insegnare al computer una lingua completamente nuova, il Raspberry Pi Pico ascolta semplicemente una lingua e parla l’altra. Entrambe le parti continuano a comunicare esattamente come hanno sempre fatto, mentre il Pico esegue la traduzione nel mezzo.
Questa idea mette in evidenza uno dei maggiori punti di forza di USB. I dispositivi USB non sono definiti soltanto dall’hardware che contengono. Sono definiti soprattutto da ciò che dichiarano di essere.
Una tastiera si presenta come tastiera. Un mouse si identifica come mouse. Una chiavetta USB si identifica come dispositivo di archiviazione di massa. Una webcam appare come dispositivo video. In generale, al sistema operativo non interessa quale processore si trovi dentro il contenitore. Gli interessa invece il modo in cui il dispositivo si identifica durante l’enumerazione USB.
Nel corso degli anni, questa flessibilità ha ispirato innumerevoli progetti USB creativi. I ricercatori di sicurezza hanno costruito dispositivi che si identificano come tastiere per automatizzare l’esecuzione di comandi. Piccole schede di sviluppo sono diventate analizzatori logici, oscilloscopi, adattatori seriali, controller MIDI e interfacce di debug semplicemente modificando il firmware che eseguono. Spesso l’hardware rimane esattamente lo stesso, mentre la personalità USB cambia completamente. Abbiamo già trattato un concetto simile in un precedente articolo che spiegava come modificare l’identità di un dispositivo USB possa cambiare il modo in cui il sistema operativo interagisce con esso.
Il progetto Raspberry Pi Pico W entra così a far parte di una raccolta sempre più ampia di hack USB particolarmente ingegnosi. Invece di fingere di essere hardware wireless, finge di essere qualcosa che ogni sistema operativo moderno comprende già. Scegliendo la compatibilità al posto della complessità, lo sviluppatore ha eliminato completamente la necessità di driver personalizzati.
Forse la parte più divertente dell’intero progetto è la spiegazione dello stesso autore. Ammette apertamente che acquistare un adattatore Wi-Fi USB da cinque dollari sarebbe stato più rapido, più economico e decisamente più semplice. Invece, ha trascorso due giorni e utilizzato circa un milione di token di programmazione basati sull’intelligenza artificiale per sviluppare il firmware, semplicemente perché voleva capire se l’idea potesse funzionare davvero.
Forse non è stata la soluzione più conveniente dal punto di vista economico, ma rappresenta perfettamente lo spirito dell’ingegneria. A volte l’obiettivo non è costruire il dispositivo più economico. A volte si tratta semplicemente di dimostrare che un’idea non convenzionale funziona davvero.
Progetti come questo ricordano che USB è molto più di un semplice connettore sul lato del computer. Dietro quel familiare spinotto rettangolare si nasconde uno standard di comunicazione straordinariamente flessibile, che continua a ispirare soluzioni creative a quasi tre decenni dalla sua introduzione.
Approfondimento: Adafruit ha recentemente raccontato il progetto e ha attribuito allo sviluppatore software Bái Yìbai la creazione del firmware open source. L’articolo fornisce ulteriori informazioni sul progetto e include i collegamenti al codice sorgente. Puoi leggere l’articolo di Adafruit qui.
Nota editoriale: Questo articolo riassume un progetto open source sviluppato dalla community e creato dallo sviluppatore software Bái Yìbai. I concetti tecnici sono stati semplificati per aiutare i lettori a comprendere le idee ingegneristiche alla base del progetto senza richiedere conoscenze pregresse nel campo dei sistemi embedded.