Keyboard-Matrix-Design: Grundlagen der Key-Scanning-Schaltung

Leitfaden zum Keyboard-Matrix-Design: Row/Column-Scanning, Ghosting-Vermeidung, N‑Key‑Rollover mit Dioden und Matrix-Optimierung für QMK.

Keyboard-Matrix-Design: Grundlagen der Key-Scanning-Schaltung

Die Matrixschaltung bildet das elektrische Fundament jeder Tastatur. Sie ermöglicht es, mit einer begrenzten Anzahl an Mikrocontroller-Pins Tastendrücke über Dutzende oder Hunderte von Switches zu erkennen. Ein solides Verständnis des Matrix-Designs ist essenziell für das Keyboard-PCB-Design, da die Matrix die Firmware-Konfiguration, die Rollover-Fähigkeit und die gesamte Tastaturfunktion bestimmt.

HILPCB fertigt Keyboard-PCBs mit der gleichbleibenden Qualität, die für einen zuverlässigen Matrixbetrieb nötig ist – präzise Bohrbilder für Switches und saubere Leiterbahn-Connectivity für exakte Tasterkennung.

In diesem Leitfaden

  1. Warum Tastaturen Matrixschaltungen nutzen
  2. Ablauf des Matrix-Scans
  3. Das Ghosting-Problem
  4. Diodenlösung für N-Key Rollover
  5. COL2ROW vs ROW2COL Konfigurationen
  6. Strategien zur Matrix-Optimierung
  7. QMK-Firmware-Konfiguration

Warum Tastaturen Matrixschaltungen nutzen

Direktverdrahtung – also jeder Switch an einen eigenen MCU-Pin – wäre für jede Tastatur über ein Nummernpad hinaus unpraktisch. Eine Full-Size-Tastatur mit 104 Tasten würde 104 GPIO-Pins benötigen und damit die Möglichkeiten günstiger Mikrocontroller wie ATmega32U4 (26 I/O-Pins) oder sogar RP2040 (30 GPIO) deutlich übersteigen.

Matrixschaltungen lösen diese Einschränkung, indem Switches an den Schnittpunkten von Zeilen- und Spaltenleitungen angeordnet werden. Die mathematische Effizienz ist überzeugend:

Direktverdrahtung (104 Tasten): 104 Pins erforderlich
8×14‑Matrix (104 Tasten): 22 Pins erforderlich (8 Reihen + 14 Spalten)
Pin-Reduktion: 79%

Für ein 60%-Keyboard (61 Tasten) benötigt eine 8×8‑Matrix nur 16 Pins – damit bleiben reichlich I/Os für LEDs, Rotary-Encoder, OLED-Displays und weitere Features.

Der Trade-off ist zusätzliche Komplexität: Matrix-Scanning bringt Timing-Aspekte mit sich und ohne zusätzliche Bauteile sind Matrizen anfällig für „Ghosting“, was gleichzeitige Tastenerkennung begrenzt. Diese Herausforderungen sind jedoch gut verstanden und lassen sich durch korrektes Design zuverlässig lösen.


Ablauf des Matrix-Scans

Matrix-Scanning ist ein sequenzieller Prozess: Der Mikrocontroller aktiviert jeweils eine Zeile (oder Spalte) und liest gleichzeitig alle Positionen auf der Gegenachse aus. Durch schnelles Wiederholen über alle Zeilen ermittelt die MCU, welche Switches geschlossen sind.

Scan-Sequenz

  1. MCU setzt Row 0 auf LOW, alle anderen Rows HIGH (oder floating mit internen Pull-ups)
  2. MCU liest alle Column-Pins gleichzeitig ein
  3. Jede Column, die LOW liest, entspricht einem gedrückten Switch an Row 0, dieser Column
  4. MCU setzt Row 1 auf LOW (Row 0 geht zurück auf HIGH) und wiederholt das Einlesen
  5. Prozess läuft über alle Rows weiter und beendet einen vollständigen Scan
  6. Die gesamte Sequenz wiederholt sich hunderte bis tausende Male pro Sekunde

Scanrate und Latenz

Die Scanrate beeinflusst direkt das gefühlte Reaktionsverhalten der Tastatur:

  • 125Hz (8ms pro Scan): Spürbarer Lag bei schnellem Tippen oder Gaming
  • 500Hz (2ms): Für die meisten Nutzer akzeptabel
  • 1000Hz (<1ms): Standard bei hochwertigen Keyboards, praktisch sofort
  • 8000Hz (0,125ms): Marketing-getrieben für Competitive Gaming, in der Praxis kaum Vorteil gegenüber 1000Hz

QMK erreicht 1000Hz auf typischer ATmega32U4- oder RP2040-Hardware mit einfachen Matrix-Setups. Komplexe Konfigurationen (große Matrizen, viel RGB, OLED-Displays) können die erreichbare Rate senken, 500Hz+ bleiben jedoch üblich.


Vergleich der Matrix-Effizienz

104
Pins bei Direktverdrahtung (Full-Size)
22
Pins bei 8×14‑Matrix
79%
Pin-Reduktion
1
Eine Diode pro Switch

Das Ghosting-Problem

Ghosting tritt auf, wenn Matrixschaltungen unbeabsichtigte Strompfade bilden und die MCU Tastendrücke erkennt, die gar nicht stattgefunden haben. Wer den Mechanismus versteht, erkennt auch, warum Dioden so wichtig sind.

Wie Ghosting entsteht

Stellen Sie sich drei gleichzeitig gedrückte Tasten vor, die drei Ecken eines Rechtecks in der Matrix bilden – Positionen (Row0, Col0), (Row0, Col1) und (Row1, Col0).

Beim Scannen von Row0: Col0 und Col1 lesen korrekt LOW (diese Switches sind gedrückt).

Beim Scannen von Row1: Col0 liest korrekt LOW. Col1 liest jedoch ebenfalls LOW, obwohl der Switch an (Row1, Col1) NICHT gedrückt ist. Der Strom fließt rückwärts: von der LOW‑Row1‑Leitung durch den gedrückten Switch (Row1, Col0) in Col0, durch den gedrückten Switch (Row0, Col0) in Row0, durch den gedrückten Switch (Row0, Col1) und schließlich nach Col1 – ein „Sneak Path“, der eine nicht gedrückte Taste als gedrückt erscheinen lässt.

Ghosting-Merkmale

  • Erfordert mindestens 3 gleichzeitige Tastendrücke
  • Diese Tasten müssen 3 Ecken eines Rechtecks in der Matrix bilden
  • Die 4. Ecke wird fälschlicherweise als gedrückt erkannt
  • Je mehr gleichzeitige Tasten, desto mehr mögliche Ghosting-Muster

Einige Budget-Keyboards implementieren „Blocking“ – bestimmte Kombinationen werden gar nicht registriert, statt Ghosts zu erzeugen. Das ist für Gaming und schnelles Tippen inakzeptabel, da komplexe Tastenkombinationen dort üblich sind.


Diodenlösung für N-Key Rollover

Eine in Serie zu jedem Switch eingesetzte Diode eliminiert Ghosting, indem sie Rückstrom durch die Matrix verhindert. Dioden leiten nur in eine Richtung – von Anode zu Kathode – und blockieren so die Sneak Paths, die Ghosts verursachen.

Wie Dioden Ghosting verhindern

Bei korrekt ausgerichteten Dioden kann Strom von einem Switch zu seiner Row‑ (oder Column‑) Leitung fließen, jedoch nicht rückwärts von dieser Leitung durch einen anderen Switch. Jede Switch-Position wird elektrisch so isoliert, dass keine Ghost-Schaltungen entstehen. Die MCU liest nur echte Tastendrücke – unabhängig davon, wie viele Tasten gleichzeitig gedrückt werden.

Ergebnis: N-Key Rollover (NKRO)

Mit einer Diode pro Switch:

  • Jede Tastenkombination wird korrekt erkannt
  • Keine Blocking-Kombinationen
  • Konsistentes Verhalten bei gleichzeitigen Tastendrücken
  • Essenziell für Gaming und schnelles Tippen

Darum enthalten alle hochwertigen mechanischen Tastaturen eine Diode pro Switch. Bauteilkosten und Bestückungsaufwand sind durch den deutlichen Funktionsgewinn gerechtfertigt.

Häufige Diodenoptionen

  • 1N4148 (THT, DO‑35): Klassiker, leicht von Hand zu löten, größerer Footprint
  • 1N4148W (SOD‑123): Standard‑SMT, guter Kompromiss aus Größe und Handhabung
  • 1N4148WS (SOD‑323): Kleinere SMT‑Variante für platzkritische Designs
  • BAV70 (SOT‑23): Dual‑Diode mit gemeinsamer Kathode – versorgt zwei Switches, reduziert Bauteilanzahl

Details zur Ausrichtung in Keyboard Diode Direction.

Keyboard-Matrix-Design

COL2ROW vs ROW2COL Konfigurationen

Es gibt zwei Standardkonfigurationen für Keyboard-Matrizen. Sie unterscheiden sich darin, welche Achse den Strom treibt und welche die Ergebnisse einliest. Beide funktionieren gleich gut – die Wahl hängt meist von der Routing-Bequemlichkeit ab.

COL2ROW (am häufigsten)

  • Die Kathode (markiertes Ende) wird mit der ROW‑Leitung verbunden
  • Column-Pins als Outputs, die während des Scans LOW treiben
  • Row-Pins als Inputs mit Pull-up-Widerständen
  • Merksatz: „COL2ROW = Cathode to Row“ – das „C“ steckt in beiden Wörtern

QMK-Konfiguration: #define DIODE_DIRECTION COL2ROW

ROW2COL (Alternative)

  • Die Kathode wird mit der COLUMN‑Leitung verbunden
  • Row-Pins als Outputs, die während des Scans LOW treiben
  • Column-Pins als Inputs mit Pull-ups
  • Signal fließt von Row durch Switch und Diode ZU COLumn

QMK-Konfiguration: #define DIODE_DIRECTION ROW2COL

Kritische Anforderung

Die Firmware muss exakt zur Hardware passen. Nutzt das PCB COL2ROW, die Firmware ist aber auf ROW2COL gesetzt, funktioniert die gesamte Matrix nicht. Dieses Mismatch ist eine häufige Ursache für „tote Tastatur“-Probleme beim ersten Bring-up.


Gängige Tastatur-Matrixgrößen

8×8
60%-Keyboard (16 Pins)
6×17
TKL-Keyboard (23 Pins)
8×14
Full-Size (22 Pins)
4×12
40%-Keyboard (16 Pins)

Strategien zur Matrix-Optimierung

Eine durchdachte Matrixorganisation vereinfacht das PCB-Routing, erleichtert die Firmware-Entwicklung und minimiert den GPIO-Bedarf.

Reihen und Spalten ausbalancieren

Für eine gegebene Tastenanzahl sind mehrere Dimensionen mathematisch möglich. Ein 60‑Key‑Board kann z. B. 5×12 (17 Pins), 6×10 (16 Pins) oder 8×8 (16 Pins mit 4 ungenutzten Positionen) nutzen.

Quadratische oder annähernd quadratische Matrizen minimieren oft die Gesamtzahl der Pins und balancieren gleichzeitig die Routing-Komplexität zwischen den Lagen. Ähnliche horizontale und vertikale Linienanzahlen verteilen die Routing-Arbeit gleichmäßiger.

Physische Ausrichtung

Wenn Matrix-Rows mit den physischen Tastaturreihen ausgerichtet sind, wird Routing und Firmware deutlich einfacher:

  • Row-Traces laufen natürlich horizontal (entspricht dem physischen Layout)
  • Column-Traces laufen vertikal
  • Keymap-Definition wird intuitiv (visuelle Übereinstimmung zur Tastatur)
  • Weniger Kreuzungen und weniger Vias

Reservepositionen

Lassen Sie ungenutzte Matrixpositionen für Layout-Varianten frei:

  • Split Backspace (zwei 1u‑Tasten statt einer 2u)
  • ISO Enter vs ANSI Enter
  • Split Right Shift
  • Alternative Bottom-Row-Konfigurationen

Eine 8×8‑Matrix mit 61 Keys lässt 3 Positionen für Alternativen übrig – ohne zusätzliche Pins.


QMK-Firmware-Konfiguration

QMK benötigt eine exakte Matrix-Spezifikation passend zur Hardware. Die Firmware braucht Matrixdimensionen, Pin-Zuordnungen und die Diodenrichtung.

Konfiguration in config.h

#define MATRIX_ROWS 8
#define MATRIX_COLS 8
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7 }
#define MATRIX_COL_PINS { D0, D1, D2, D3, D4, D5, D6, D7 }
#define DIODE_DIRECTION COL2ROW

Die Pin-Namen variieren je nach MCU: ATmega nutzt B0, D2, F4; RP2040 nutzt GP0, GP1 usw. Prüfen Sie die Zuordnung anhand des jeweiligen MCU-Datenblatts.

Test und Verifikation

Bevor Sie die Firmware finalisieren:

  1. Basis-Firmware mit aktivem Matrix-Debug flashen
  2. Jede Switch-Position mit einer Pinzette kurzschließen
  3. Debug-Ausgabe auf korrekte Row/Column-Erkennung prüfen
  4. Gleichzeitige Tastendrücke testen, um Ghosting auszuschließen
  5. Verifizieren, dass alle erwarteten Positionen korrekt registrieren

Typische Fehlerbilder:

  • Ganze Row/Column tot → Routing-Fehler oder falsche Pin-Zuordnung
  • Vereinzelte tote Tasten → einzelne Diodenprobleme
  • Gesamte Matrix tot → DIODE_DIRECTION-Mismatch


HILPCB Matrix-PCB-Fertigung

HILPCB fertigt Keyboard-PCBs mit der Präzision, die für zuverlässige Matrixschaltungen erforderlich ist:

  • Bohrbild-Genauigkeit: Konsistente Switch-Ausrichtung über das gesamte Board
  • Via-Plating: 20–25μm Barrel-Kupfer für zuverlässige Durchkontaktierungen
  • Leiterbahnuniformität: ±10% über Panels für konsistente elektrische Eigenschaften
  • Diodenbestückung: SMT assembly mit verifizierter Orientierung für alle gängigen Packages

Wir unterstützen Keyboard-Projekte von Prototypenstückzahlen bis zu Group-Buy-Volumen – mit gleichbleibender Qualität in jedem Maßstab.

Kontaktieren Sie HILPCB für Matrix-Design-Review und ein Fertigungsangebot.