Come Costruire uno Switch KVM Hardware per 11 Euro Usando Due Schede Raspberry Pi Pico
Hai mai avuto due computer sulla scrivania ma spazio solo per un set di tastiera e mouse? Di solito ci sono due modi per gestire questa situazione. Il primo è basato su software (come Barrier o Input Leap). Ma poi iniziano i problemi: cadute di rete, la VPN aziendale blocca il traffico locale, oppure il tuo computer di lavoro non ti permette di installare software di terze parti. La seconda opzione è uno switch USB economico da AliExpress. Premi un pulsante sulla piccola scatola, aspetti un paio di secondi che il sistema operativo reinizializzi i dispositivi, e ripeti questo decine di volte al giorno.
Lo sviluppatore hrvach si è trovato esattamente in questa situazione frustrante e ha deciso di costruire il proprio hardware. Il progetto si chiama DeskHop. È un dispositivo aperto che passa la tua tastiera e il mouse tra due computer istantaneamente. Puoi passare tramite hotkey o semplicemente trascinando il cursore del mouse oltre il bordo dello schermo, proprio come avere un monitor collegato a due PC.

Come funziona internamente
Il circuito è costruito attorno a due schede Raspberry Pi Pico standard basate sul chip RP2040. Ogni scheda si collega al proprio computer tramite USB. I microcontrollori comunicano tra loro tramite UART attraverso un chip di isolamento galvanico (TI ISO7721DR o ADuM1).
L'isolamento elettrico qui è reale: le linee di massa e di alimentazione dei due PC sono completamente isolate l'una dall'altra. Se un computer si brucia o produce un picco di tensione, l'altro rimane al sicuro.
La magia USB lato host arriva dalla libreria Pico-PIO-USB. Il PIO (programmable I/O) nel chip RP2040 trasforma i normali pin GPIO in porte USB complete. Una scheda Pico funziona come host USB dove colleghi tastiera e mouse, mentre entrambe le schede emulano dispositivi HID standard per i computer collegati.
Passaggio fluido tra schermi
La migliore caratteristica di DeskHop è l'emulazione desktop fluida. Quando sposti il cursore del mouse verso il bordo destro del monitor del primo computer, DeskHop passa istantaneamente il routing del segnale al secondo computer, e il cursore appare sul bordo sinistro del suo schermo alla stessa altezza.

La tastiera segue automaticamente il mouse. Stai scrivendo codice su Linux, sposti il mouse a destra verso lo schermo Mac, e il tuo prossimo tasto premuto va a macOS.

Per tracciare la posizione del cursore, DeskHop cambia il descrittore del mouse HID in coordinate assolute. Il dispositivo internamente somma i movimenti relativi per calcolare la posizione esatta sullo schermo.
Se passare con il mouse non è comodo, la hotkey Left Ctrl + Caps Lock funziona sempre.
Extra utili e modalità di funzionamento
L'autore ha aggiunto diverse modalità specializzate al firmware per affrontare i problemi comuni quando si lavora con due sistemi:
- Modalità rallentamento mouse (
Right Ctrl + Right Alt). Quando premi la combinazione, la sensibilità del mouse scende bruscamente. Utile quando devi afferrare un singolo pixel in un editor grafico o spostare con precisione un cursore in un video. - Modalità gaming (
Left Ctrl + Right Shift + G). Le coordinate assolute del mouse rompono i controlli in molti giochi 3D e macchine virtuali. In modalità gaming, DeskHop disabilita il passaggio automatico dello schermo e torna al posizionamento relativo standard. - Blocco passaggio (
Right Ctrl + K). Blocca il controllo al computer corrente così un movimento accidentale della mano non fa volare il cursore al secondo monitor durante una chiamata. - Modalità screensaver (
Left Ctrl + Right Shift + S). Il cursore inizia a saltare casualmente intorno allo schermo come una pallina da Pong, impedendo al computer di andare in standby.
Hardware e assemblaggio fai-da-te
Il progetto è stato progettato dall'inizio perché chiunque potesse costruirlo su un tavolo di cucina. Il PCB a due strati usa un numero minimo di componenti.

Componenti per l'assemblaggio (PCB v1.1):
| Componente | Quantità | Prezzo approssimativo | | --- | --- | --- | | Raspberry Pi Pico | 2 pz | ~8,20 € | | Connettore USB-A per scheda | 2 pz | ~0,40 € | | Isolatore TI ISO7721DR | 1 pz | ~1,40 € | | Condensatori e resistori (0805) | 8 pz | ~0,44 € | | Chip di protezione ESD TPD4E1U06DBVR | 2 pz | ~0,62 € |
Il costo totale dei componenti è di circa 11-12 euro. L'involucro si stampa su una stampante 3D in un paio d'ore, e la scheda si incastra senza una singola vite.

Per chi non vuole saldare da sé, i file gerber sono disponibili nel repository. Puoi ordinare una scheda assemblata o un kit da Elecrow.
Firmware e configurazione
Puoi compilare il progetto da sorgente usando CMake o Docker:
docker-compose -f misc/docker.yml run --rm build_container
Se compilare da sorgente sembra troppo lavoro, c'è un file UF2 già pronto nella sezione releases. Per flashare il dispositivo, basta tenere premuto BOOT. DeskHop si riavvierà e fingerà di essere un disco virtuale chiamato "DESKHOP" dove basta trascinare il file UF2.
Una combinazione di hotkey Right Shift + F12 + Y è fornita per calibrare l'altezza di transizione tra monitor di dimensioni diverse.

La configurazione è progettata tenendo a mente la sicurezza. Nessun server web o servizi cloud. Quando entri in modalità setup, appare un file CONFIG.TXT sul disco virtuale. Lo apri localmente in Chrome o Yandex Browser e modifichi i parametri tramite WebHID direttamente nel browser.



L'autore ha dedicato una sezione separata alle preoccupazioni sulla sicurezza:
- Nessuna clipboard condivisa o trasferimento file tra i sistemi.
- Nessuna interfaccia di rete, Wi-Fi o Bluetooth.
- I computer non possono forzare l'aggiornamento del firmware del dispositivo senza premere pulsanti fisici sulla tastiera.
Limitazioni e inconvenienti
Il progetto è venuto benissimo, ma niente è perfetto. Ecco alcune cose da sapere prima di iniziare a costruire:
- Configurazioni multi-monitor. A partire dall'aggiornamento Windows 10 KB5003687, il comportamento delle coordinate HID assolute si è rotto per i monitor multipli. Il cursore potrebbe bloccarsi sul primo schermo. Ci sono workaround sperimentali nel firmware, ma il problema è ancora in fase di risoluzione.
- Periferiche complesse. Tastiere con schermi, macro pad e mouse con 20 pulsanti extra potrebbero non funzionare correttamente. Tastiere da ufficio semplici e meccaniche senza encoder esotici funzionano bene.
- Alimentazione. Entrambi i computer devono alimentare le loro porte USB. Se un PC è completamente spento, il dispositivo non si avvia senza un hub esterno.

Il polling rate del mouse raggiunge 1.000 Hz, quindi non sentirai alcun ritardo durante i movimenti.
Vale la pena costruirlo?
DeskHop è un ottimo progetto DIY per il fine settimana. Se lavori a due postazioni contemporaneamente e sei stanco dei ritardi del KVM software o di premere pulsanti su cheap Chinese switch, questa piccola scatola si ripaga il primo giorno. Il codice sorgente C e gli schemi PCB sono completamente aperti sotto licenza GPL-3.0.
Progetti correlati
