Showing Posts From
Firmware

- 05 May, 2019
- 8 Min. Lesezeit
Xiaomi Roborock Saugroboter mit Raspberry Pi hacken/rooten (ohne cloud upload)
Ziel dieser Anleitung ist es, den Xiaomi/Roborock Saugroboter ohne Internet/Cloud zu betreiben. Es sollen keine persönlichen Daten hochgeladen werden können.Unterstützte Geräte: alle Roborock mit LDS (S5, S50, S55), Xiaomi MiEin Saug- und Wischroboter ist eine sehr große Hilfe bei einer großen Wohnung. Da die Preise in diesem Jahr stark gesunken sind, habe ich angefangen verschiedenen Modelle zu vergleichen. Die Funktion, dass der Saugroboter die Räume mit einem Laser abscannen kann und eine Karte der Wohnung erstellt, war mir wichtig. So kann der Saugroboter selbständig durch die Wohnung navigieren und die Räume schneller saugen, als ein Saugroboter der nach dem Zufallsprinzip vorgeht. Leider "benötigen" die Saugroboter mit Raumerkennung eine aktive Internetverbindung, um zu funktionieren. Damit habe ich ein großes Problem, da alle persönlichen Daten in die Cloud des Herstellers hochgeladen werden. Man hat keine Wahl ob bzw. welche Daten man freigibt. Mir ist es ein Rätsel warum das mit der deutschen Datenschutzverordnung möglich ist. Nach einer Recherche, habe ich das Dustcloud Projekt gefunden, mit der es möglich ist, Xiaomi/Roborock Saugroboter zu rooten. Mit dem Root-Zugang hat man uneingeschränkten Zugriff auf das System des Saugroboters und kann beliebige Software darauf installieren. Damit du den Saugroboter im eigenen Netzwerk steuern kannst, wird die Web-App Valetudo auf dem Saugroboter installiert. Benötigt wird:Roborock mit LDS (S5, S50, S55), Xiaomi Mi Raspberry Pi (A+ ist ausreichend) mit Micro-SD Kart, Monitor, Maus u TastaturDie Anleitung muss auf einem Linux (Debian) System ausgeführt werden (Windows/Mac OSX nicht möglich). Deshalb benötigst du den Raspberry Pi. Alternativ kannst du auch eine Virtuelle Machine mit Debian verwenden. Bei einigen Schritten kann es zu Problemen kommen, da die Programme mit der Netzwerkverbindung der Virtual Machine nicht zurecht kommen. Ich übernehme keine Haftung für Schäden. Beachte auch das die Garantie des Gerätes verfällt. Es ist möglich die original Firmware wieder auf das Gerät zu spielen. Inhalt Update 19.05.2019: Deutsche Sprachdatei hinzugefügt (Schritt 12) 15.09.2019: Python Befehle an Python 3 angepasst Firmware Flashen Teil. Danke an Benjamin und den anderen Hilfreichen Kommentatoren. Dustcloud/Dummycloud, Valetudo und Firmware herunterladenInstalliere Raspbian auf deinem Raspberry Pi. Eine einfache Anleitung findest du hier. Schritt 1 in dieser Anleitung ist ausreichend. WLAN kannst du im Raspbian Desktop einstellen.Aktualisiere die Paketlisten um die neuesten Software Versionen installieren zu können. Danach werden ein paar Programme installiert, die zum "rooten" benötigt werden. (&& verbindet zwei Befehle) sudo apt-get update && sudo apt-get install -y ccrypt git wget unzip dos2unixErstell einen Ordern mit dem Name rockrobo im Heimverzeichnis (/home/pi) und navigiere in den neu erstellten Ordner. mkdir ~/rockrobo && cd ~/rockroboKlone/kopiere das Dustcloud Repository in den aktuellen Ordner (rockrobo) mit Git. git clone https://github.com/dgiese/dustcloud.gitErstelle im rockrobo Ordner einen neuen Ordner valetudo und navigiere hinein. mkdir valetudo && cd valetudoJetzt musst du die aktuelle Valetudo Datei in den valetudo Ordner herunterladen. Geh dazu auf die Valetudo Release Seite. Dort sind alle Versionen aufgelistet. Bei mir ist es die Version 0.3.1. Scroll etwas nach unten bis zur "Assets" Auflistung. Kopiere dort den Link zur "valetudo" Datei. Ersetze dann den Link nach dem wget Befehl. wget https://github.com/Hypfer/Valetudo/releases/download/0.3.1/valetudo Nachdem du den Befehl ausgeführt hast, sollte sich eine Datei "valetudo" im aktuellen Ordner Befinden. Das kannst du mit dem Befehl ls prüfen.Erstell im valetudo Ordner einen neuen Ordner, mit dem Namen deployment und navigiere hinein. mkdir deployment && cd deploymentLade die valetudo.conf Datei herunter. wget https://github.com/Hypfer/Valetudo/raw/master/deployment/valetudo.confErstell im deployment Ordner einen neuen Ordner, mit dem Namen etc und navigiere hinein. mkdir etc && cd etc Lade die hosts und die rc.local Datei herunter. wget https://github.com/Hypfer/Valetudo/raw/master/deployment/etc/hostswget https://github.com/Hypfer/Valetudo/raw/master/deployment/etc/rc.local In der hosts Datei sind alle bekannten Xiaomi/mi.com/RoboRock Server vermerkt. Dies verhindert das deine Daten in die Cloud hochgeladen werden. In der rc.local Datei wird festgelegt, dass der Datenaustausch mit der Xiaomi/mi.com/RoboRock Cloud auf die interne Dummycloud umgeleitet wird. So wird dem RoboRock System vorgegaukelt das es nach "Hause telefoniert".Navigiere zurück in die oberste Ebene des rockrobo Ordners cd ~/rockrobo und erstelle dort einen neuen Ordner mit dem Namen rrlogd-patcher. Navigiere hinein. mkdir rrlogd-patcher && pushd rrlogd-patcher Lade die patcher.py Datei herunter. wget https://raw.githubusercontent.com/JohnRev/rrlogd-patcher/master/patcher.py Das Python script rrlogd-patcher sorgt dafür das die Cleaning Logs nicht verschlüsselt werden. Das ist nötig um sie später in der Valetudo App anzeigen zu lassen.Navigiere wieder zurück in die oberste Ebene des rockrobo Ordners cd ~/rockrobo und erstelle einen neuen Ordner mit dem Namen firmware und navigiere hinein. mkdir firmware && cd firmware Schau auf der Dustcloud Seite nach, welche die aktuellste getestete Firmware vom Roborock ist. Achte darauf das du die richtige Generation wählst (Roborock S5 ist z.B. Gen2). Ersetze den letzten Teil der URL (v11_001810.fullos.pkg) mit dem Dateinamen deiner Firmwareversion. wget https://cdn.awsbj0.fds.api.mi-img.com/rubys/updpkg/v11_001810.fullos.pkg Wenn du die Firmware nicht herunterladen konntest, probier einen anderen Server. Nicht alle Versionen sind auf allen Servern verfügbar.Du benötigst noch eine Sprachdatei. Diese findest du hier. Lade mit folgendem Befehl die deutsche Sprachdatei herunter (in den Firmware Ordner). wget https://dustbuilder.xvm.mit.edu/pkg/voice/de.pkgDein rockrobo Ordner sollte jetzt folgende Struktur haben.rockrobo/ ├── dustcloud │ ├── cloudprotocol.pdf │ ├── devices │ ├── docker │ ├── dummycloud │ ├── dustcloud │ ├── LICENSE │ ├── Pipfile │ ├── Pipfile.lock │ ├── presentations │ └── README.md ├── firmware │ ├── v11_001810.fullos.pkg │ └── de.pkg ├── rrlogd-patcher │ └── patcher.py └── valetudo ├── deployment │ └── etc │ ├── hosts │ └── rc.local └── valetudoSSH Key erstellen Der SSH Key wird benötigt, um dich später mit deinem gerooteten Roborock per SSH zu verbinden.Prüfe ob schon ein SSH Key existiert. Wenn die Meldung angezeigt wird, dass die Datei oder Verzeichnis nicht gefunden wurde, gibt es noch keinen SSH Key. cat ~/.ssh/id_rsa.pubErstelle einen neuen SSH Key mit folgendem Befehl. ssh-keygen Speicherort (~/.ssh/id_rsa) mit Enter bestätigen. Das Passwort kannst du leer lassen und mit zwei mal Enter Bestätigen.Firmware "patchen" und Image erstellen Bevor du die Firmware auf den Roborock kopierst, muss sie "gepatched" werden. Sonst hast du später keinen Root-Zugang zum Roborock und der Saugroboter kann nicht ohne Xiaomi Cloud betrieben werden.Navigiere wieder in den rockrobo Ordner cd ~/rockrobo und erstelle einen neuen Ordner image und navigiere hinein. mkdir image && cd imageFühre jetzt den Befehl aus, der die Firmware patch/rootet. Für eine bessere Übersicht habe ich den Befehl in mehrere Zeilen aufgeteilt. Durch Backslash \ am Ende jeder Zeile kannst du den Befehl so in dein Terminal einfügen und er wird als eine Zeile interpretiert. Wichtig ist noch, dass du den Dateiname der zuvor gespeicherten Firmware anpasst (bei mir v11_001810.fullos.pkg).sudo ../dustcloud/devices/xiaomi.vacuum/firmwarebuilder/imagebuilder.sh \ --firmware=../firmware/v11_001810.fullos.pkg \ --soundfile=../firmware/de.pkg \ --public-key=$HOME/.ssh/id_rsa.pub \ --valetudo-path=../valetudo \ --disable-firmware-updates \ --ntpserver=fritz.box \ --rrlogd-patcher=../rrlogd-patcher/patcher.py \ --replace-adbd Hier der selbe Befehlt in einer langen Zeile, falls du Probleme hast.sudo ../dustcloud/devices/xiaomi.vacuum/firmwarebuilder/imagebuilder.sh --firmware=../firmware/v11_001810.fullos.pkg --soundfile=../firmware/de.pkg --public-key=$HOME/.ssh/id_rsa.pub --valetudo-path=../valetudo --disable-firmware-updates --ntpserver=fritz.box --rrlogd-patcher=../rrlogd-patcher/patcher.py --replace-adbd Falls du keine Fritzbox hast, entferne die Zeile mit dem Parameter --ntpserver, oder ersetze fritz.box mit der IP des NTP Server.--firmware: gibt an wo die original Firmware gespeichert ist --soundfile: gibt an wo die Sprachdatei gespeichert ist, die später vom Saugroboter verwendet werden soll (hier englisch) --public-key: gibt an wo der Public SSH Key gespeichert ist --valetudo-path: gibt an wo das Valetudo Programm gespeichert ist --disable-firmware-updates: schaltet automatische Firmware Updates aus (wichtig da sonst der root Zugang verloren gehen kann) --ntpserver: IP des NTP Servers (Zeitserver) --rrlogd-patcher: gibt an wo das rrlogd-patcher script gespeichert ist --replace-adbd: falls etwas schief geht, kannst du noch per USB auf den Saugroboter zugreifenFirmware auf den Roborock Saugroboter flashen Jetzt muss das patchte Firmware Image auf den Roborock Saugroboter kopiert (flashen) werden.Installiere die benötigten Programme. sudo apt-get install -y python3 python3-pip python3-venv python3-dev libffi-dev libssl-devOptional: Erstell eine virtuelle Umgebung für die Python Pakete. Eine genaue Erklärung findest du in den Kommentaren. python3 -m venv .venvInstalliere wheel, damit weitere Pakete automatisch installiert werden können. pip3 install wheelInstalliere python-miio pip3 install python-miioSetze jetzt das WLAN des Roborock zurück, indem du die Zwei Tasten rechts und links neben dem Power Knopf gleichzeitig gedrückt hälst. Du kannst auch die Reset Taste unter der Klappe gedrückt halten.Verbind jetzt den Raspberry Pi mit dem WLAN des RoboRock. roborock-vacuum-s5-…. Wenn der Raspberry Pi mit dem WLAN des Roborock verbunden ist, kannst du die Firmware übertragen (flashen). Wichtig ist das du den Dateinamen der Firmware anpasst. Lass dir den Namen mit ls anzeigen. ls outputpython3 ~/rockrobo/dustcloud/devices/xiaomi.vacuum/firmwarebuilder/flasher.py -f output/v11_001810.fullos.pkg Diesen Befehl im images Ordner ausführen. ~/roborock/images Die Firmware wird übertragen. Danach wird sie auf dem RoboRock installiert. Das dauert ca. 5-10min. Den Saugroboter währenddessen nicht ausschalten! Wenn der Roborock die Start-Melodie abspielt, weisst du das die Installation beendet ist.Valetudo Webapp öffnen/ WLAN Einstellen, Roborock Steuern Auf dem Xiaomi Saugroboter läuft jetzt die Firmware mit Root-Zugang, die Valetudo Web-App und Dummycloud. Wenn dein Computer noch mit dem Roborock WLAN verbunden ist, kannst du im Browser die URL http://192.168.8.1 aufrufen. Saugroboter mit deinem WLAN verbinden. In der Valetudo Web-App unter Settings -> WIFI -> WIFI Settings kannst du deinen WLAN Namen und Passwort eingeben. Nach dem Bestätigen des Button "Save new Wifi configuration", startet der Saugroboter neu und verbindet sich mit deinem WLAN Netzwerk (das Roborock eigene WIFI verschwindet). Verbinde dein Computer mit dem zuvor eingestelltem WIFI und rufe die URL http://rockrobo/ auf.Valetudo App startet nicht/ ist nicht erreichbar. Falls die Valetudo Web-App sich nicht im Browser öffnet, kann es sein das sie manuell gestartet werden muss. Verbinde dich dazu per SSH mit deinem Roborock Saugroboter. Dein Computer muss mit dem WIFI des Roborock verbunden sein. Führe folgenden Befehl im Terminal aus, um dich per SSH zu verbinden. Es sollte der selbe Computer/Raspberry Pi sein, auf dem du vorher den SSH Key erstellt hast, oder du kopierst den Public SSH Key auf einen anderen Rechner. ssh root@rockrobo Starte jetzt valetudo service. service valetudo start

- 19 Oct, 2017
- 4 Min. Lesezeit
Gamepad/Macro Pad mit Mechanische Cherry MX Tasten 3D drucken - Arduino Pro Micro
Bau dir dein eigenes Gamepad mit mechanischen Tasten zusammen.Benötigte Teile:1x Arduino Pro Micro (Amazon ca. 10, Aliexpress ca. 4€) 21x mechanische Tastatur Taster Cherry MX oder Gateron Switches (Amazon, Aliexpress, Keycapsss.com deutscher Shop) 21x 1n4148 Dioden (Amazon ca. 3€, Aliexpress ca. 1€ ca. 1m Litze/Kabel ca. 26AWG Gamepad Case (3D-Druck Vorlage) Keycaps kaufen, oder selbst mit 3D-Drucker drucken (Thingiverse: DSA Keycap Set) Lötkolben und LötzinnTastatur Zubehör wie Cherry MX Switches und Keycaps gibt es auch beim deutschen Lieferanten keycapsss.com kaufen. InhaltGehäuse mit einem 3D-Drucker drucken Das Gehäuse kannst du mit einem 3D-Drucker selbst ausdrucken. Die Dateien habe ich auf Thingiverse hochgeladen. Es werden keine Supports benötigt. Ich empfehle eine Layer Höhe von 0.2-0.1 und ein Infill von ca. 20%. Das Gehäuse benötigt eigentlich keine Schrauben, da eine Clip-Verbindung eingebaut ist. Wer Schrauben verwenden möchte, benötigt 3x M3x12 Schrauben. Damit das Gamepad nicht verrutscht kannst du Gummifüße am Boden ankleben. Diese findest du bei Ikea, im Baumarkt, oder auf Amazon. :) Falls du keine 3D-Drucker hast, kannst du mich über das Kontaktformular anschreiben und ich kann dir ein Angebot machen. Falls mehrere an einem komplett Set interessiert sind, kann ich dies auch zusammenstellen und zum verkauf anbieten. Das Gehäuse wurde mit Fusion 360 von Autodesk erstellt. Falls du Ideen hast wie man das Gehäuse verbessern kann, schreib ein Kommentar unter den Artikel.Tasten verlöten (Keyboard Matrix) Als erstes steckst du alle Taster in das Gamepad Gehäuse. Achte darauf das die Pins an dem Taster oben sind (siehe Bilder weiter unten). Um das Anlöten der Dioden zu vereinfachen, solltest du die Dioden zurechtbiegen. Lass die Dioden in der Papierhalterung und biege sie an einer Tischkante wie auf dem Foto (achte auf die Richtung der schwarzen Markierung an den Dioden). Löte an jeden Taster eine Diode an den oberen linken Pin (achte auf die Richtung der schwarzen Markierung an den Dioden). Nachdem du alle Dioden angelötet hast, entferne den überstehenden Draht an der blauen Markierung. Biege den Diodendraht wie auf dem Bild zu Zeilen und löte die Dioden in jeweils einer Reihe zusammen. In der Reihe 3 und 4 (Reihennummer beginnt bei 0) benötigst du ein Zwischenstück aus Draht. Löte die Taster jetzt in Spalten zusammen. Verbinde dazu den rechten Pin am Taster mit dem rechten Pin am Taster darunter. Dazu benötigst du ca. 2cm lange Kabelstücke wie auf dem Bild. Die Enden kannst du mit einem scharfen Messer abisolieren. Tipp: Wer öfters Lötet, dem kann ich nur die Abisolierzange von Knipex empfehlen. Sie ist zwar teuer, aber funktioniert sehr gut im Gegensatz zu billigen Abisolierzangen. An jede Zeile und Spalte musst du ein Kabel anlöten, welche später mit den Eingängen des Arduino Pro Micro verbunden werden. Auf dem Bild habe ich dir markiert, wo ich die Kabel angelötet habe. Wenn du verstanden hast wie die Reihen und Spalten funktionieren, kannst du die Kabel auch an einer anderen Stelle anlöten. Tipp: Verwende am besten farbige Kabel, um sie besser unterscheiden zu können. Löte jetzt die Kabel von der Keyboard Matrix an die Ports des Arduino Pro Micro. Du könntest auch eine andere Portbelegung wählen, aber achte in späteren Schritten darauf das du diese dann deiner Portbelegung anpasst. Reihen und Spalten beginnen mit 0. Der grüne Text im Bild sind die Namen der Ports des Arduino Pro Micro die du im nächsten Schritt benötigst. Keyboard/Gamepad Firmware aufspielen Der Arduino Pro Micro muss mit einer angepassten Firmware geflasht werden. In diesem Beitrag (Arduino Pro Micro als Keyboard/Tastatur Controller – Teensy 2.0 alternative) wird Schritt für Schritt erklärt wie du die Firmware auf den Arduino Pro Micro flasht/speicherst. Du musst nur in Schritt 3 darauf achten das du die Pins/Ports wie folgt belegst. Befolge die Anleitung bis Schritt 3. Nachdem du auf Import geklickt hast, ändere die Pinbelegung im Tab PINS wie auf dem nachfolgendem Screenshot. Im Screenshot sind zwei Angaben falsch! Row 3 = C6 Column 3 = F7 Bevor du das Gehäuse zusammen baust, teste ob alle Tasten wie gewünscht funktionieren. Nimm etwas doppelseitiges Klebeband und befestige den Arduino am Gehäuse. Jetzt kannst du das Gehäuse zusammenbauen und dein neues selbstgebautes Gamepad mit mechanischen Tasten ausprobieren. Welche Cherry/Gateron Taster Von den Cherry MX bzw. Gateron (günstiger Version der Cherry Taster) gibt es verschiedene Varianten.Cherry MX Rot: leichter Widerstand, ohne haptisches Feedback Cherry MX Blau: mittlerer Widerstand, haptisches Feedback und klick Geräusch Cherry MX Braun: mittlerer Widerstand, haptisches Feedback ohne klick GeräuschFür das Gamepad rate ich zu den roten Tastern, da das klick Geräusch beim Spielen stört und der leichte Widerstand ein schnelleres betätigen der Taste ermöglicht.

- 08 Jun, 2017
- 4 Min. Lesezeit
Arduino Pro Micro als Keyboard/Tastatur Controller - Teensy 2.0 alternative
Wer eine Tastatur oder Gamepad selber bauen möchte, benötigt dafür einen Controller. Dieser wandelt die Tastensignale um und sendet sie an den Computer weiter. Die Firmware auf dem Controller legt fest, welche Taste welche Funktion/Zeichen hat. In dieser Anleitung erkläre ich dir, wie du die Keyboard Firmware QMK auf den Arduino Pro Micro kopierst/flash (Mac OSX und Linux). Vor-Nachteile des Arduino Pro Micro zu einem Teensy 2.0günstiger (ca. 10€ Amazon ca. 3€ Aliexpress) als ein Teensy 2.0 (13-30€ Amazon ca. 14€ Aliexpress) etwas kleiner Micro USB (Teensy 2.0 hat ein Mini-USB Anschluss) etwas umständlicher zu flashen weniger Ports (Mit dem Arduino Pro Micro kannst du eine Tastatur mit max. 81 Tasten 9x9 steuern.)Du benötigst die 5V Version des Arduino Pro MicroAls erstes musst du die Firmware für deine Tastatur erstellen. Dabei legst du das Layout der Tastatur fest (wo welche Tasten sind und welche Funktion sie haben). Eine ausführliche Beschreibung (Englisch) findest du hier docs.qmk.fm Das Erstellen des Layouts geht aber auch einfacher. Auf der Seite keyboard-layout-editor.com kannst du dir leicht dein eigenes Keyboard Layout zusammen klicken. Die Seite unterstützt nicht alle Funktionen der QMK Firmware. Diese sind aber meistens Pro Funktionen. Auf der Seite wird das Layout für mein Gamepad angezeigt, welches ich in einem späteren Tutorial erklären werde. Du kannst oben auf Preset -> Blank Layout klicken um ein neues Tastatur-Layout zu beginnen. Wenn dein Layout fertig ist, klickst du unten auf Raw data und kopierst dir den Text in der Box. Auf kbfirmware.com kannst du die QMK Firmware online erstellen/kompilieren lassen. Kopiere dazu den Text aus dem vorherigen Schritt in die Textbox über Import und klicke auf Import. Jetzt wird dir der Verdrahtungsplan angezeigt. Detaillierter englischer Beitrag (Keyboard Matrix Help von Dave Dribin). Im Tab Compile kannst du dir die Hex-Datei (Firmware) herunterladen. Du benötigst das Programm avrdude, um den Arduino Pro Micro mit der Firmware zu bespielen/flashen. Mehr Infos zu avrdude findest du auf mikrocontroller.net/articles/AVRDUDE. Mac OSX Am Mac kannst du avrdude über Homebrew installieren. Installiere Homebrew (Infos auf der Seite) und installieren dann avrdude mit folgendem Befehl. brew install avrdude Linux Auf Linux kannst du avrdude über den Paket-Manager installieren. sudo apt-get update && sudo apt-get install avrdudeVerbinde den Arduino Pro Micro mit dem Computer über das USB Kabel. Öffne den Terminal/CLI und gib folgenden Befehl ein. ls /dev/tty* | grep usb Jetzt wird dir der Port des Pro Micro angezeigt.Das Pro Micro muss in den Bootloader Modus gebracht werden um dir Firmware aufspielen zu können. Gib folgenden Befehl noch einmal ein, aber drück noch nicht Enter! ls /dev/tty* | grep usb Nimm dir eine Büroklammer (auseinander Biegen), oder ein kurzes Kabel und verbinde den RST und GND Port. Das Pro Micro Board wird neu gestartet und 8 Sekunden im Bootloader Modus bleiben. Danach wird die Firmware wieder gestartet. Führe jetzt den obigen Befehl innerhalb der 8 Sekunden aus. Es sollten dir jetzt zwei Ports angezeigt werden. Die zwei Ports sind ein Indikator dafür, dass sich das Arduino Pro Micro im Bootloader-Modus befindet. Den dazugekommenen Port (bei mir /dev/tty.usbmodem1421) können wir für das flashen der Firmware verwenden. Falls du Probleme hast, versuch einen anderen USB-Port an deinem Computer, oder wechsle das USB-Kabel. An meinem MacBook Air musste ich den rechten USB-Port verwenden.Jetzt kannst du die Firmware mit avrdude flashen. Wechsel dazu in den Ordner indem die zuvor heruntergeladene Firmware Hex-Datei liegt. Ersetze PRO-MICRO-PORT und DATEINAME-DER-HEX mit deinen Angaben. avrdude -p atmega32u4 -P PRO-MICRO-PORT -c avr109 -U flash:w:DATEINAME-DER-HEX Bei mir sieht der Befehl folgendermaßen aus. avrdude -p atmega32u4 -P /dev/tty.usbmodem1411 -c avr109 -U flash:w:layout.hex Verbinde wieder den RST und GND Port und führe den Befehl aus. Wenn es geklappt hat, solltest du eine ähnliche Ausgabe im Terminal sehen. Die Keyboard Firmware ist jetzt auf deinem Arduino Pro Micro. Verlöte deine Tasten zu der Keyboard-Matrix die dir in Schritt 3 angezeigt wurde. Löte die Reihen und Spalten an den Ports des Pro Micro und fertig ist deine selbst erstellte Tastatur.