Le circuit de matrice constitue la base électrique de tout clavier : il permet à un nombre limité de broches microcontrôleur de détecter des appuis sur des dizaines ou des centaines de switches. Comprendre la conception de la matrice est essentiel pour le keyboard PCB design, car la matrice détermine la configuration firmware, la capacité de rollover et le fonctionnement global du clavier.
HILPCB fabrique des PCB de claviers avec la constance nécessaire à un fonctionnement fiable de la matrice : perçage précis pour les switches et connectivité de pistes correcte pour une détection exacte des touches.
Dans ce guide
- Pourquoi les claviers utilisent des circuits en matrice
- Processus de balayage de la matrice
- Le problème du ghosting
- Solution par diodes pour le N-Key Rollover
- Configurations COL2ROW vs ROW2COL
- Stratégies d’optimisation de la matrice
- Configuration du firmware QMK
Pourquoi les claviers utilisent des circuits en matrice
Le câblage direct — connecter chaque switch à une broche dédiée de la MCU — serait impraticable pour tout clavier au-delà d’un simple pavé numérique. Un clavier pleine taille de 104 touches exigerait 104 GPIO, ce qui dépasse largement les capacités de microcontrôleurs abordables comme l’ATmega32U4 (26 broches I/O) ou même le RP2040 (30 GPIO).
Les circuits en matrice résolvent cette contrainte en plaçant les switches aux intersections de lignes de rangées et de colonnes. L’efficacité mathématique est parlante :
Câblage direct (104 touches) : 104 broches requises
Matrice 8×14 (104 touches) : 22 broches requises (8 rangées + 14 colonnes)
Réduction de broches : 79%
Pour un clavier 60% (61 touches), une matrice 8×8 ne nécessite que 16 broches, laissant des GPIO disponibles pour les LED, encodeurs rotatifs, écrans OLED et autres fonctionnalités.
Le compromis est la complexité : le balayage de matrice introduit des contraintes de timing et, sans composants supplémentaires, les matrices sont sensibles au « ghosting », ce qui limite la détection de touches simultanées. Ces défis sont toutefois bien connus et se résolvent avec une conception correcte.
Processus de balayage de la matrice
Le balayage de matrice est un processus séquentiel : le microcontrôleur active une rangée (ou une colonne) à la fois tout en lisant toutes les positions sur l’axe opposé. En répétant rapidement pour toutes les rangées, la MCU détermine quels switches sont fermés.
Séquence de scan
- La MCU met Row 0 à LOW, toutes les autres Row à HIGH (ou en flottant avec pull-ups internes)
- La MCU lit simultanément toutes les broches de colonnes
- Toute colonne lue à LOW indique un switch pressé à Row 0, pour cette colonne
- La MCU met Row 1 à LOW (Row 0 repasse HIGH), puis relit les colonnes
- Le processus continue pour toutes les rangées et complète un cycle de scan
- La séquence est répétée des centaines ou milliers de fois par seconde
Fréquence de scan et latence
La fréquence de scan influence directement la réactivité perçue du clavier :
- 125Hz (8ms par scan) : latence perceptible en frappe rapide ou en jeu
- 500Hz (2ms) : acceptable pour la plupart des utilisateurs
- 1000Hz (<1ms) : standard des claviers de qualité, quasi instantané
- 8000Hz (0,125ms) : surtout marketing pour l’e-sport, bénéfice pratique limité vs 1000Hz
QMK atteint 1000Hz sur du matériel ATmega32U4 ou RP2040 typique avec des configurations de matrice simples. Des configurations complexes (grandes matrices, beaucoup de RGB, écrans OLED) peuvent réduire la fréquence atteignable, mais 500Hz+ reste courant.
Comparaison d’efficacité de la matrice
Le problème du ghosting
Le ghosting survient lorsque les circuits en matrice créent des chemins électriques non désirés, et que la MCU détecte des appuis qui n’ont pas eu lieu. Comprendre le mécanisme permet de voir pourquoi les diodes sont indispensables.
Comment le ghosting se produit
Considérons trois touches pressées simultanément formant trois coins d’un rectangle dans la matrice — positions (Row0, Col0), (Row0, Col1) et (Row1, Col0).
Lors du scan de Row0 : Col0 et Col1 lisent LOW correctement (ces switches sont pressés).
Lors du scan de Row1 : Col0 lit LOW correctement. Mais Col1 lit également LOW alors que le switch en (Row1, Col1) n’est PAS pressé. Le courant remonte en sens inverse : depuis la ligne Row1 à LOW, via le switch pressé (Row1, Col0), vers Col0, via le switch pressé (Row0, Col0) vers Row0, via le switch pressé (Row0, Col1), puis enfin vers Col1 — créant un « sneak path » qui fait apparaître une touche non pressée comme pressée.
Caractéristiques du ghosting
- Nécessite au moins 3 appuis simultanés
- Les touches doivent former 3 coins d’un rectangle dans la matrice
- Le 4e coin s’enregistre faussement comme pressé
- Plus il y a d’appuis simultanés, plus il existe de motifs possibles de ghosting
Certains claviers entrée de gamme utilisent le « blocking » : certaines combinaisons sont ignorées plutôt que de générer des ghosts. C’est inacceptable en jeu et en frappe rapide, où les combinaisons complexes sont courantes.
Solution par diodes pour le N-Key Rollover
Ajouter une diode en série avec chaque switch élimine le ghosting en empêchant le courant de circuler à rebours dans la matrice. Les diodes ne conduisent que dans un seul sens — de l’anode vers la cathode — et bloquent les chemins détournés responsables des faux appuis.
Comment les diodes empêchent le ghosting
Avec des diodes correctement orientées, le courant peut passer d’un switch vers sa ligne de rangée (ou de colonne), mais ne peut pas repartir en sens inverse depuis cette ligne à travers un autre switch. Chaque position devient électriquement isolée et ne peut plus former de circuits de ghosting. La MCU ne lit alors que de vrais appuis, quel que soit le nombre de touches pressées.
Résultat : N‑Key Rollover (NKRO)
Avec une diode par switch :
- Toute combinaison de touches est détectée correctement
- Pas de combinaisons bloquées
- Comportement constant avec des appuis simultanés
- Indispensable pour le jeu et la frappe rapide
C’est pourquoi tous les claviers mécaniques de qualité incluent une diode par switch. Le coût composant et la complexité d’assemblage sont justifiés par l’amélioration fonctionnelle.
Options de diodes courantes
- 1N4148 (traversant DO‑35) : choix classique, facile à souder à la main, footprint plus grand
- 1N4148W (SOD‑123) : boîtier SMT standard, bon compromis taille/manipulation
- 1N4148WS (SOD‑323) : SMT plus compact pour designs contraints
- BAV70 (SOT‑23) : double diode à cathode commune — sert deux switches, réduit le nombre de composants
Détails d’orientation dans keyboard diode direction.

Configurations COL2ROW vs ROW2COL
Deux configurations standard existent pour les matrices de clavier, selon l’axe qui pilote le courant et celui qui lit les résultats. Les deux fonctionnent aussi bien : le choix dépend généralement de la facilité de routage.
COL2ROW (la plus courante)
- La cathode de la diode (côté marqué) se connecte à la ligne ROW
- Les pins de colonnes sont des sorties et pilotent LOW pendant le scan
- Les pins de rangées sont des entrées avec résistances de pull‑up
- Astuce mémo : « COL2ROW = Cathode to Row » — le « C » est présent dans les deux mots
Configuration QMK : #define DIODE_DIRECTION COL2ROW
ROW2COL (alternative)
- La cathode se connecte à la ligne COLUMN
- Les pins de rangées sont des sorties et pilotent LOW pendant le scan
- Les pins de colonnes sont des entrées avec pull‑ups
- Le signal part de la Row, traverse switch et diode, VERS la COLumn
Configuration QMK : #define DIODE_DIRECTION ROW2COL
Exigence critique
Le firmware doit correspondre exactement au matériel. Si le PCB est câblé en COL2ROW mais que le firmware spécifie ROW2COL, toute la matrice sera non fonctionnelle. Ce décalage est une cause fréquente de « clavier mort » lors du premier bring‑up.
Dimensions courantes de matrice clavier
Stratégies d’optimisation de la matrice
Une organisation réfléchie de la matrice simplifie le routage du PCB, facilite le développement firmware et minimise les besoins en GPIO.
Équilibrer rangées et colonnes
Pour un nombre de touches donné, plusieurs dimensions sont possibles. Une carte 60 touches peut utiliser 5×12 (17 broches), 6×10 (16 broches) ou 8×8 (16 broches avec 4 positions inutilisées).
Les matrices carrées ou quasi carrées minimisent généralement le nombre total de broches, tout en équilibrant la complexité de routage entre les couches. Un nombre similaire de lignes horizontales et verticales répartit mieux le travail de routage.
Alignement physique
Aligner les rangées de la matrice avec les rangées physiques du clavier simplifie fortement le routage et le firmware :
- Les pistes de rangées suivent naturellement l’horizontale (comme le layout physique)
- Les pistes de colonnes suivent la verticale
- La définition de la keymap devient intuitive (correspondance visuelle avec le clavier)
- Moins de croisements et moins de vias
Positions de réserve
Conserver des positions de matrice inutilisées pour des variantes de layout :
- Backspace scindé (deux touches 1u au lieu d’une 2u)
- ISO Enter vs ANSI Enter
- Shift droit scindé
- Variantes de bottom row
Une matrice 8×8 pour 61 touches laisse 3 positions pour des alternatives sans broches supplémentaires.
Configuration du firmware QMK
QMK exige une spécification de matrice parfaitement alignée sur le matériel : dimensions, affectation des broches et orientation des diodes.
Configuration dans 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
Le nommage des broches varie selon la MCU : l’ATmega utilise B0, D2, F4 ; le RP2040 utilise GP0, GP1, etc. Vérifiez toujours avec la datasheet de la MCU choisie.
Tests et validation
Avant de finaliser le firmware :
- Flasher un firmware de base avec le debug de matrice activé
- Court-circuiter chaque position de switch avec une pince/brucelles
- Vérifier l’output debug pour une détection correcte rangée/colonne
- Tester des appuis simultanés pour confirmer l’absence de ghosting
- Vérifier que toutes les positions attendues s’enregistrent correctement
Schémas de dépannage :
- Rangée/colonne entière inactive → erreur de routage ou mauvaise affectation de broches
- Touches mortes éparses → problème de diode individuelle
- Matrice complètement inactive → mismatch de DIODE_DIRECTION
Fabrication HILPCB de PCB de matrice clavier
HILPCB fabrique des PCB de claviers avec la précision requise pour des circuits de matrice fiables :
- Positionnement des trous : alignement constant des switches sur toute la carte
- Métallisation des vias : 20–25μm de cuivre dans le barrel pour des connexions traversantes fiables
- Uniformité des pistes : ±10% sur panneaux pour des caractéristiques électriques constantes
- Assemblage des diodes : SMT assembly avec orientation vérifiée pour les boîtiers courants
Nous accompagnons les projets de claviers des prototypes aux volumes de group buy avec une qualité constante à chaque échelle.
Contactez HILPCB pour une revue de conception de matrice et un devis de fabrication.

