Mit dem Unit CardKB2 bringt M5Stack eine spannende Weiterentwicklung seiner kompakten Mini-Tastatur auf den Markt. Während die Vorgängerversion noch als einfache I2C-Tastatur diente, steckt im neuen Modell nun ein vollwertiger ESP32-C61 Mikrocontroller.
Die typische Bauform im Checkkartenformat ist dabei erhalten geblieben – doch unter der Haube hat sich einiges getan. Das CardKB2 verspricht erstmals einen echten Standalone-Betrieb und eröffnet damit völlig neue Einsatzmöglichkeiten – von einfachen Eingabegeräten bis hin zu kleinen IoT-Projekten.
Dank integrierter Shortcuts lässt sich das Modul zudem direkt „out of the box“ als Bluetooth-Keyboard nutzen. Alles, was du dafür benötigst, ist eine passende Stromquelle.
Doch wie viel Potenzial steckt wirklich in dieser kleinen Tastatur – und wie sieht es in der Praxis mit der Programmierung aus?
Genau das zeige ich dir in diesem Beitrag.
Transparenzhinweis: Das M5Stack Unit CardKB2 habe ich selbst gekauft. Es besteht keine Kooperation mit dem Hersteller.
Was ist neu – und warum ist das spannend?
Was auf den ersten Blick wie eine einfache Weiterentwicklung wirkt, ist in Wirklichkeit ein ziemlich großer Schritt.
Beim ursprünglichen CardKB handelte es sich um eine reine I2C-Tastatur. Die Eingaben wurden an einen Mikrocontroller weitergereicht – das Modul selbst war dabei eher „dumm“ und hatte keine eigene Logik.



Beim CardKB2 sieht das komplett anders aus.
Hier sitzt nun ein vollwertiger ESP32-C61 direkt auf dem Board. Damit kann das Modul nicht nur Eingaben erfassen, sondern diese auch selbst verarbeiten, speichern oder über verschiedene Schnittstellen weiterleiten.
Aus einer einfachen Tastatur wird damit ein eigenständiges System.
Genau das macht das CardKB2 so spannend: Es ist nicht mehr nur ein Zubehör für ein Projekt, sondern kann selbst zum zentralen Bestandteil werden.
Ob als Eingabegerät für ein IoT-System, als kleines Steuer-Interface oder sogar als eigenständiges Bluetooth-Keyboard – die Einsatzmöglichkeiten sind deutlich vielseitiger als beim Vorgänger.
Erster Eindruck & Verarbeitung
Auf den ersten Blick bleibt sich M5Stack treu: Das CardKB2 kommt weiterhin im kompakten Checkkartenformat daher und wirkt insgesamt sauber verarbeitet.
Auffällig ist jedoch direkt die überarbeitete Tastatur. Im Vergleich zum Vorgänger sind die Tasten etwas größer ausgefallen, was die Bedienung deutlich angenehmer macht – gerade wenn man das Modul tatsächlich zum Tippen nutzt und nicht nur einzelne Eingaben ausführt.


Das Layout entspricht einem klassischen QWERTY-Keyboard, also der amerikanischen Variante. Für viele Anwendungen ist das kein Problem, im Alltag muss man sich jedoch unter Umständen kurz umgewöhnen.

Eine Änderung fällt allerdings eher negativ auf: Die Navigationstasten sind nicht mehr separat vorhanden, sondern nur noch über die FN-Taste erreichbar. Das spart zwar Platz, macht die Bedienung in bestimmten Situationen aber etwas umständlicher.
Insgesamt hinterlässt das CardKB2 dennoch einen soliden ersten Eindruck – vor allem durch die verbesserten Tasten, die im direkten Vergleich zum Vorgänger ein echtes Upgrade darstellen.
Betriebsmodi des CardKB2
Bevor wir uns die Programmierung anschauen, lohnt sich ein Blick auf die verschiedenen Betriebsmodi des CardKB2. Denn im Gegensatz zur Vorgängerversion ist das Modul nicht mehr nur auf eine einzige Funktion beschränkt.
Die Umschaltung zwischen den Modi erfolgt direkt über Tastenkombinationen auf dem Gerät – ein erneutes Flashen ist dafür nicht notwendig.
Verfügbare Modi
Wichtig: Für die Nutzung dieser Modi muss das CardKB2 selbst nicht neu programmiert werden. Die Funktionen sind bereits in der vorhandenen Firmware enthalten. Du wählst lediglich den gewünschten Modus über die entsprechende Tastenkombination aus.
| Modus | Tastenkombination | Einsatz |
|---|---|---|
| I2C | Fn + Sym + 1 | Klassische Mikrocontroller-Anbindung |
| UART | Fn + Sym + 2 | Serielle Tastenevents über Grove |
| ESP-NOW | Fn + Sym + 3 | Drahtlose Verbindung zu ESP32-Geräten |
| Bluetooth HID | Fn + Sym + 4 | Nutzung als Bluetooth-Tastatur |
Die eigentliche Verarbeitung der Daten erfolgt anschließend auf dem verbundenen Gerät – also zum Beispiel auf dem Smartphone, einem Arduino oder einem ESP32.
Bluetooth-Keyboard Modus
Der wohl coolste Modus ist die Nutzung als Bluetooth-Tastatur. Dafür benötigt man unterwegs lediglich eine Powerbank – und idealerweise noch ein kleines Gehäuse, das das Board vor Stößen schützt.
- Das CardKB2 verhält sich wie ein klassisches Bluetooth-Keyboard
- Verbindung mit:
- Smartphone
- Tablet
- PC
- keine zusätzliche Hardware notwendig
- Stromversorgung über USB-C reicht aus
👉 Einstellung:
- über definierte Tastenkombination > Fn + Sym + 4
- anschließend Gerät per Bluetooth koppeln
I2C-Keyboard Modus
Den I2C-Modus habe ich in diesem Beitrag bewusst nur kurz eingeordnet, da er am ehesten dem Verhalten des ursprünglichen CardKB entspricht. Der Fokus liegt hier auf den neuen Möglichkeiten durch Bluetooth, UART und ESP-NOW.
- klassischer Modus wie beim alten CardKB
- Tastenanschläge werden per I2C an einen Mikrocontroller gesendet
- ideal für:
- Arduino
- ESP32 Projekte
👉 Einstellung:
- per Tastenkombination aktivieren > Fn + Sym + 1
- anschließend über I2C ansprechen
Serial / UART Modus
- Ausgabe der Tasteneingaben über serielle Schnittstelle
- ideal für:
- Debugging
- einfache Terminal-Anwendungen
👉 Einstellung:
- per Tastenkombination wechseln > Fn + Sym + 2
- Daten über UART auslesen

ESP-NOW Modus
- drahtlose Kommunikation ohne WLAN-Router
- direkte Verbindung zu einem anderen ESP32-Gerät
- sehr geringe Latenz
- ideal für:
- Fernsteuerungen
- einfache Eingabesysteme
- IoT-Projekte ohne Netzwerk
👉 Einstellung:
- per Tastenkombination aktivieren > Fn + Sym + 3
- Gegenstelle (z. B. ESP32) muss entsprechend vorbereitet sein
Praxisbeispiel: CardKB2 per ESP-NOW mit einem ESP32-C3 verbinden
Nachdem die Betriebsmodi geklärt sind, wird es nun praktisch. Für mein erstes Beispiel nutze ich den ESP-NOW Modus des CardKB2. Dabei wird das Keyboard nicht per Kabel mit dem Empfänger verbunden, sondern sendet die Tasteneingaben drahtlos an einen anderen ESP32.
In meinem Aufbau kommt ein ESP32-C3 Super Mini mit einem kleinen OLED-Display zum Einsatz. Das CardKB2 dient dabei als drahtlose Eingabeeinheit, während der ESP32-C3 die empfangenen Daten auswertet und auf dem Display darstellt.
Das Spannende daran:
Auf dem CardKB2 selbst muss dafür nichts programmiert werden. Es reicht aus, den passenden Modus über die Tastatur zu aktivieren.
Fn + Sym + 3
Danach sendet das CardKB2 seine Tastenevents automatisch per ESP-NOW als Broadcast. Der Empfänger muss lediglich so programmiert werden, dass er diese Pakete empfängt und auswertet.
Aufbau des Praxisbeispiels
Für dieses Beispiel verwende ich folgende Komponenten:
- M5Stack Unit CardKB2
- ESP32-C3 Super Mini
- OLED-Display via I2C
- USB-Kabel zur Stromversorgung und Programmierung des ESP32-C3
Das CardKB2 benötigt lediglich eine Stromversorgung über USB-C. Eine direkte Verbindung zwischen CardKB2 und ESP32-C3 ist nicht notwendig.
Schaltung – ESP32-C3 mit OLED Display
Für die Schaltung ESP32-C3 mit OLED Display benötigst du:
- 1x ESP32-C3 Super Mini*,
- 1x 1,3″ OLED Display* (I2C),
- 1x 400 Pin Breadboard*,
- 4x Breadboardkabel*, 10cm, männlich-männlich
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Was wird übertragen?
Im ESP-NOW Modus werden keine fertigen Buchstaben übertragen. Stattdessen sendet das CardKB2 strukturierte Datenpakete. Das Format entspricht dabei dem UART-Modus:
AA [DATA_LEN] [KEY_ID] [KEY_STATE] [CHECKSUM]
Die einzelnen Werte bedeuten:
| Wert | Bedeutung |
|---|---|
AA | Startbyte des Datenpakets |
DATA_LEN | Datenlänge, fest auf 0x03 |
KEY_ID | ID der gedrückten Taste |
KEY_STATE | Zustand der Taste: gedrückt oder losgelassen |
CHECKSUM | Prüfsumme zur Kontrolle des Pakets |
Gerade dieser Punkt ist wichtig:
Das CardKB2 sendet im ESP-NOW Modus also nicht einfach ein a, b oder c, sondern die Position der gedrückten Taste auf der Tastaturmatrix.
Die eigentliche Übersetzung von KEY_ID zu einem lesbaren Zeichen erfolgt daher im Code des Empfängers.
Warum ein eigenes Key-Mapping notwendig ist
Damit aus einer empfangenen KEY_ID wieder ein echter Buchstabe wird, habe ich mir eine eigene Keymap erstellt. Diese ordnet jeder Taste den passenden Wert zu.
Zusätzlich müssen Sonderfunktionen wie Aa für Großbuchstaben oder Sym für Sonderzeichen im Code behandelt werden. Das CardKB2 übernimmt diese Logik im ESP-NOW Modus nicht automatisch.
Das klingt zunächst etwas aufwendiger, hat aber auch einen Vorteil:
Man kann selbst bestimmen, was bei welcher Taste passieren soll. Dadurch eignet sich das CardKB2 nicht nur als Tastatur, sondern auch als frei definierbare Fernbedienung für eigene Projekte.
Wichtig: Die KEY_ID entspricht nicht automatisch dem sichtbaren Zeichen auf der Taste. Sie basiert auf der Position in der Tastaturmatrix. Da nicht jede Position belegt ist, ist in meiner Keymap auch ein leerer Platzhalter enthalten. Ohne diesen Platzhalter wären die folgenden Tasten verschoben.
struct KeyDef {
const char* normal;
const char* sym;
};
// Mapping Array (KEY_ID -> Zeichen)
const KeyDef keyMap[45] = {
{"1","!"}, {"2","@"}, {"3","#"}, {"4","$"}, {"5","%"},{"6","^"}, {"7","&"}, {"8","*"}, {"9","("}, {"0",")"},{"",""},
{"q","~"}, {"w","`"}, {"e","?"}, {"r","\\"}, {"t","/"},{"y","|"}, {"u","-"}, {"i","_"}, {"o","+"}, {"p","="},{"[DEL]","[DEL]"},
{"Aa","Aa"}, {"a","{"}, {"s","}"}, {"d","[UP]"}, {"f","["},{"g","]"}, {"h","\""}, {"j","'"}, {"k",";"}, {"l",":"},{"[ENTER]","[ENTER]"},
{"fn","fn"}, {"sym","sym"}, {"z","[LEFT]"}, {"x","[DOWN]"}, {"c","[RIGHT]"},{"v","<"}, {"b",">"}, {"n",","}, {"m","°"}, {"[SPACE]","[SPACE]"}
};
bool symMode = false;
bool upperCase = false;
String getKey(uint8_t id) {
if (id >= 45) return "?";
String normal = String(keyMap[id].normal);
String sym = String(keyMap[id].sym);
// SYM Taste (ID anpassen!)
if (normal == "sym") {
symMode = !symMode;
return "[SYM]";
}
// SHIFT / Aa Taste
if (normal == "Aa") {
upperCase = !upperCase;
return "[SHIFT]";
}
// FN ignorieren (optional)
if (normal == "fn") {
return "[FN]";
}
// Symbol-Modus hat Priorität
if (symMode) {
return sym;
}
// Groß/Kleinschreibung nur bei einzelnen Buchstaben
if (upperCase && normal.length() == 1) {
char c = normal[0];
if (c >= 'a' && c <= 'z') {
c = c - 32; // to upper
return String(c);
}
}
return normal;
}
Anzeige auf dem OLED-Display
Auf dem OLED-Display lasse ich mir die empfangene Taste anzeigen. Zusätzlich kann man dort auch den aktuellen Modus ausgeben, zum Beispiel ob gerade Sym oder Großschreibung aktiv ist.
Damit sieht man sofort, ob die Übertragung funktioniert und welche Taste erkannt wurde.
Ein einfacher Ablauf sieht dann so aus:
Damit wird das CardKB2 zu einer kleinen drahtlosen Eingabeeinheit für ESP32-Projekte – komplett ohne WLAN-Router, ohne Access Point und ohne Bluetooth-Pairing.
Stolperfalle: ESP32-C61 und Arduino IDE
Auf dem CardKB2 sitzt ein ESP32-C61. Das klingt zunächst nach einem normalen ESP32-C6-Projekt, ist in der Praxis aber nicht ganz so einfach.
Bei meinem ersten Versuch, das Board wie ein normales ESP32-C6 Board über die Arduino IDE zu programmieren, wurde der Sketch zwar kompiliert, der Upload brach jedoch mit folgender Meldung ab:
This chip is ESP32-C61, not ESP32-C6. Wrong chip argument?
Das bedeutet: Das Board wird beim Flashen korrekt als ESP32-C61 erkannt, aber das ausgewählte Boardprofil passt nicht zum tatsächlich verbauten Chip.
Für die Praxis ist das wichtig, denn das CardKB2 ist dadurch aktuell nicht einfach wie ein klassisches ESP32-Board über die Arduino IDE programmierbar. Laut Espressif wird der ESP32-C61 zwar von Arduino-ESP32 unterstützt, jedoch nicht im ganz normalen Arduino-IDE-Workflow. Stattdessen sind Wege wie Arduino als ESP-IDF-Komponente oder angepasste Bibliotheken notwendig.
Für diesen Beitrag ist das jedoch kein Problem, da ich die vorhandene Firmware und die eingebauten Modi des CardKB2 nutze. Die Programmierung findet hier also auf dem Empfänger statt – in meinem Beispiel auf dem ESP32-C3 Super Mini.
Preis & Einordnung
Preislich liegt das M5Stack Unit CardKB2 im offiziellen M5Stack Shop bei 9,95 US-Dollar zzgl. Versandkosten. Damit ist es im Vergleich zum Vorgängermodell nur geringfügig teurer geworden. Das ursprüngliche CardKB liegt bzw. lag bei rund 8,50 US-Dollar.
Der Aufpreis beträgt damit ungefähr 1,45 US-Dollar. Dafür bekommt man jedoch nicht nur eine leicht überarbeitete Tastatur, sondern zusätzlich einen ESP32-C61, mehrere Betriebsmodi, Bluetooth HID, UART, I2C und ESP-NOW.
Gerade im direkten Vergleich zum alten CardKB wirkt der Preis daher fair. Während das Vorgängermodell im Grunde eine einfache I2C-Tastatur war, ist das CardKB2 deutlich vielseitiger einsetzbar.
Natürlich kommen beim Import noch Versandkosten und gegebenenfalls weitere Gebühren hinzu. Das sollte man beim Kauf im offiziellen Shop berücksichtigen.
Fazit: Kleine Tastatur mit großem Potenzial
Das M5Stack Unit CardKB2 ist deutlich mehr als nur eine kleine Tastatur im Checkkartenformat. Während der Vorgänger noch als einfache I2C-Tastatur gedacht war, bringt das neue Modell mit dem ESP32-C61 deutlich mehr Möglichkeiten mit.
Besonders spannend sind für mich die verschiedenen Betriebsmodi. Der Bluetooth-Modus macht das CardKB2 direkt als kleine kabellose Tastatur nutzbar, während UART, I2C und ESP-NOW vor allem für eigene Mikrocontroller-Projekte interessant sind.
Mein persönliches Highlight ist der ESP-NOW Modus. Damit lässt sich das CardKB2 als drahtlose Eingabeeinheit für ESP32-Projekte nutzen – ganz ohne WLAN-Router, Access Point oder Bluetooth-Pairing. Das eröffnet viele spannende Möglichkeiten, etwa für Menüsysteme, Fernsteuerungen oder kleine IoT-Projekte.
Ganz ohne Stolperfallen ist das Board aber nicht. Wer im UART- oder ESP-NOW-Modus arbeitet, bekommt keine fertigen Buchstaben geliefert, sondern muss die empfangenen Tastenevents selbst auswerten und ein eigenes Mapping erstellen. Auch das direkte Flashen eigener Firmware auf den ESP32-C61 ist aktuell nicht so unkompliziert wie bei vielen klassischen ESP32-Boards.
Trotzdem fällt mein Fazit positiv aus. Für 9,95 US-Dollar zzgl. Versandkosten bekommt man ein kompaktes und vielseitiges Eingabemodul, das im Vergleich zum Vorgänger nur geringfügig teurer geworden ist, aber deutlich mehr Funktionen bietet.
Für reine Texteingaben ist der Bluetooth-Modus die einfachste Lösung. Für Bastler, Entwickler und ESP32-Projekte sind jedoch vor allem UART und ESP-NOW die wirklich spannenden Funktionen. Genau dadurch wird aus der kleinen Tastatur ein flexibles Werkzeug für eigene Projekte.
Quellenangaben
M5Stack – Unit CardKB2 Dokumentation
Technische Daten, PinMap, Betriebsmodi und allgemeine Produktbeschreibung.
M5Stack – Unit CardKB2 User Manual & Registers (PDF)
Details zu UART, I2C, ESP-NOW, Datenframe-Format und Registerbeschreibung.
M5Stack Shop – CardKB2 Keyboard Unit (ESP32-C61)
Produktseite mit Bildern, Lieferumfang und allgemeinen Produktinformationen.
Alle Quellen wurden zuletzt am 29. April 2026 abgerufen.
Letzte Aktualisierung am: 30. April 2026











