Do-it-yourself Streamdeck

Vor einiger Zeit habe ich im „The Productivity Show“ Podcast eine Empfehlung für das Elegateo Streamdeck gehört. Da war ich neugierig was das ist und habe gesehen, dass es sich ganz abstrakt um eine zusätzliche Taststur handelt. Das Original kostet knapp 150€, zu viel für ein Gerät das keinen nativen Linux-Support hat. Zugegeben, das Streamdeck sieht toll aus und bietet Tasten mit Icon-Display und auch diverse „Ebenen“, so dass man für alle möglichen Anwendungen seine Shortcuts definieren kann. Aber eben kein Linux-Support vom Hersteller, auch wenn es Lösungen gibt. Also war für mich klar, dass ich mir eher selbst eine externe Tastatur basteln will.

Projektauswahl

Wenn man sich mit diesem Thema beschäftigt, dann findet man viele Lösungen, angefangen von einfachen externen Keyboards mit 6 oder 8 Tasten bis hin zu einem Projekt das die Idee der digitalen Icons aufgreift und eine Farbdisplay implementiert. Es gibt auch das Freedeck, das für jede „Taste“ einen kleinen LCD-Schirm verwendet auf den man dann tippt um einen Platinentaster zu betätigen. Das erschien mir alles zu aufwendig, also habe ich mich für den Bau dieses Thingiverse-Projektes entschlossen.

Die Teile fürs Gehäuse sind relativ schnell ausgedruckt, und eine der Tastenkappen habe ich auch mal testhalber gedruckt. Als dann die verwendeten Cherry MX-Taster geliefert wurden stellte sich allerdings heraus, dass die Tastenkappen des Projektes nicht passen, weshalb ich selbst welche designed habe.

Bastelstunde

Am Wochenende hatte ich dann endlich Zeit, alles zusammen zu bauen. Der Arduino-Microcontroller wird auf einer Lochrasterplatte mit den passenden Steckverindern zum Keyboard und Display verlötet. Hier kam wieder mein Fädelstift zum Einsatz, da Zinnbrücken bei Lochrasterplatten mit Lötstoplack eher schlecht funktionieren. Die Tastaturmatrix kann mit Litze verdrahtet werden, dann geht per Flachbandkabel zu den Steckverbindern. Ebenso wird für das Display verfahren, dort wird die Stiftleiste eingelötet und dann das ganze in einen Dupont-Steckverinder gesteckt.

Screenshot vom Prusa-Slicer

Ein erstes Problem zeigte sich dann beim Gehäuse-Design. Es sind zwar 4 Löcher für die Lochrasterplatte vorhanden, die hinten liegenden Punkte sind aber dank der schrägen Gehäusewand kaum mit einem Schraubendreher zu erreichen. Ist aber kein Beinbruch, denn die vorderen zwei Schrauben reichen eigentlich auch aus um die Lochrasterplatte zu halten.

Nach dem Zusammenbau habe ich dann mit der Arduino-IDE den Code auf den Microcontroller hochgeladen. Die Tastenfunktionen ließen sich mit „evtest“ überprüfen, wobei sich herausstellte, dass eine Taste defekt war und ersetzt werden musste. Das Display war allerdings nach dem Hochladen erst mal schwarz. Evtl. lag das aber daran, dass man vielleicht einmal „Power off“ haben muss, denn nach dem Einbau der Elektronik ins Gehäuse funktionierte auch das Display. Also dann mal schnell 15 Tastenkappen drucken und mit den Labels beschriften. Das fertige Gerät sieht dann so aus:

Das fertige Eigenbau-Streamdeck

Insgesamt 15 Tasten, einiges zur Mediensteuerung was sehr gut mit VLC, aber auch mit YouTube in Chrome funktioniert. Das Display ist eher ein Gimmick das ein Icon für die greade gedückte Taste anzeigt und diess dann nach rechst aus dem Display schiebt. Für das Foto habe ich mal kurz auf die „Lauter“ Taste gedrückt.

Konfiguration für meinen Linux Desktop

Die Tastenzuordnung funktioniert hier in meinen XFCE-Desktop über die Einstellungen der Tastatur. Damit können dann bestimmte Anwendungen gestartet werden, z.B. eine Dateisuche, ein Terminal oder auch der Lock-Screen eingeschaltet werden. Damit werden die Tastenkommandos eigentlich auf oberster Ebene abgefangen. Natürlich könnte man sich überlegen Tasten für diverse Anwendungen zu definieren, so wie das Original-Streamdeck es wohl für Windows macht. Das ist allerdings nicht ganz trivial, denn der „gemeine“ Tastenevent wird eigentlich an die Anwendung geleitet die gerade den Focus hat. Bedeutet, wenn ich ein „CTRL-M“ an MS-Teams senden wollte um mein Mikrofon stumm zu schalten müsste ich erst mal Teams in den Fokus holen und dann den Event senden. Mit dem Mic-Mute-Knopf au meinem Streamdeck hingegen schalte ich einfach auf Audio-Subsystem-Ebene alle Mikrofone stumm. Funktioniert, nur dass die anderen in der Teams-Konferenz eben nicht sehen, dass ich stummgeschaltet bin.

Wie teuer war das jetzt?

Ich habe jetzt mal auch ausgerechnet, wie teuer mich der Spaß kam. Die teuerste Komponente ist der Microcontroller mit 11€, das Display gibt es für 3,50€. Eine Cherry-MX-Taste kostet 75 Cent, also habe ich für die 15 Tasten dann 11,25 Euro ausgegeben. Die Elektronik kostet also zusammen 25,75€.

Die Filament-Kosten für die 3D-gedruckten Teile liegen insgesamt bei 5,15€, kann natürlich auch teurer sein wenn man edles Filament verwendet oder mehr Infill im Slicer einstellt.

Rechnet man dann noch ein wenig Geld dazu für Strom, Verdrahtung etc. Dann kommen wir auf rund 35€ für dieses Selbstbauprojekt, also weniger als ein Viertel von dem was das Elegato Streamdeck kostet.

Der Arbeitsaufwand beim Löten und Kabel-Crimpen war so zwischen 2 und 3 Stunden, aber das war auch etwas, das einfach mal Spaß gemacht hat.

Ist es nützlich?

Die Frage kann ich eigentlich nur mit „ja“ beantworten. Klar kann man alle Funktionen die das Ding bietet auch über Tastenkombinationen oder Menüs erreichen, aber mit diesem Makro-Keyboard sind sie halt nur „einen Tastendruck“ entfernt. Und dank der Audio-Steuerung nutze ich jetzt seit langem mal wieder den Medienplayer um nebenbei Musik zu hören.