COCKPIT SUITELIVE HUB /

Werkstatt / FreeJoy und USB-Eingaben

FreeJoy: dein eigenes USB-Cockpitpanel ohne eigenen Firmwarecode

Du möchtest echte Taster, Rastschalter oder einen Schubhebel im Simulator bedienen, aber keine Joystick-Firmware selbst schreiben? FreeJoy übernimmt viele dieser Grundlagen. Du verbindest passende Bauteile mit einem unterstützten Controller, konfigurierst ihre Funktion und belegst die Eingaben anschließend im Simulator. Mit einem kleinen, nachvollziehbaren Aufbau gelingt der Einstieg Schritt für Schritt.

Dein ErgebnisEin geplanter USB-Controller mit geprüften Tasten und Achsen, gesicherter Konfiguration und einer nachvollziehbaren Zuordnung im Simulator.

Redaktionsstand: 18. Oktober 2026

Was FreeJoy dir abnimmt

FreeJoy ist eine frei verfügbare, konfigurierbare Firmware für selbst gebaute Spielsteuerungen. Ein Tastenpanel, Pedale, ein Steuerknüppel oder ein Schubhebel können damit als USB-Spielcontroller arbeiten. Der Konfigurator ersetzt bei den unterstützten Funktionen das Schreiben eines eigenen Programms: Anschlüsse zuweisen, Schalterverhalten wählen, Achsen kalibrieren und Einstellungen auf das Gerät übertragen.

Das spart Arbeit an USB-Berichten, Eingabeauswertung und vielen Standardfunktionen. Es ersetzt nicht die Planung deiner Mechanik, saubere Verdrahtung und die Belegung im Spiel. Auch ohne Programmierkenntnisse kannst du beginnen: Nimm zunächst einen Taster, prüfe dessen sichtbare Reaktion und ergänze erst danach weitere Elemente. Für eine selbst programmierte Anzeige führt dich der Leitfaden KI und Programmierung durch einen anderen, ergänzenden Einstieg.

Board und Versionsstand zuerst klären

Das Originalprojekt nennt den STM32F103C8, üblicherweise auf einem Blue-Pill-Board. Die Farbe einer Platine beweist keine Eignung: Eine Black Pill mit F401 oder F411, ein ESP32 oder ein Arduino Uno ist kein austauschbares Ziel für diese Firmware. Prüfe Chipbeschriftung, Schaltplan, Speichervoraussetzungen und die Anleitung zur konkreten Firmwaredatei. Ein ähnlich beschrifteter Nachbau ist keine automatisch freigegebene Alternative.

ST spezifiziert für den F103C8 offiziell 64 KB Flash. Die hier als Daten geprüfte Release-Datei 1.7.3b0 bleibt innerhalb dieses 64-KB-Bereichs; eine angenommene Erweiterung auf 128 KB ist dafür nicht nötig. Das ersetzt nicht die Prüfung der tatsächlichen Platine und des passenden Installationswegs.

Stand der Recherche am 18. Oktober 2026: Die offiziellen Release-Seiten markieren Firmware v1.7.3b0 und Qt-Konfigurator 1.7.3b0 als neueste Veröffentlichungen unter dem Titel 1.7.3. Verwende zusammengehörige Versionen. Alte Konfigurationen und Anschlussbilder nicht ungeprüft übernehmen: Die Versionshinweise dokumentieren beispielsweise eine frühere Änderung der I²C-Pins. Der Mikrocontrollervergleich hilft bei der Auswahl; eine höhere Prozessorgeschwindigkeit allein macht ein Board nicht kompatibel.

USB-HID, DirectInput und die Bedeutung von DX-Buttons

HID bedeutet Human Interface Device. FreeJoy meldet sich mit passender Firmware als USB-Spielsteuerung; Windows verwendet dafür seine HID-Infrastruktur. Für die normale Eingabeausgabe muss der Konfigurator nach dem Einrichten nicht ständig geöffnet bleiben. Das ist praktisch für ein Cockpitpanel: Einstecken, erkanntes Gerät prüfen und das gespeicherte Profil im Simulator verwenden.

DirectInput ist eine Windows-Schnittstelle, über die Spiele unter anderem Joysticks auslesen können. Ein „DX-Button“ ist hier eine gemeldete Joysticktaste, kein fertiger Befehl wie „Fahrwerk ausfahren“. Erst die Simulatorbelegung gibt ihr diese Bedeutung. XInput ist eine andere Schnittstelle; ein Spiel mit ausschließlich XInput-Unterstützung muss diesen Controller nicht erkennen. Ebenso kann ein älterer Simulator weniger Tasten auswerten als FreeJoy bereitstellt. Teste genau das Zielspiel, nicht nur die USB-Erkennung.

Ein überschaubares Cockpitpanel planen

Unser Beispiel ist ein kleines Bedienpanel mit vier Tastern, einem rastenden Ein/Aus-Schalter, einem Encoder mit Druckfunktion und einem 10-kΩ-Linearpotentiometer. Die Aufgabe lautet: vier einzelne Befehle, eindeutiges Ein- und Ausschalten einer verfügbaren Simulatorfunktion, zwei Einstellrichtungen und eine stufenlose Achse. Das sind Anforderungen; welche Flugzeugfunktion tatsächlich belegbar ist, klärst du vorher im Simulator.

Für einen frischen, passenden Blue-Pill-Aufbau ist folgende Pinplanung ein überprüfbarer Vorschlag. Alle genannten Digitaleingänge werden als Button_Gnd verwendet; ihre Kontakte schließen gegen gemeinsame Masse. Beim Potentiometer liegen die äußeren Anschlüsse an 3,3 V und GND, der Schleifer an A0. Nur spannungsfrei verdrahten. Pinbezeichnungen und freie Funktionen am eigenen Board prüfen; USB-, Programmier- und bereits benutzte Schnittstellen bleiben reserviert.

Beispielplan: ein überschaubares USB-Panel
BauteilPinplanungErwartete Funktion
Vier TasterB12, B13, B14, B15 → jeweils GNDVier getrennte normale Buttons
RastschalterB5 → GNDZwei logische Impulse: schließen / öffnen
Encoder und DrucktasteA/B an B6/B7; Taster an B8; gemeinsame MasseJe ein Button pro Drehrichtung plus Druck
10-kΩ-Linearpotentiometer3,3 V / Schleifer A0 / GNDEine kalibrierte Achse ohne Zentrierung

Vom leeren Board zum ersten funktionierenden Eingang

Sichere bei einem vorhandenen Controller zunächst die Konfiguration und notiere die bisherige Firmware. Für ein neues Board beschreibt das Projekt die Erstprogrammierung über ST-Link beziehungsweise USB-UART. Folge der passenden offiziellen Anleitung einschließlich Bootzustand, Versorgung und Dateiauswahl. Ein beliebiges USB-Kabel allein macht ein leeres Board noch nicht zu einem FreeJoy-Gerät. Die Grundlagen erklärt Firmware verstehen und übertragen.

Nach erfolgreicher Einrichtung liest du die Konfiguration vom Gerät, weist zunächst B12 als Button_Gnd zu und speicherst sie mit „Write Config to Device“. Betätige den ersten Taster und identifiziere seine Nummer in der Anzeige der physischen Tasten. Ordne diese einem normalen logischen Button zu, schreibe erneut und kontrolliere dessen Reaktion. „Save Config to File“ sichert zusätzlich eine Datei auf dem Rechner; es ersetzt nicht das Schreiben ins Gerät. Nach Abziehen und Wiederanstecken muss derselbe Test weiterhin funktionieren.

Physische Kontakte und logische Tasten verstehen

Eine physische Taste ist der erkannte Kontakt; die logische Taste ist das daraus erzeugte Signal für den Rechner. Beide Nummern müssen nicht gleich sein. Dokumentiere deshalb drei Spalten: Bauteil, physischer Eingang, logischer Button. Ein Eingang kann mehreren logischen Funktionen zugeordnet werden. Beim Rastschalter erzeugt beispielsweise die Funktion ToggleSwich_On einen Impuls beim Schließen und ToggleSwich_Off einen weiteren beim Öffnen. Belege sie nur dann mit getrenntem Ein/Aus, wenn das Spiel solche Befehle bietet.

Button_normal folgt dem Kontakt; Button_Toggle speichert bei jedem Tastendruck einen wechselnden logischen Zustand. Entprellung, Delay Timer und Press Timer haben unterschiedliche Aufgaben: Kontaktflattern unterdrücken, die Auslösung verzögern beziehungsweise die logische Betätigung zeitlich festlegen. Beginne mit den Vorgaben und ändere jeweils nur einen Wert. Eine sehr lange Entprellzeit kann kurze gewollte Betätigungen verschlucken; lange Impulse können einen gehaltenen Spielbefehl auslösen. Prüfe auch das Verhalten beim Start mit bereits eingeschaltetem Rastschalter.

Mehr Funktionen und mehr Anschlüsse

FreeJoy dokumentiert bis zu 128 digitale Eingänge, acht Achsen, vier POV-Hats und fünf Shift-Modifikatoren. Das ist ein Funktionsrahmen, keine Zusage, dass jeder Aufbau alle Möglichkeiten gleichzeitig ohne Pin- oder Ressourcenüberschneidung nutzt. Radio-Gruppen halten eine gewählte logische Funktion aktiv; sequenzielle Modi schalten mit wiederholten Betätigungen durch eine zugeordnete Folge. Shift-Modifikatoren ermöglichen eine zweite Belegung. Beschrifte solche Ebenen, damit du im Flug nicht raten musst.

Für mehr Kontakte stehen direkte Pins, eine Tastenmatrix und unterstützte Schieberegister zur Wahl. Eine Matrix spart Anschlüsse, verlangt aber korrekte Zeilen, Spalten und Dioden entsprechend der Projektdokumentation; prüfe ausdrücklich mehrere gleichzeitig gedrückte Tasten. Bei 74HC165 oder CD4021 werden Clock, Data und Latch passend zum Baustein konfiguriert. Die Dokumentation empfiehlt 3,3 V. Ein 74HC595 ist ein anderer Baustein und kein gleichwertiger Eingangsersatz. Mehr zur mechanischen Auswahl findest du unter Bedienelemente.

Zum weiteren Funktionsumfang gehören vier PWM-Kanäle für Beleuchtung und bis zu 24 einzelne oder als Matrix angeordnete LEDs. Version 1.7.3 ergänzt adressierbare WS2812b/PL9823, Aktivierung durch Buttons, Timer für einfarbige LEDs sowie deren externe Steuerung über USB-HID und den Konfigurator. Das Projekt nennt bis zu 50 adressierbare LEDs. UART-TX-Berichte können externe Geräte versorgen. Keine dieser Möglichkeiten liefert von selbst die passende Simulator-Telemetrie oder eine bestätigte Cockpit-Suite-Anbindung.

Encoder: drehen ist etwas anderes als drücken

Ein inkrementeller Encoder liefert zwei versetzte Signale. FreeJoy erkennt daraus die Drehrichtung und kann zwei logische Tasten oder eine Achsenänderung erzeugen. Die Druckfunktion ist ein separater Kontakt. Die Dokumentation unterscheidet bis zu 15 gewöhnliche Encoder und einen schnellen Encoder; der Fast_Encoder verwendet A8 und A9. Dafür sind nicht beliebige freie Pins austauschbar. Unser Beispiel verwendet einen gewöhnlichen Encoder an B6/B7 und dessen Taster an B8.

Ordne die beiden Kanäle gemäß Anleitung Encoder_A und Encoder_B zu. Drehe zehn Rasterungen langsam in jede Richtung, dann schneller, und vergleiche die ausgelösten Schritte. Falsche Richtung, doppelte Schritte und Aussetzer haben verschiedene Ursachen: Kanalzuordnung, Encoderart, Kontaktqualität oder Zeitparameter. Die Wiki nennt 10 ms als Vorgabe der Encoder-Impulszeit und empfiehlt unter 50 ms; das ist kein garantierter Optimalwert für jeden Simulator. Ändere den Wert erst anhand eines reproduzierbaren Tests.

Achsen: vom Sensor zum nutzbaren Steuerweg

Für das Potentiometer wird A0 als analoge Quelle eingerichtet und einer logischen Achse, beispielsweise X, zugeordnet. Deaktiviere unbenutzte Achsen. FreeJoy unterstützt außerdem dokumentierte digitale Sensoren wie AS5600 und bestimmte TLE501x-Varianten sowie externe ADCs, darunter ADS1115 und MCP3201/02/04/08. Entscheidend sind genaue Typbezeichnung, Schnittstelle, Kanal und Konfigurationsstand. Ein beliebiger Hall-Sensor oder I²C-Baustein ist dadurch nicht automatisch geeignet.

Beobachte zuerst den Rohwert: Er muss über den mechanischen Weg nachvollziehbar steigen oder fallen. Starte dann die Kalibrierung, bewege den Hebel zwischen seinen tatsächlich erreichbaren Endstellungen und speichere das Ergebnis. Bei einer selbstzentrierenden Achse gehört die Ruhelage dazu; ein Schubhebel braucht normalerweise keine künstliche Mittelstellung. Die internen analogen Eingänge haben 12-Bit-Auflösung. Eine größere Zahl im USB-Wertebereich erzeugt weder zusätzliche Messgenauigkeit noch eine bessere Mechanik.

Totzonen, Filter und Kurven gezielt abstimmen

Eine zentrale Totzone hilft, kleine Schwankungen um die Ruhelage auszublenden. Die dynamische Totzone reagiert auf kleine Änderungen um den aktuellen Wert. Beides kann feinste gewollte Bewegungen verdecken. Beginne klein und beobachte die Wirkung. Die sieben Filterstufen glätten den Verlauf, bringen aber Verzögerung mit sich; das Projekt rät bei zeitkritischen Achsen von hohen Stufen über Level 3 ab. Ein lockerer Anschluss wird durch einen starken Filter nicht repariert.

Invertierung dreht die Richtung um. Kurven verändern die Empfindlichkeit entlang des Weges; eine sanftere Mitte kann präzises Steuern erleichtern, kostet aber gleichmäßige Zuordnung. Prescaler, kombinierte Achsen und Tastenfunktionen zum Verändern, Zentrieren oder Zurücksetzen einer Achse sind weitere dokumentierte Werkzeuge. Achsenbereiche können außerdem logische Tasten auslösen. Konfiguriere erst eine lineare Grundfunktion und ergänze nur die benötigte Wirkung. Gleichzeitige Kurven in FreeJoy und im Simulator addieren sich und erschweren die Fehlersuche.

Im Simulator prüfen und Fehler eingrenzen

Öffne unter Windows über joy.cpl die Spielcontroller-Eigenschaften. Prüfe zunächst die niedrigen Buttonnummern und die Beispielachse. Die klassische Anzeige kann bei vielen Buttons unvollständig sein; eine fehlende Anzeige oberhalb ihres Umfangs beweist keinen Defekt. Danach belegst du im Simulator genau eine Funktion und kontrollierst Halten, Loslassen, erneutes Verbinden und Neustart. Für unser Panel muss jede Betätigung genau die dokumentierte Wirkung auslösen, ohne benachbarte Eingänge zu verändern.

Wenn ein Rohkontakt fehlt, prüfe Verdrahtung und Pinmodus. Wenn der physische Eingang stimmt, aber der logische nicht, prüfe Zuordnung, Shift und Timer. Wenn Windows reagiert, aber das Spiel nicht, untersuche Geräteauswahl, Buttonlimit und doppelte Belegungen. Ein bestätigter Fahrwerkszustand für LED oder OLED ist ein weiterer Datenweg: USB-Eingaben erzeugen keine automatische Rücktelemetrie. Dokumentierte LED-Ausgänge und Hoststeuerung ersetzen keine passende Simulatorintegration. Die Artikel USB-Eingaben und Fehlersuche vertiefen diese Trennung.

Dein Projekt gemeinsam weiterentwickeln

Speichere nach jedem funktionierenden Ausbauschritt Konfiguration, Pinplan und eine kurze Testnotiz. Fotografiere beschriftete Anschlüsse vor dem Einbau. Eine Bitte um Hilfe wird dadurch konkret: „B12 reagiert physisch, Button 1 bleibt aus; Firmware und Konfigurator 1.7.3b0; Shift deaktiviert.“ Damit lässt sich mehr anfangen als mit „geht nicht“. Im Cockpit-Suite-Forum unterstützen wir dich bei solchen Fragen und ebenso bei Gehäusen aus dem 3D-Drucker, CNC-gefrästen Frontplatten oder Laserarbeiten mit LightBurn.

Cockpit Suite ist ein junges Projekt mit bereits verfügbarer Software für unterstützte Simulatoren und Geräte. Unser Ziel ist eine gemeinsame Software und möglichst einfache Einrichtung für passende Kombinationen; daraus folgt keine ungeprüfte FreeJoy-Kompatibilitätszusage. Wir möchten dich bei Problemen nicht alleinlassen und streben Antworten möglichst noch am selben Tag an, bei späten Anfragen entsprechend später. Gerade Erfahrungen aus der europäischen Community helfen uns, Anleitungen und unterstützte Abläufe weiterzuentwickeln. Dein erster sauber dokumentierter Taster kann schon ein hilfreicher Beitrag sein.

Primärquellen und Versionshinweise

Geprüft am 18. Oktober 2026. Funktionsangaben stammen aus den Projekt- und Microsoft-Dokumentationen; der kleine Panelplan und die Prüfschritte sind ein eigenes Beispiel, kein physisch getesteter Bausatz.

Dein nächster Bauschritt