Comment construire un commutateur KVM matériel pour 11 euros avec deux cartes Raspberry Pi Pico
Vous avez déjà eu deux ordinateurs sur votre bureau mais de la place pour un seul ensemble clavier et souris ? Il y a généralement deux façons de gérer cela. La première est logicielle (comme Barrier ou Input Leap). Mais alors les ennuis commencent : coupures réseau, VPN d'entreprise qui bloque le trafic local, ou votre machine de travail qui ne vous permet pas d'installer des logiciels tiers. La deuxième option est un commutateur USB pas cher d'AliExpress. Vous appuyez sur un bouton de la petite boîte, attendez quelques secondes que l'OS réinitialise les périphériques, et vous répétez cela des dizaines de fois par jour.
Le développeur hrvach a rencontré cette frustration exacte et a décidé de construire son propre matériel. Le projet s'appelle DeskHop. C'est un appareil ouvert qui commute votre clavier et votre souris entre deux ordinateurs instantanément. Vous pouvez basculer via un raccourci clavier ou simplement en faisant glisser le curseur de la souris au-delà du bord de l'écran, comme si vous aviez un seul moniteur connecté à deux PC.

Comment ça fonctionne à l'intérieur
Le circuit est construit autour de deux cartes Raspberry Pi Pico standard basées sur la puce RP2040. Chaque carte se connecte à son propre ordinateur via USB. Les microcontrôleurs communiquent entre eux par UART à travers une puce d'isolation galvanique (TI ISO7721DR ou ADuM1).
L'isolation électrique ici est réelle : les lignes de masse et d'alimentation des deux PC sont complètement isolées l'une de l'autre. Si un ordinateur grille ou produit une surtension, l'autre reste en sécurité.
La magie USB du côté hôte vient de la bibliothèque Pico-PIO-USB. L'E/S programmable (PIO) dans la puce RP2040 transforme les broches GPIO ordinaires en ports USB complets. Une carte Pico agit comme l'hôte USB où vous branchez votre clavier et votre souris, tandis que les deux cartes émulent des périphériques HID standard pour les ordinateurs connectés.
Basculement transparent entre les écrans
La meilleure fonctionnalité de DeskHop est l'émulation de bureau transparente. Lorsque vous déplacez le curseur de la souris vers le bord droit du moniteur du premier ordinateur, DeskHop commute instantanément le routage du signal vers le deuxième ordinateur, et le curseur apparaît au bord gauche de son écran à la même hauteur.

Le clavier suit automatiquement la souris. Vous tapez du code sur Linux, déplacez la souris vers la droite vers l'écran Mac, et votre prochaine pression de touche va à macOS.

Pour suivre la position du curseur, DeskHop commute le descripteur HID de souris en coordonnées absolues. L'appareil additionne en interne les mouvements relatifs pour calculer la position exacte à l'écran.
Si la commutation avec la souris n'est pas pratique, le raccourci Left Ctrl + Caps Lock fonctionne toujours.
Extras utiles et modes de fonctionnement
L'auteur a ajouté plusieurs modes spécialisés au micrologiciel pour résoudre les problèmes courants lors du travail avec deux systèmes :
- Mode ralentissement de la souris (
Right Ctrl + Right Alt). Lorsque vous appuyez sur la combinaison, la sensibilité de la souris chute fortement. Utile lorsque vous devez saisir un seul pixel dans un éditeur graphique ou déplacer précisément un curseur dans une vidéo. - Mode jeu (
Left Ctrl + Right Shift + G). Les coordonnées absolues de la souris cassent les contrôles dans de nombreux jeux 3D et machines virtuelles. En mode jeu, DeskHop désactive la commutation automatique d'écran et revient au positionnement relatif standard. - Verrouillage de commutation (
Right Ctrl + K). Verrouille le contrôle sur l'ordinateur actuel afin qu'un mouvement accidentel de la main n'envoie pas le curseur voler vers le deuxième moniteur pendant un appel. - Mode économiseur d'écran (
Left Ctrl + Right Shift + S). Le curseur commence à sauter au hasard autour de l'écran comme une balle de Pong, empêchant l'ordinateur de se mettre en veille.
Matériel et assemblage DIY
Le projet a été conçu dès le départ pour que n'importe qui puisse le construire sur une table de cuisine. Le PCB à deux couches utilise un nombre minimal de composants.

Composants pour l'assemblage (PCB v1.1) :
| Composant | Quantité | Prix approximatif | | --- | --- | --- | | Raspberry Pi Pico | 2 pcs | ~8,20 € | | Connecteur USB-A pour carte | 2 pcs | ~0,40 € | | Isolateur TI ISO7721DR | 1 pc | ~1,40 € | | Condensateurs et résistances (0805) | 8 pcs | ~0,44 € | | Puces de protection ESD TPD4E1U06DBVR | 2 pcs | ~0,62 € |
Le coût total des composants s'élève à environ 11-12 euros. Le boîtier s'imprime en 3D en quelques heures et la carte s'emboîte sans une seule vis.

Pour ceux qui ne veulent pas souder eux-mêmes, les fichiers gerber sont disponibles dans le dépôt. Vous pouvez commander une carte assemblée ou un kit chez Elecrow.
Micrologiciel et configuration
Vous pouvez compiler le projet à partir des sources en utilisant CMake ou Docker :
docker-compose -f misc/docker.yml run --rm build_container
Si la compilation à partir des sources vous semble trop fastidieuse, il y a un fichier UF2 prêt à l'emploi dans la section des versions. Pour flasher l'appareil, il suffit de maintenir le bouton BOOTSEL enfoncé. DeskHop redémarre et se fait passer pour un lecteur virtuel appelé "DESKHOP" où vous déposez simplement le fichier UF2.
Une combinaison de raccourcis clavier Right Shift + F12 + Y est prévue pour calibrer la hauteur de transition entre les moniteurs de tailles différentes.

La configuration est conçue avec la sécurité à l'esprit. Pas de serveurs web ni de services cloud. Lorsque vous entrez en mode configuration, un fichier CONFIG.TXT apparaît sur le lecteur virtuel. Vous l'ouvrez localement dans Chrome ou Yandex Browser et modifiez les paramètres via WebHID directement dans le navigateur.



L'auteur a consacré une section séparée aux préoccupations de sécurité :
- Pas de presse-papiers partagé ni de transfert de fichiers entre les systèmes.
- Pas d'interfaces réseau, Wi-Fi ou Bluetooth.
- Les ordinateurs ne peuvent pas forcer la mise à jour du micrologiciel de l'appareil sans appuyer sur des boutons physiques du clavier.
Limitations et pièges
Le projet est formidable, mais rien n'est parfait. Voici quelques points à connaître avant de commencer :
- Configurations multi-moniteurs. Depuis la mise à jour Windows 10 KB5001387, le comportement des coordonnées HID absolues a cessé de fonctionner pour les moniteurs multiples. Le curseur peut rester bloqué sur le premier écran. Il y a des contournements expérimentaux dans le micrologiciel, mais le problème est toujours en cours de résolution.
- Périphériques complexes. Les claviers avec écrans, les macro pads et les souris avec 20 boutons supplémentaires peuvent ne pas fonctionner correctement. Les claviers de bureau et mécaniques simples sans encodeurs exotiques fonctionnent bien.
- Alimentation. Les deux ordinateurs doivent alimenter leurs ports USB. Si un PC est complètement hors tension, l'appareil ne démarre pas sans un hub externe.

Le taux d'interrogation de la souris atteint 1 000 Hz, donc vous ne ressentirez aucun lag pendant les mouvements.
Est-ce que ça vaut le coup ?
DeskHop est un excellent projet DIY pour un week-end. Si vous travaillez sur deux postes simultanément et en avez assez des délais des commutateurs KVM logiciels ou des clics sur les interrupteurs bon marché chinois, cette petite boîte se rentabilise dès le premier jour. Le code source en C et les schémas PCB sont entièrement ouverts sous la licence GPL-3.0.
Projets similaires
