Il circuito a matrice costituisce la base elettrica di ogni tastiera e consente a un numero limitato di pin del microcontrollore di rilevare pressioni su decine o centinaia di switch. Capire come si progetta una matrice è essenziale per il keyboard PCB design, perché la matrice determina la configurazione del firmware, la capacità di rollover e la funzionalità complessiva della tastiera.
HILPCB produce PCB per tastiere con una qualità costante, necessaria per un funzionamento affidabile della matrice: posizionamento preciso dei fori per gli switch e connettività corretta delle piste per una rilevazione accurata dei tasti.
In questa guida
- Perché le tastiere usano circuiti a matrice
- Processo di scansione della matrice
- Il problema del ghosting
- Soluzione con diodi per l’N-Key Rollover
- Configurazioni COL2ROW vs ROW2COL
- Strategie di ottimizzazione della matrice
- Configurazione del firmware QMK
Perché le tastiere usano circuiti a matrice
Il cablaggio diretto — collegare ogni switch a un pin dedicato della MCU — sarebbe impraticabile per qualsiasi tastiera che vada oltre un semplice tastierino numerico. Una tastiera full‑size da 104 tasti richiederebbe 104 pin GPIO, ben oltre le possibilità di microcontrollori economici come ATmega32U4 (26 pin I/O) o anche RP2040 (30 GPIO).
I circuiti a matrice risolvono questo vincolo disponendo gli switch agli incroci tra linee di riga e di colonna. L’efficienza matematica è evidente:
Cablaggio diretto (104 tasti): 104 pin richiesti
Matrice 8×14 (104 tasti): 22 pin richiesti (8 righe + 14 colonne)
Riduzione pin: 79%
Per una tastiera 60% (61 tasti), una matrice 8×8 richiede solo 16 pin, lasciando I/O sufficienti per LED, encoder rotativi, display OLED e altre funzioni.
Il compromesso è la complessità: la scansione della matrice introduce considerazioni di timing e, senza componenti aggiuntivi, le matrici sono soggette al “ghosting”, che limita la rilevazione di tasti premuti simultaneamente. Sono però problematiche ben note e risolvibili con una progettazione corretta.
Processo di scansione della matrice
La scansione della matrice è un processo sequenziale in cui il microcontrollore attiva una riga (o una colonna) alla volta mentre legge tutte le posizioni sull’asse opposto. Ripetendo rapidamente su tutte le righe, la MCU determina quali switch sono chiusi.
Sequenza di scansione
- La MCU imposta Row 0 su LOW, tutte le altre Row su HIGH (oppure flottanti con pull‑up interni)
- La MCU legge simultaneamente tutti i pin di colonna
- Qualsiasi colonna che legge LOW indica uno switch premuto in Row 0, su quella colonna
- La MCU imposta Row 1 su LOW (Row 0 torna HIGH) e ripete la lettura delle colonne
- Il processo continua su tutte le righe, completando una scansione completa
- L’intera sequenza si ripete centinaia o migliaia di volte al secondo
Frequenza di scansione e latenza
La frequenza di scansione influisce direttamente sulla reattività percepita della tastiera:
- 125Hz (8ms per scansione): ritardo percepibile durante digitazione rapida o gaming
- 500Hz (2ms): accettabile per la maggior parte degli utenti
- 1000Hz (<1ms): standard per tastiere di qualità, praticamente istantaneo
- 8000Hz (0,125ms): spinto dal marketing per il gaming competitivo, con benefici pratici minimi rispetto a 1000Hz
QMK raggiunge 1000Hz su hardware tipico ATmega32U4 o RP2040 con configurazioni di matrice di base. Configurazioni complesse (matrici grandi, RGB esteso, display OLED) possono ridurre la frequenza ottenibile, ma 500Hz+ è comunque comune.
Confronto dell’efficienza della matrice
Il problema del ghosting
Il ghosting si verifica quando i circuiti a matrice creano percorsi elettrici non intenzionali, facendo sì che la MCU rilevi pressioni di tasti che in realtà non sono avvenute. Capire il meccanismo aiuta a comprendere perché i diodi sono essenziali.
Come avviene il ghosting
Consideriamo tre tasti premuti contemporaneamente che formano tre angoli di un rettangolo nella matrice — posizioni (Row0, Col0), (Row0, Col1) e (Row1, Col0).
Durante la scansione di Row0: Col0 e Col1 leggono LOW correttamente (quegli switch sono premuti).
Durante la scansione di Row1: Col0 legge LOW correttamente. Ma anche Col1 legge LOW nonostante lo switch in (Row1, Col1) NON sia premuto. La corrente scorre all’indietro: dalla linea Row1 a LOW, attraverso lo switch premuto in (Row1, Col0), verso Col0, attraverso lo switch premuto in (Row0, Col0), verso Row0, attraverso lo switch premuto in (Row0, Col1) e infine verso Col1 — creando un “sneak path” che fa apparire premuto un tasto non premuto.
Caratteristiche del ghosting
- Richiede almeno 3 pressioni simultanee
- I tasti devono formare 3 angoli di un rettangolo nella matrice
- Il 4° angolo si registra falsamente come premuto
- Più tasti simultanei creano più pattern possibili di ghosting
Alcune tastiere economiche implementano il “blocking”, impedendo la registrazione di certe combinazioni anziché produrre ghost. È inaccettabile per il gaming e la digitazione veloce, dove combinazioni complesse sono comuni.
Soluzione con diodi per l’N-Key Rollover
Inserire un diodo in serie a ciascuno switch elimina il ghosting impedendo alla corrente di scorrere all’indietro nella matrice. I diodi conducono in una sola direzione — dall’anodo al catodo — bloccando i percorsi “furbi” che causano false rilevazioni.
Come i diodi impediscono il ghosting
Con diodi orientati correttamente, la corrente può fluire da uno switch verso la propria linea di riga (o colonna) ma non può fluire all’indietro da quella linea attraverso un altro switch. Ogni posizione diventa elettricamente isolata e non può creare circuiti di ghosting. La MCU legge solo pressioni reali, indipendentemente da quanti tasti sono premuti.
Risultato: N‑Key Rollover (NKRO)
Con un diodo per switch:
- Qualsiasi combinazione di tasti viene rilevata correttamente
- Nessuna combinazione bloccata
- Comportamento consistente con pressioni simultanee
- Essenziale per gaming e digitazione rapida
Per questo tutte le tastiere meccaniche di qualità includono un diodo per switch. Il costo dei componenti e la complessità di assemblaggio sono giustificati dal grande miglioramento funzionale.
Opzioni di diodo comuni
- 1N4148 (foro passante DO‑35): scelta classica, facile da saldare a mano, footprint più grande
- 1N4148W (SOD‑123): package SMT standard, buon equilibrio tra dimensioni e maneggevolezza
- 1N4148WS (SOD‑323): SMT più piccolo per progetti con spazio limitato
- BAV70 (SOT‑23): package a doppio diodo con catodo comune — serve due switch, riduce il numero di componenti
Dettagli sull’orientamento in keyboard diode direction.

Configurazioni COL2ROW vs ROW2COL
Esistono due configurazioni standard per le matrici delle tastiere, che differiscono per quale asse pilota la corrente e quale legge i risultati. Entrambe funzionano allo stesso modo: la scelta dipende tipicamente dalla comodità di routing.
COL2ROW (più comune)
- Il catodo del diodo (lato marcato) si collega alla linea ROW
- I pin di colonna sono configurati come output e pilotano LOW durante la scansione
- I pin di riga sono configurati come input con resistori di pull‑up
- Promemoria: “COL2ROW = Cathode to Row” — la “C” è in entrambe le parole
Configurazione QMK: #define DIODE_DIRECTION COL2ROW
ROW2COL (alternativa)
- Il catodo del diodo si collega alla linea COLUMN
- I pin di riga sono output e pilotano LOW durante la scansione
- I pin di colonna sono input con pull‑up
- Il segnale fluisce dalla Row, attraverso switch e diodo, VERSO la COLumn
Configurazione QMK: #define DIODE_DIRECTION ROW2COL
Requisito critico
Il firmware deve corrispondere esattamente all’hardware. Se il PCB usa l’orientamento COL2ROW ma il firmware specifica ROW2COL, l’intera matrice non funzionerà. Questa discrepanza è una causa frequente di “tastiera morta” durante il primo bring‑up.
Dimensioni comuni della matrice
Strategie di ottimizzazione della matrice
Una buona organizzazione della matrice semplifica il routing del PCB, facilita lo sviluppo del firmware e minimizza il numero di GPIO necessari.
Bilanciare righe e colonne
Per un dato numero di tasti, più dimensioni sono possibili dal punto di vista matematico. Una scheda da 60 tasti può usare 5×12 (17 pin), 6×10 (16 pin) o 8×8 (16 pin con 4 posizioni inutilizzate).
Matrici quadrate o quasi quadrate tendono a minimizzare il numero totale di pin, bilanciando anche la complessità di routing tra i layer. Un numero simile di linee orizzontali e verticali distribuisce il lavoro di routing in modo più uniforme.
Allineamento fisico
Allineare le righe della matrice con le righe fisiche della tastiera semplifica notevolmente routing e firmware:
- Le piste di riga corrono naturalmente in orizzontale (coerenti con il layout fisico)
- Le piste di colonna corrono in verticale
- La definizione della keymap diventa intuitiva (corrispondenza visiva con la tastiera)
- Meno punti di incrocio e meno via
Posizioni di riserva
Lasciare posizioni inutilizzate per varianti di layout:
- Backspace diviso (due tasti 1u invece di un 2u)
- ISO Enter vs ANSI Enter
- Shift destro diviso
- Configurazioni alternative della bottom row
Una matrice 8×8 con 61 tasti lascia 3 posizioni per alternative senza pin aggiuntivi.
Configurazione del firmware QMK
QMK richiede una specifica della matrice che corrisponda esattamente all’hardware. Il firmware deve conoscere dimensioni della matrice, assegnazioni dei pin e orientamento dei diodi.
Configurazione 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
La nomenclatura dei pin varia in base alla MCU: ATmega usa B0, D2, F4; RP2040 usa GP0, GP1, ecc. Verificare sempre sul datasheet della MCU specifica.
Test e verifica
Prima di finalizzare il firmware:
- Flashare un firmware base con debug matrice abilitato
- Cortocircuitare ogni posizione switch con una pinzetta
- Controllare l’output di debug per la corretta rilevazione riga/colonna
- Testare pressioni simultanee per confermare l’assenza di ghosting
- Verificare che tutte le posizioni previste vengano registrate correttamente
Pattern di troubleshooting:
- Intera riga/colonna morta → errore di routing delle piste o assegnazione pin errata
- Tasti morti sparsi → problemi su diodi singoli
- Matrice completamente morta → mismatch di DIODE_DIRECTION
Produzione HILPCB per PCB di matrici tastiera
HILPCB realizza PCB per tastiere con la precisione necessaria a circuiti di matrice affidabili:
- Posizionamento fori: allineamento costante degli switch su tutta la scheda
- Placcatura via: 20–25μm di rame nel barrel per connessioni through affidabili
- Uniformità piste: ±10% sui pannelli per caratteristiche elettriche coerenti
- Assemblaggio diodi: SMT assembly con orientamento verificato per i package più comuni
Supportiamo progetti di tastiere da quantità prototipali fino a volumi da group buy con qualità costante a ogni scala.
Contatta HILPCB per una revisione del design della matrice e un preventivo di produzione.

