Il firmware personalizzato insegna nuovi trucchi alla scheda relè USB
CasaCasa > Notizia > Il firmware personalizzato insegna nuovi trucchi alla scheda relè USB

Il firmware personalizzato insegna nuovi trucchi alla scheda relè USB

Dec 14, 2023

Se stai cercando un modo semplice e veloce per controllare alcuni dispositivi dal tuo computer, una scheda relè USB economica potrebbe essere la soluzione ideale. Si tratta di gadget abbastanza semplici, costituiti da poco più di un microcontrollore e una manciata di relè. Ma ciò non significa che non ci sia spazio per miglioramenti e, come [Michał Słomkowski] ha recentemente dimostrato, aggiornare queste schede con un firmware personalizzato consente all'utente di modificare la loro funzionalità predefinita.

Nel suo caso, [Michał] voleva costruire una ciabatta che interrompesse l'alimentazione a tutti i dispositivi collegati una volta che il computer fosse andato in stop. Sfortunatamente, non poteva semplicemente controllare se ci fossero 5 V sulla linea poiché la sua scheda madre teneva le porte USB sempre accese. Ma con alcune modifiche al firmware della scheda relè, ha pensato che avrebbe dovuto essere in grado di rilevare se c'era qualche attività USB osservando il pacchetto di inizio frame che esce ogni millisecondo quando il bus è attivo.

Ora [Michał] non afferma di essere la prima persona a inventare un firmware personalizzato per una di queste schede, anzi, attribuisce ad un progetto firmware open source esistente l'ispirazione per il suo lavoro. Ma ha creato un firmware GPLv3 completamente nuovo per questi dispositivi alimentati da ATtiny45, che include tra gli altri miglioramenti l'ultima versione di V-USB. In realtà, V-USB include il rilevamento dei pacchetti all'inizio del frame, il che ha reso molto più semplice l'implementazione del suo codice di rilevamento dell'attività.

Dopo aver installato il nuovo firmware sul chip della scheda relè, [Michał] l'ha inserita in una custodia e ha collegato le prese. Ma mancava ancora un pezzo del puzzle. Sembra che Linux non invierà effettivamente i pacchetti di inizio frame a meno che non comunichi attivamente con un dispositivo USB, come parte della cosiddetta funzionalità di risparmio energetico di "sospensione selettiva". Fortunatamente c'è il supporto per disabilitare questa funzionalità per dispositivi specifici in base alla coppia fornitore/ID prodotto, quindi dopo un po' di tentativi con udev, tutto ha funzionato come previsto.

Adoriamo i progetti firmware personalizzati qui a Hackaday. Non solo tengono il software proprietario fuori dai nostri dispositivi, ma spesso sbloccano funzionalità nuove e ampliate che altrimenti sarebbero nascoste dietro paywall artificiali.