Raspberry Pi Pico W trasformata in un adattatore WiFi USB senza dover installare alcun driver: l’idea, per quanto particolare, risolve un problema piuttosto concreto. Dare connettività wireless a un host che, di suo, non ne avrebbe alcuna. Il progetto si chiama pico-usb-wifi e parte da una scelta tecnica curiosa quanto efficace. Il microcontrollore non si presenta al computer come una scheda WiFi, ma come una normale interfaccia di rete USB di tipo USB CDC-NCM.
Per chi non avesse seguito la storia di questa scheda, vale la pena fare un passo indietro. Raspberry Pi Pico è arrivata nel 2021 come prodotto a basso costo basato su RP2040, un microcontrollore dual-core Arm Cortex-M0+ capace di spingersi fino a 133 MHz. La versione W, introdotta nel 2022, ha aggiunto il chip radio Infineon CYW43439 per il WiFi a 2,4 GHz nelle varianti 802.11 b/g/n. Da allora la scheda è finita un po’ ovunque, come nodo IoT, sensore o piccolo controller di rete. Con pico-usb-wifi, però, il discorso cambia del tutto. La Raspberry Pi Pico W diventa un bridge Ethernet-over-USB verso una rete WiFi vera e propria.
La scelta tecnica dietro pico-usb-wifi
Un adattatore WiFi USB classico mette il sistema operativo davanti a un modulo radio in carne e ossa. L’host deve quindi gestire associazione, autenticazione WPA, canali e spesso anche il firmware del chipset. Qui invece l’approccio è ribaltato. La Pico W si associa da sola all’access point, si occupa del WPA2-PSK e al computer mostra soltanto un’interfaccia Ethernet-over-USB. Il risultato, va detto, non compete con un dongle 802.11ac da pochi euro. Ma non è quello il suo scopo.
Il problema che pico-usb-wifi affronta è un altro. Collegare un sistema embedded Linux, un host minimale o un apparato con kernel bloccato usando driver già presenti. Niente wpasupplicant sull’host, niente cfg80211 o mac80211, nessun driver vendor per il chipset wireless. Tutta la parte radio vive sulla Pico W, mentre il computer si limita a vedere una banale scheda Ethernet collegata via USB.
Il protocollo scelto, il CDC-NCM, non è un trucco improvvisato. Network Control Model fa parte della famiglia USB Communication Device Class e serve proprio a trasportare frame Ethernet sopra l’USB. Linux lo supporta da tempo con cdcncm, macOS ha il proprio driver dedicato e Windows lo include nativamente dalla build 18362 in poi, quindi anche su Windows 11. Sul fronte prestazioni il throughput medio dichiarato è di 4,75 Mbps, limite legato al fatto che RP2040 espone una connessione USB Full-Speed a 12 Mbps.
Dove conviene davvero usarla
A questo punto la domanda è legittima. Con quali dispositivi ha senso tirare in ballo pico-usb-wifi? Sicuramente non il classico PC desktop, dove un adattatore WiFi USB tradizionale rimane più rapido e comodo da comprare. Il terreno ideale è quello di sistemi embedded, mini server, schede di sviluppo, appliance o dispositivi con un sistema operativo ridotto all’osso. Tutti casi in cui installare driver wireless o mettere mano al kernel non è sempre possibile.
In questi scenari la Pico W fa da intermediario. Gestisce in autonomia la connessione WiFi e lascia all’host il solo compito di usare una normale interfaccia di rete. Il sistema collegato via USB non deve sapere nulla del wireless. Vede qualcosa di molto simile a una porta Ethernet e ottiene indirizzo IP, gateway e DNS dalla rete locale come farebbe qualsiasi altro client.
C’è poi un dettaglio che merita attenzione. L’host collegato via USB usa lo stesso indirizzo MAC del modulo WiFi presente sulla scheda. Dal punto di vista dell’access point esiste un solo dispositivo connesso. Nessuna rete separata, nessuna traduzione degli indirizzi, nessuna regola di inoltro da impostare. Si evita così il classico schema da tethering, dove un apparecchio crea una sottorete privata e fa NAT verso l’esterno. Con pico-usb-wifi l’host entra direttamente nella rete dell’access point, e questo permette a IPv4 e IPv6 di funzionare in modo più naturale, dato che il traffico viaggia a livello Ethernet senza riscritture.