Kategorien
Allgemein Makerspace Projekte Unterrichtsideen

MacroPad im Eigenbau

Ziel war die Herstellung eines MacroPads bzw Keypads, vergleichbar z.B. dem Elegato-Streamdeck. Mit diesem Gerät können Tastendrücke, Shortcuts und Macros zum PC geschickt werden.

Als Keyboard-Switches kommen Cherry-MX brown zum Einsatz.

Switches Cherry MX brown clear

Erste Inspiration war das Projekt StreamCheap. Anstatt des dort genutzten Arduino nano und C/C++ wollte ich jedoch lieber mit Python arbeiten und nutze daher einen Raspberry Pi Pico. Der Einfachheit halber habe ich gleich noch einen Satz Pins und ein Micro-USB Kabel mitbestellt.

RaspberryPi Pico (Foto: Eckstein Komponenten)

Vom StreamCheap habe ich lediglich die Oberplatte (in welche die Switches eingesetzt werden) in meiner Variante des Pads verwendet.

Oberplatte des StreamCheap

Die Platte habe ich heruntergeldaen, in Cura gesliced (Standard Quality) und auf meinem Creality Ender-3 ausgedruckt.

Als Keycaps wurden zunächst einfache flache Modelle genommen; es müssten aber alle Cherry-kompatiblen Caps funktionieren. Das 3D-Modell für die Keycaps findet sich hier.

Nun mussten die Switches in die Platte montiert/gesteckt und die Keycaps mit etwas Druck aufgesetzt werden.

Anschließend wurde der RaspberryPi Pico mit den montierten Switches verlötet. Dabei habe ich die Pins 4,5,6 und 7 sowie 9,10,11 und 12 genutzt, da ich auf dem Pad 2×4 Tasten haben wollte. Diese Pins müssen jeweils mit einem Kontakt der Switches verlötet werden.

Die jeweils anderen Kontakte wurden alle miteinander verbunden und mit Pin 37 (3V3) verlötet.

Der untere Gehäuseteil wurde in Fusion360 konstruiert. Die Grundlage war dabei eine Projektion der Umrisse der Oberplatte. Daraus konnten die weiteren Formen abgeleitet werden. Hierbei kam in der Skizze unter anderem die Funktion Versatz zum Einsatz, mit der der ein wenig Spiel zwischen Oberplatte und Untergehäuse konstruiert wurde. Die Oberplatte wurde hierbei stets als eigene Komponente in Fusion360 behalten, um die Passung kontrollieren zu können.

Gehäuse mit Oberplatte und RPi Pico als Referenz

Weiterhin half ein vorgefertigtes Modell des RaspberryPi Pico bei der passgenauen Konstruktion der Aussparungen und der Bohrlöcher für die Montage des Mikrocontrollers. Auch dieser wurde in eine eigene Komponente importiert.

Aussparung für den Micro-USB Anschluss

Anschließend wurde das Modell in Cura (bei mir in Version 5.2.1) gesliced und ausgedruckt. Als Supports habe ich erstmalig die neuen Tree-Strukturen verwendet. Diese findet man in den Custom-Printsettings von Cura. Die Ergebnisse waren tadellos, die Supports (im Screenshot hellblau) ließen sich sehr einfach entfernen.

Den Druck kann man sich bei Langeweile auf Youtube anschauen. Eine Zeitrafferaufnahme habe ich nebenbei auch angefertigt, sie ist hier zu finden. Leider stimmt das Seitenverhältnis nicht, da ich versäumt habe, es passend in Octolapse anzugeben. Octolapse ist ein Plugin für die grandiose Software Octoprint, welche den 3D-Drucker komplett über einen RaspberryPi (4) steuern kann.

3D-Druck Setup mit Licht, Kamera, Ender-3 und RaspberryPi zur Steuerung

Anschließend wurden alle Teile montiert, die Schrauben habe ich einfach in die etwas kleiner konstruierten Bohrlöcher direkt in den Kunststoff geschraubt.

Fehlt noch die Software. Diese wurde mit Hilfe dieser sehr hilfreichen Anleitung geschrieben. Ich habe den Editor Mu verwendet, welcher über einen speziellen Modus für CircuitPython verfügt.

CircuitPython ist eine Firmware für den RaspberryPi Pico und hier herunterladbar. Die Datei wird einfach auf den angeschlossenen Pico gezogen und installiert sich dann selbst.

Anschließend kann in Mu die Datei code.py direkt vom verbundenen RPi Pico geöffnet werden. Anschließend wird über den Button „Seriell“ die Ausgabe des RPi Pico in Mu „umgeleitet“. Der Code wird nun nach jedem Speichern automatisch auf dem Pico ausgeführt und kann direkt getestet werden. CircuitPython wurde gewählt, da diese Version von MicroPython direkt die Bibliothek usb_hid mitbringt. Damit kann sich der Pico an jedem PC direkt und ohne weitere Software als Eingabegerät anmelden.

Es empfiehlt sich natürlich, die Funktion der Tasten zu kontrollieren, bevor alles verschraubt wird.

Der komplette Code findet sich hier.

Alle 3D-Dateien finden sich hier.

Und das war’s. Viel Spaß damit!

Materialliste:

Hardware:

  • 8x Switch (Cherry-MX)
  • RaspberryPi Pico
  • Micro-USB Kabel und Pins
  • Lötkolben, Lötzinn
  • Kabel
  • 3D-Drucker (Creality Ender 3)

Software:

  • Autodesk Fusion360 (für Lernende und Lehrende kostenlos)
  • Ultimaker Cura Slicer (5.x.x)
  • Mu Editor (1.2)
  • Adafruit CircuitPython Firmware

Credits:

https://www.thingiverse.com/thing:2822140

https://www.printables.com/de/model/109679-cherry-mx-low-profile-keycap

https://grabcad.com/library/raspberry-pi-pico-1

https://www.heise.de/tests/Ausprobiert-Raspberry-Pico-mit-USB-HID-als-Tastatur-oder-Maus-benutzen-6011697.html