Raspberry Pi Pico W diventa adattatore WiFi USB: il progetto open

Il progetto pico-usb-wifi usa Raspberry Pi Pico W come ponte tra USB e Wi-Fi: niente driver wireless sull'host, niente NAT, una sola identità MAC.
Raspberry Pi Pico W diventa adattatore WiFi USB: il progetto open

Una scheda Raspberry Pi Pico W trasformata in adattatore WiFi USB senza bisogno di usare alcun tipo di driver rappresenta una soluzione tecnica precisa a un problema concreto: dare connettività wireless a un host sul quale non è disponibile. Il progetto pico-usb-wifi parte da una scelta insolita ma efficace: il microcontrollore non si presenta come scheda WiFi, bensì come interfaccia di rete USB di tipo USB CDC-NCM.

Raspberry Pi Pico è arrivata nel 2021 come scheda a basso costo basata su RP2040, un microcontrollore dual-core Arm Cortex-M0+ fino a 133 MHz; Raspberry Pi Pico W, introdotto nel 2022, ha aggiunto il chip radio Infineon CYW43439 per il WiFi 2,4 GHz 802.11 b/g/n. Da allora molti progetti hanno usato Pico W come nodo IoT, sensore o piccolo controller di rete.

Con il progetto pico-usb-wifi, l’approccio cambia perché Raspberry Pi Pico W diventa un bridge Ethernet-over-USB verso una rete WiFi reale.

La scelta tecnica di pico-usb-wifi: non emulare una scheda WiFi con Pico W

Un adattatore WiFi USB tradizionale espone al sistema operativo un modulo radio vero e proprio: l’host deve quindi gestire associazione, autenticazione WPA, canali e spesso anche firmware del chipset. pico-usb-wifi ribalta l’approccio: Pico W si associa all’access point, gestisce WPA2-PSK e presenta al computer un’interfaccia Ethernet-over-USB.

Il risultato non compete con un dongle 802.11ac da pochi euro, però non vuole nemmeno farlo.

Il progetto pico-usb-wifi risolve un caso diverso: collegare un sistema embedded Linux, un host minimale o un apparato con kernel bloccato usando driver già disponibili. Niente wpa_supplicant sull’host, niente cfg80211/mac80211, niente driver vendor per il chipset WiFi: la parte wireless vive tutta su Pico W; l’host vede una normale interfaccia Ethernet su USB.

Il protocollo scelto, CDC-NCM, non è un espediente: Network Control Model fa parte della famiglia USB Communication Device Class e serve proprio a trasportare frame Ethernet su USB. Linux lo supporta da molto tempo tramite cdc_ncm; macOS dispone del driver com.apple.driver.usb.cdc.ncm; Windows 10 dalla build 18362 in poi (e quindi Windows 11) include il supporto nativo per i dispositivi NCM.

Dal punto di vista delle prestazioni, il throughput medio indicato dal progetto è 4,75 Mbps, perché RP2040 espone USB Full-Speed a 12 Mbps.

Perché può essere utile

Con quali tipi di dispositivi pico-usb-wifi può tornare utile? Non parliamo del normale PC desktop, dove un adattatore WiFi USB tradizionale resta più veloce e semplice da acquistare. Il caso più adatto è quello di sistemi embedded, mini server, schede di sviluppo, appliance o dispositivi con un sistema operativo ridotto, dove installare driver wireless o modificare il kernel non è sempre possibile.

In questi scenari Pico W si comporta come un intermediario: gestisce da solo la connessione WiFi e lascia all’host soltanto il compito di usare una normale interfaccia di rete.

In pratica, il sistema collegato via USB non deve “sapere” nulla del WiFi: vede una connessione simile a una porta Ethernet e può ottenere indirizzo IP, gateway e DNS dalla rete locale come qualunque altro client.

Una sola identità di rete tra USB e WiFi

Il funzionamento del progetto si basa su un dettaglio importante: l’host collegato via USB usa lo stesso indirizzo MAC del modulo WiFi a bordo della scheda Pico W.

Dal punto di vista dell’access point, esiste un solo dispositivo collegato alla rete: non viene creata una rete separata, non c’è traduzione degli indirizzi e non serve configurare regole di inoltro.

Questa scelta permette di evitare il classico schema da tethering, dove un dispositivo crea una sottorete privata e fa NAT verso l’esterno. Con pico-usb-wifi, l’host entra direttamente nella rete dell’access point. Il vantaggio è evidente: IPv4 e IPv6 possono funzionare in modo più naturale, perché il traffico passa a livello Ethernet senza dover essere riscritto.

Un progetto piccolo, ma con un’idea intelligente

pico-usb-wifi è interessante non perché sostituisca i normali dongle WiFi, ma perché mostra un uso molto concreto di Raspberry Pi Pico W in un ruolo diverso dal solito.

Il punto più riuscito è proprio la semplicità lato host: se il sistema operativo riconosce CDC-NCM e CDC-ACM, non servono componenti specifici per il chipset radio. Per ambienti embedded, dispositivi chiusi o prototipi in cui modificare il software di base è complicato, può risultare davvero utile.

Il limite più evidente, come osservato in precedenza, riguarda la velocità: i 4,75 Mbps indicati dal progetto bastano per console remote, piccoli servizi web, dashboard, telemetria, aggiornamenti leggeri o attività di manutenzione. Non sono invece adatti a trasferimenti pesanti, streaming video, backup o uso quotidiano come adattatore principale per un computer.

C’è poi un altro punto da non trascurare: pico-usb-wifi non è un router e non è pensato per collegare più dispositivi dietro lo stesso Pico W. La logica del progetto funziona perché host e scheda condividono una sola identità di rete. È quindi una soluzione per un singolo dispositivo alla volta, non per creare una rete wireless completa.

Questo articolo contiene link di affiliazione: acquisti o ordini effettuati tramite tali link permetteranno al nostro sito di ricevere una commissione nel rispetto del codice etico. Le offerte potrebbero subire variazioni di prezzo dopo la pubblicazione.

Ti consigliamo anche

Link copiato negli appunti