Chiunque utilizzi due computer diversi nella propria routine quotidiana e desideri utilizzare stesso mouse e tastiera, si è probabilmente scontrato con i limiti delle classiche soluzioni di switching USB offerte dal mercato. I dispositivi switch facilmente reperibili su Amazon funzionano, certo, ma soffrono di alcuni problemi: trasferire l’utilizzo di tastiera e mouse da un sistema all’altro richiede un po’ di tempo (il passaggio non risulta immediato). La procedura risulta complicata, inoltre, dalla ricerca del pulsante giusto.
Per condividere mouse e tastiera tra più PC con Windows esistono soluzioni software molto efficaci: la prima, che abbiamo citato nell’articolo, è Mouse Without Borders. Sviluppata dai tecnici di Microsoft Garage, si tratta di una soluzione efficace che non soltanto permette di passare il controllo di mouse e tastiera da un PC all’altro con la pressione di un semplice tasto ma anche di superare i confini del monitor in un uso. In pratica, spostando il puntatore verso sinistra o verso destra, a seconda della posizione fisica dell’altro computer, si passa senza soluzione di continuità dallo schermo di un PC a quello dell’altro. Una bella comodità.
Mouse Without Borders ha raccolto talmente tanti apprezzamenti che è diventato parte integrante del pacchetto gratuito Microsoft PowerToys.
Stesso mouse e tastiera su due computer diversi con il progetto DeskHop
I programmi descritti in precedenza hanno una limitazione importante: possono essere utilizzati per controllare sistemi Windows con stesso mouse e tastiera. Inoltre, le applicazioni che si occupano di gestire il passaggio da un PC all’altro devono essere contemporaneamente installate e risultare in esecuzione su tutti i computer.
Il nuovo progetto DeskHop nasce dalla necessità di individuare un modo più efficiente per passare da un computer all’altro, sia attraverso una scorciatoia da tastiera che spostando “magicamente” il puntatore del mouse tra i monitor. DeskHop permette di fare entrambe le cose, anche se i computer utilizzati eseguono sistemi operativi diversi (Windows, macOS, Linux,…).
Il primissimo vantaggio è che DeskHop è gratuito e open source: prevede un ridotto esborso economico (inferiore a 20 euro) per l’acquisto di alcuni componenti hardware. Grazie al design efficace, tuttavia, il passaggio con stesso mouse e tastiera su due computer diversi avviene senza alcun ritardo.
Inoltre, essendo una soluzione interamente “in hardware” che lavora a livello di interfaccia USB, non è richiesta l’installazione di alcun software sui PC.
Come funziona DeskHop
DeskHop agisce come intermediario tra tastiera/mouse e il computer, stabilendo e mantenendo contemporaneamente connessioni con entrambi i computer coinvolti. Il dispositivo seleziona quindi a quale computer inoltrare i movimenti del mouse e i tasti premuti, in base alla scelta operata dall’utente. Il movimento del mouse guida anche il cambio della tastiera e viceversa, consentendo di passare rapidamente da un desktop all’altro.
Lo standard di comunicazione Human Interface Device (HID) è utilizzato per stabilire uno schema utile all’interazione tra un dispositivo come tastiera/mouse e il computer host. Il cosiddetto “report descriptor“, è una struttura dati che descrive il formato e il contenuto dei dati inviati o ricevuti da un dispositivo HID. Indica al computer come interpretare i dati provenienti dal dispositivo collegato.
Per far sì che il cursore del mouse si sposti da un monitor all’altro, DeskHop interviene proprio sul report descriptor HID del mouse in maniera tale che utilizzi coordinate assolute. Quando l’utente sposta il puntatore verso l’altro monitor, il dispositivo mantiene la coordinata Y e scambia la coordinata X massima con una coordinata X minima, quindi inverte le uscite USB. Questo garantisce che il puntatore appaia alla stessa altezza sull’altro monitor, massimizzando la percezione di una transizione fluida.
Per quanto riguarda il supporto della tastiera, DeskHop utilizza i LED presenti per indicare visivamente quale uscita (e quindi quale computer) si sta utilizzando in un determinato momento.
Come costruire il dispositivo per lo switching di mouse e tastiera USB
Il circuito alla base del funzionamento di DeskHop è basato su due schede Raspberry Pi Pico collegate tramite UART e separate da un isolatore digitale Analog Devices ADuM1201. Il design del PCB è mantenuto il più semplice possibile per facilitare la costruzione fai-da-te.
Nel repository di DeskHop sono pubblicate le indicazioni pratiche per realizzare le connessioni elettroniche e, addirittura, è disponibile in modello 3D del case che ospita la coppia di Raspberry Pi Pico. Può essere facilmente e velocemente realizzato con qualunque stampante 3D accedendo a questa pagina.
Lato software, è necessario creare una cartella build
per la compilazione del progetto, accedervi, eseguire il comando di configurazione del progetto con CMake quindi procedere con la compilazione.
In alternativa, è possibile utilizzare le immagini predisposte dall’autore (download da qui) e caricarle sulle schede Raspberry Pi Pico. È prevista anche la possibilità di aggiornare il firmware tramite una delle due opzioni fornite.
Aggiornamento del firmware
L’aggiornamento del firmware del dispositivo DeskHop può essere effettuato seguendo due strade.
Dopo aver aperto il case, va tenuto premuto il pulsante durante la connessione di ciascuna Raspberry Pi Pico al computer. A questo punto è sufficiente copiare il firmware (file .uf2
) corretto nella memoria della scheda.
In alternativa, come seconda opzione, si può impostare Raspberry Pi Pico in modalità BOOTSEL tenendo contemporaneamente premuti i seguenti tasti: Right Shift, P, H, X, Left Shift. Quest’operazione fa sì che i Raspberry Pi Pico entrino nella modalità di aggiornamento del bootloader e agiranno come se fossero delle chiavette USB. A questo punto, come passaggio finale, si possono copiare i file del firmware .uf2
sulle Raspberry Pi Pico.
Le immagini nell’articolo sono tratte dalla pagina GitHub ufficiale del progetto DeskHop.