Willkommen im Open Steam Controller -Projekt!
Dies ist ein Projekt, bei dem ich daran gearbeitet habe, die Dampfcontroller -Firmware und -Hardware zu dekonstruieren, zu dokumentieren, umzuverwenden und zu erweitern.
Erstens ist es wichtig, ein wenig über den Steam Controller zu sprechen (die Hardware, auf die sich dieses Projekt konzentriert).

Der Steam Controller ist ein Videospiel-Controller, der am 10. November 2015 von Valve Corporation veröffentlicht wurde. Dies war Teil der Initiative von Valve, um PC-Spielern die Option einer Konsolenerfahrung zu geben (dh der Couch-Gamer, der vor einem Fernseher sitzt und einen Controller anstelle von Tastatur und Maus verwendet).

Der Steam Controller versuchte, einige Aspekte modernen Videospielcontrollern (dh ein analoge Stick, vier Gesichtstasten, zwei Schulter- und Stoßstangen -Tasten) vertraut zu halten und gleichzeitig einige der Normen zu ändern, die wir erwartet haben (dh ersetzt das Richtungskissen und den rechten analogen Analog mit Trackpads).

Weitere Details zum Controller finden Sie auf der offiziellen Produktseite
Sie fragen sich vielleicht, warum dieses Projekt existiert und warum ich in den letzten Jahren eine nicht zu vernachlässigbare Menge meiner Zeit und Energie in sie investiert habe.
Zuerst fand ich das Design dieses Controllers überzeugend. Es ist eine interessante Idee, zwei Trackpads anstelle des D-Pad und des rechten analogen Sticks zu haben. Die Trackpads können so konfiguriert werden, dass sie auf verschiedene Arten handeln und nicht nur das nachahmen, was sie ersetzt, sondern auch neue Interaktionsparadigmen bereitstellen. Außerdem ist die Idee, die Haptik zu verwenden, um ein wenig zu spielen, wenn der Controller startet oder geschaltet wird, eine ordentliche Note, die den Controller weiter hervorsticht. Die Möglichkeit, diese Jingles vollständig anzupassen, war ein nahezu unmittelbarer Wunsch, als ich den Controller zum ersten Mal anfing.
Zweitens war der Controller ziemlich zugänglich. Das Hochladen von Firmware -Updates machte manuell das Eintrittsbarriere für die Ausführung einer kundenspezifischen Firmware. Es gab immer noch eine beträchtliche Herausforderung, sogar eine "Hello World" zu bekommen (dh die Dampfknopf -LED). Dies war jedoch nicht annähernd so schwierig, wie ich mir vorstelle, dass ein Controller etwas Ähnliches unternimmt, das temperter resistenter ist. Ich schätze die Tatsache, dass Valve diese Hardware so zugänglich gemacht hat wie sie und entmutigen die Leute nicht davon, zu versuchen, sie zu hacken.
Drittens hat Ifixit einen wirklich schönen Abnutzung des Controllers gemacht. Dies gab mir eine Vorstellung davon, was der Controller intern vorgegangen war, ohne (anfangs) meine Hardware auseinander zu nehmen. Dies wies auf eine Menge ordentlicher Peripheriegeräte und Prozessoren hin, mit denen ich hielt, mit denen ich zu arbeiten war, insbesondere im Kontext eines Produkts, das bereits für einen bestimmten Zweck ausgelegt war.
Nachdem der Controller und einige seiner (Standard-) Funktionen erklärt wurden, können wir über dieses Projekt sprechen. Ich möchte nämlich abdecken, was erreicht wurde und was ich hoffe, vorwärts zu gehen.
Beachten Sie, dass das Folgende ein bisschen ausführlich und eine Erzählung ist. Es gibt viele Inhalte in diesem Projekt und dies ist ein Versuch, die Details auf eine Weise aufzubrechen, die ein leichtes Verfolgen des Landes für Menschen mit diesen Bemühungen verfolgt. Wenn Sie eine TLDR -Person sind, lesen Sie den Abschnitt "Bekanntmachung" und "Warning unten" und können Sie dann in den Abschnitt Subprojects springen, um zum Fleisch der Anstrengung zu gelangen. Sie sollten auch sicher sein, dass Sie sich die Demo -Videos ansehen, die einige der wichtigsten Erfolge in Aktion zeigen.
Wie bereits erwähnt, besteht die Hauptabsicht dieses Projekts darin, Konfigurationsoptionen und -nutzungen für den Steam Controller zu untersuchen, zu dekonstruieren und zu erweitern. Das ist jedoch etwas vage. Beginnen wir also mit einigen Beispielen. Erstens war es ein Hauptziel dieses Projekts, benutzerdefinierte Firmware für den Hauptprozessor auf dem Controller schreiben zu können. Dies öffnet die Tür für viele andere Möglichkeiten, die sich vorwärts bewegen.
Bevor ich jedoch anfangen konnte, Firmware zu schreiben, brauchte ich weitere Informationen über den Controller. Valve war nett genug, um die Tür offen für den Zugriff auf die binäre Version ihrer Firmware und die Möglichkeit, den Hauptprozessor einfach zu aktualisieren. Sie lieferten jedoch keine Schaltplätze oder eine Liste von Komponenten oder Datenblättern, die ein eingebetteter Software -Ingenieur normalerweise haben würde, wenn sie mit dem Auftrag des Schreibens benutzerdefinierter Firmware beauftragt würden. Daher musste ich mich dem Umkehrtechnik umkehren. Dies läuft im Wesentlichen darauf hinaus, die Hardware und die offizielle Firmware zu dekonstruieren, damit ich verstehen kann, wie ich meine eigene Firmware schreiben kann. Zu diesem Zeitpunkt hat die Reverse Engineering Bemühungen größtenteils ihren Kurs durchgeführt, da viel entdeckt, dokumentiert und für andere Bemühungen verwendet wurde. Details zum Reverse Engineering Bemühungen finden Sie im Subprove Reverse Engineering.
Jetzt, da eine Reverse Engineering -Anstrengung eingerichtet wurde und ich angefangen habe, Informationen über die Hardware zu sammeln, konnte ich mit dem Schreiben einer benutzerdefinierten Firmware beginnen. Schauen Sie sich das Firmware -Unterprojekt an, um den aktuellen Softwarezustand anzuzeigen. Meistens ist dies eine Versorgungssoftware, mit der ein Benutzer verschiedene Peripheriegeräte abfragen oder Messungen in verschiedenen Zuständen annehmen kann (da einige dieser Informationen erfasst und wieder in den Reverse Engineering -Prozess eingespeist werden mussten, um es in Bewegung zu halten). Es wurde jedoch schließlich klar, dass hier genügend Funktionen erfasst wurden, dass es nicht zu viel zusätzliche Arbeit sein würde, um diese Hardware als Controller für andere Konsolen (dh der Nintendo -Switch) zu machen.
Als nächstes kommen wir zu dem, was ursprünglich die einzige Absicht dieses Projekts war. Das heißt, das Ziel, die volle Kontrolle über die Songs (Jingles) zu haben, die der Steam Controller (über die Trackpad Haptics) auf Power Up and Down spielt. Aufgrund einiger Entdeckungen über die Reverse Engineering -Bemühungen ermöglicht dieses Projekt, dass Jingles vollständig angepasst werden und dass diese Anpassungen bestehen bleiben und gleichzeitig die offizielle Firmware von Valve ausführen. Weitere Informationen zum Anpassung der Jingles in Ihrem Controller oder weitere Details (dh, wie Jingle -Daten formatiert sind und wie wir Jingles anpassen können, ohne die offizielle Firmware zu ändern), finden Sie im Subproject von Jingles.
Schließlich ist es wichtig zu erwähnen, dass eine weitere Absicht dieses Projekts darin besteht, eine pädagogische und/oder motivierende Ressource zu sein. Vielleicht interessieren Sie sich für den Steam Controller. Oder Sie interessieren sich für ein kommerzielles Gerät. In beiden Fällen ist es die Hoffnung, dass dieses Projekt klare und präzise Informationen bereitstellt, die Menschen inspirieren und es ermöglichen, mehr zu lernen und zu tun. Ich weiß, dass ich viel aus diesen Bemühungen gelernt habe, und wenn etwas davon geteilt und anderen helfen kann, wäre das großartig.
Für einen Ausgangspunkt zu zusätzlichen Details und den Errungenschaften und zukünftigen Absichten dieses Projekts finden Sie den Abschnitt Subprojects unten.
Bitte erkennen Sie an, dass Sie dies auf eigenes Risiko tun, indem Sie einen Teil dieses Projekts nutzen. Dies ist eine Reverse Engineering -Anstrengung, und ich behaupte nicht, die Hardware vollständig zu verstehen, für die ich kundenspezifische oder modifizierte Firmware zur Verfügung stelle. Hoffentlich verhindert die Tests, die ich vor der Veröffentlichung meiner Erkenntnisse und Änderungen durchführen kann, Schäden an Ihrem Dampfcontroller oder irgendetwas, mit dem Sie Ihren Dampfcontroller anschließen können (dh der Nintendo -Schalter). Ich kann das jedoch nicht garantieren.
Bitte beachten Sie auch, dass dies hauptsächlich für Bildungszwecke geteilt wird. Dies kann es einem Benutzer ermöglichen, Dinge wie die Verwendung des Steam Controller auf dem Nintendo-Switch zu ermöglichen, bitte erkennen Sie, dass dies im Vergleich zu offiziell unterstützten Hardware und Firmware fast definitiv mit Kompromisse einhergehen wird. Wenn Sie einen billigen Switch -Controller wünschen und damit einverstanden sind, dass er verkabelt wird, schauen Sie sich die Powera oder Hori an. Wenn Sie einen vollständig vorgestellten Controller möchten, sollten Sie das zusätzliche Geld ausgeben und einen Pro -Controller erhalten (es lohnt sich wirklich).
Beachten Sie schließlich, dass ich all dies mit der Hoffnung sage, niemanden zu entmutigen. Bitte tauchen Sie ein und lassen Sie sich die Hände schmutzig. Bitte beachten Sie, dass es eine (hoffentlich) sehr kleine, aber ungleich Null gibt, die Chance hat, dass ein Fehler zu gemauerten oder kaputten Hardware führen könnte.
Dieser Abschnitt enthält kurze Umrisse und Demonstrationen (falls zutreffend) der Hauptanstrengungen dieses Projekts. Weitere Einzelheiten zu jedem Unterprojekt finden Sie in ihren jeweiligen Verzeichnissen.
Die Arbeiten in diesem Verzeichnis sind auf die Erstellung eines vollständig benutzerdefinierten Firmware -Builds für den Steam Controller ausgerichtet. Dieses Projekt kann so konfiguriert werden, dass der Controller als Entwicklungssystem fungiert, mit dem Peripheriegeräte abfragen und das Verhalten des Systems erforscht oder bestätigt werden können. Zusätzlich kann das Projekt für praktischere Zwecke konfiguriert werden, z. B. sich wie ein kabelgebundener Nintendo Switch Controller.
Im Folgenden finden Sie einige Videos, die die verschiedenen Firmware -Builds demonstrieren:
Open Steam Controller: Nintendo Switch
Open Steam Controller: Entwicklungskarte
Die Arbeiten in diesem Verzeichnis sind darauf ausgerichtet, eine benutzerfreundliche Möglichkeit zu erstellen, um anzupassen, was Jingles gespielt wird, wenn der Steam Controller startet und heruntergefahren wird.
Im Folgenden finden Sie ein Video, das demonstriert, wie Jingles auf dem Steam Controller anpassen:
Open Steam Controller: Jingle -Anpassung
Die Arbeit in diesem Verzeichnis konzentriert sich auf die Dekonstruktion der Firmware und Hardware des Steam Controllers. Das daraus oft gewonnene Verständnis ist a
signifikanter Teil der anderen Unterprojekte.
Steam bietet die Möglichkeit, bestimmte Konfigurationsoptionen für einen Steam Controller zu ändern (dh Änderung der LED -Helligkeit, Änderung, welche Jingle aus dem Systemspeicher gespielt wird). Dieses Verzeichnis enthält Arbeit zum Verständnis, Reproduzieren und möglicherweise um diese Funktionalität.
Dies ist ein Open -Source -Projekt. Verwenden Sie dies also bitte, wie Sie möchten (solange es keine darin enthaltenen Lizenzen verstößt).
Wenn Sie Beiträge zu diesem Repo anbieten möchten, wäre das großartig. Dies könnte in Form von Problemen/Diskussionen darüber erfolgen, wie dies benutzerfreundlicher sein kann oder indem sie Funktionen oder Unterstützung hinzufügen, die noch nicht vorhanden sind.
Beachten Sie, dass für jedes Unterprojekt TODO -Dokumente vorhanden sind. Die Idee ist, Ziele zu skizzieren, die ich erreichen möchte. Wenn Sie bei einem dieser Hilfsmittel helfen möchten, wäre das großartig. Es wäre noch toller, wenn Sie ein Gespräch über Ihre Absichten beginnen würden, um die Wahrscheinlichkeit doppelter Anstrengung oder unpassender Designs einzuschränken.
Ich werde mein Bestes tun, um eine einfache und robuste Software zu bieten. Es wird jedoch höchstwahrscheinlich noch Fehler geben. Wenn Sie einen Fehler finden, melden Sie ihn bitte.
Der beste Weg, einen Fehler zu melden, besteht darin, die Registerkarte "Probleme auf GitHub" zu verwenden.
Stellen Sie bei der Meldung eines Fehlers/Problems sicher, dass Sie ausreichende Details angeben. Wichtige Details, die enthalten sind, sind:
In diesem Abschnitt werden einige Projekte aufgeführt, die dieses Projekt beeinflusst haben, sowie Links zu einigen Ressourcen, die weiterhin hilfreich sind, um auf dem neuesten Stand zu bleiben.
Während in diesem Projekt bisher viel erreicht wurde, gibt es immer noch so viel mit dem Steam Controller (insbesondere angesichts der bis zu diesem Zeitpunkt festgelegten Grundlagen). Um diese Ideen zu erfassen und zu verfolgen, wurden für jedes Unterprojekt TODO -Dokumente erstellt. Ein guter Ausgangspunkt ist das Top-Todo-Dokument. Dies deckt die höchsten Ziele für das Projekt ab und liefert Links zu subprojektspezifischen TODOs.