>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
C

So baust du einen Hardware-KVM-Switch für 11 Euro mit zwei Raspberry Pi Pico Boards

Hattest du schon mal zwei Computer auf dem Schreibtisch, aber nur Platz für ein Tastatur-Maus-Set? Dafür gibt es normalerweise zwei Lösungsansätze. Der erste ist softwarebasiert (wie Barrier oder Input Leap). Aber dann beginnen die Probleme: Netzwerkausfälle, Corporate VPNs blockieren lokalen Traffic, oder dein Arbeitsrechner erlaubt keine Installation von Drittanbietersoftware. Die zweite Option ist ein günstiger USB-Switch von AliExpress. Du drückst einen Knopf an dem kleinen Kasten, wartest ein paar Sekunden bis das Betriebssystem die Geräte neu initialisiert, und wiederholst das Dutzende Male am Tag.

Entwickler hrvach hatte genau diesen Frust und beschloss, ein eigenes Hardware-Gerät zu bauen. Das Projekt heißt DeskHop. Es ist ein Open-Source-Gerät, das Tastatur und Maus zwischen zwei Computern sofort umschaltet. Du kannst per Hotkey umschalten oder einfach den Mauszeiger über den Bildschirmrand ziehen – genau wie bei einem Monitor, der an zwei PCs angeschlossen ist.

DeskHop case and board

So funktioniert es innen

Der Schaltkreis basiert auf zwei Standard-Raspberry Pi Pico Boards mit dem RP2040-Chip. Jedes Board ist über USB mit seinem eigenen Computer verbunden. Die Mikrocontroller kommunizieren über UART durch einen galvanisch trennenden Chip (TI ISO7721DR oder ADuM1).

Open Source Hardware Logo

Die Stromtrennung hier ist echt: Die Masseleitungen und Stromversorgungsleitungen der beiden PCs sind vollständig voneinander getrennt. Wenn ein Computer durchbrennt oder einen Stromstoß erzeugt, bleibt der andere sicher.

Das USB-Magic auf der Host-Seite kommt von der Pico-PIO-USB-Bibliothek. Die programmierbare I/O (PIO) im RP2040-Chip verwandelt gewöhnliche GPIO-Pins in vollständige USB-Ports. Ein Pico-Board fungiert als USB-Host, an dem du Tastatur und Maus anschließt, während beide Boards standardmäßige HID-Geräte für die verbundenen Computer emulieren.

Nahtloses Bildschirmumschalten

DeskHops beste Funktion ist die nahtlose Desktop-Emulation. Wenn du den Mauszeiger zum rechten Rand des ersten Monitors bewegst, schaltet DeskHop das Signal-Routing sofort auf den zweiten Computer um, und der Cursor erscheint am linken Rand seines Bildschirms auf derselben Höhe.

DeskHop Mouse Demo

Die Tastatur folgt dem Mauszeiger automatisch. Du tippst Code unter Linux, bewegst die Maus nach rechts zum Mac-Bildschirm, und dein nächster Tastendruck geht an macOS.

DeskHop Typing Demo

Um die Cursorposition zu verfolgen, schaltet DeskHop den HID-Maus-Deskriptor auf absolute Koordinaten um. Das Gerät summiert intern die relativen Bewegungen, um die exakte Position auf dem Bildschirm zu berechnen.

Falls das Umschalten mit der Maus nicht praktisch ist, funktioniert der Hotkey Left Ctrl + Caps Lock immer.

Nützliche Extras und Betriebsmodi

Der Autor hat der Firmware mehrere Spezialmodi hinzugefügt, um häufige Probleme beim Arbeiten mit zwei Systemen zu lösen:

  • Maus-Verlangsamungsmodus (Right Ctrl + Right Alt). Wenn du die Kombination drückst, sinkt die Mausempfindlichkeit stark. Nützlich, wenn du einen einzelnen Pixel in einem Grafikeditor erwischen oder einen Regler in einem Video präzise bewegen musst.
  • Gaming-Modus (Left Ctrl + Right Shift + G). Absolute Mauskoordinaten brechen die Steuerung in vielen 3D-Spielen und virtuellen Maschinen. Im Gaming-Modus deaktiviert DeskHop das automatische Bildschirmumschalten und kehrt zur standardmäßigen relativen Positionierung zurück.
  • Umschalt-Sperre (Right Ctrl + K). Sperrt die Steuerung auf den aktuellen Computer, damit keine versehentliche Handbewegung den Cursor während eines Anrufs zum zweiten Monitor fliegen lässt.
  • Bildschirmschoner-Modus (Left Ctrl + Right Shift + S). Der Cursor beginnt zufällig über den Bildschirm zu hüpfen wie ein Pong-Ball und verhindert so, dass der Computer in den Ruhezustand geht.

Hardware und Eigenbau

Das Projekt wurde von Anfang an so konzipiert, dass es jeder auf einem Küchentisch bauen kann. Die zweilagige Platine verwendet eine minimale Anzahl an Komponenten.

PCB Image

Komponenten für den Zusammenbau (PCB v1.1):

| Komponente | Menge | Ungefährer Preis | | --- | --- | --- | | Raspberry Pi Pico | 2 Stück | ~8,20 € | | USB-A-Buchse für Platine | 2 Stück | ~0,40 € | | TI ISO7721DR-Trenner | 1 Stück | ~1,40 € | | Kondensatoren und Widerstände (0805) | 8 Stück | ~0,44 € | | TPD4E1U06DBVR ESD-Schutzchips | 2 Stück | ~0,62 € |

Die Gesamtkosten für die Komponenten liegen bei etwa 11–12 Euro. Das Gehäuse lässt sich in ein paar Stunden im 3D-Drucker ausdrucken, und die Platine rastet ohne eine einzige Schraube ein.

DeskHop with 3D Printed Case

Für alle, die nicht selbst löten möchten, sind die Gerber-Dateien im Repository verfügbar. Du kannst eine fertig bestückte Platine oder einen Bausatz bei Elecrow bestellen.

PCB Assembly Guide

Firmware und Konfiguration

Du kannst das Projekt mit CMake oder Docker aus dem Quellcode bauen:

docker-compose -f misc/docker.yml run --rm build_container

Wenn dir das Bauen aus dem Quellcode zu aufwendig ist, gibt es eine fertige firmware.uf2-Datei im Releases-Bereich. Um das Gerät zu flashen, hältst du einfach Left Ctrl + Right Shift + C + O gedrückt. DeskHop startet neu und gibt sich als virtuelles Laufwerk namens „DESKHOP" aus, auf dem du einfach die .uf2-Datei ablegst.

Eine Hotkey-Kombination Right Shift + F12 + Y dient zum Kalibrieren der Übergangshöhe zwischen Monitoren unterschiedlicher Größe.

Border height difference

Die Konfiguration ist mit Sicherheit im Blick konzipiert. Keine Webserver oder Cloud-Dienste. Wenn du in den Setup-Modus wechselst, erscheint eine config.htm-Datei auf dem virtuellen Laufwerk. Du öffnest sie lokal in Chrome oder Yandex Browser und bearbeitest die Parameter über WebHID direkt im Browser.

Multiple screens per output

Web Browser with URL

Web Config

Der Autor hat einen eigenen Abschnitt den Sicherheitsbedenken gewidmet:

  • Keine gemeinsame Zwischenablage oder Dateiübertragung zwischen den Systemen.
  • Keine Netzwerkschnittstellen, kein WLAN und kein Bluetooth.
  • Computer können die Firmware des Geräts nicht ohne physisches Drücken von Tasten an der Tastatur aktualisieren.

Einschränkungen und Fallstricke

Das Projekt ist großartig geworden, aber nichts ist perfekt. Hier sind ein paar Dinge, die du vor dem Bau wissen solltest:

  1. Multi-Monitor-Setups. Seit dem Windows-10-Update KB50036 wird das Verhalten absoluter HID-Koordinaten bei mehreren Monitoren nicht mehr korrekt unterstützt. Der Cursor bleibt möglicherweise am ersten Bildschirm hängen. Es gibt experimentelle Workarounds in der Firmware, aber das Problem wird noch behoben.
  2. Komplexe Peripheriegeräte. Tastaturen mit Bildschirmen, Makro-Pads und Mäuse mit 20 Extra-Tasten funktionieren möglicherweise nicht korrekt. Einfache Büro- und mechanische Tastaturen ohne exotische Encoder funktionieren einwandfrei.
  3. Stromversorgung. Beide Computer müssen ihre USB-Ports mit Strom versorgen. Wenn ein PC vollständig stromlos ist, startet das Gerät nicht ohne einen externen Hub.

Mouse polling rate

Die Maus-Abfragerate erreicht 1.000 Hz, du wirst also keine Verzögerung bei Bewegungen bemerken.

Lohnt es sich?

DeskHop ist ein großartiges DIY-Projekt für ein Wochenende. Wenn du an zwei Workstations gleichzeitig arbeitest und die Software-KVM-Verzögerungen oder das Klicken auf billigen chinesischen Switches leid bist, hat sich das kleine Kästchen schon am ersten Tag bezahlt gemacht. Der C-Quellcode und die PCB-Schaltpläne sind vollständig offen unter der GPL-3.0-Lizenz.

Ähnliche Projekte