2. Análise técnica do funcionamento
2.1 Principais módulos
┌─────────────────────────────────────────────────────┐
│ METADE ESQUERDA │
│ Chaves mecânicas → Matriz 3×6 + 3 thumb │
│ Diodos 1N4148 (anti-ghosting) │
│ Microcontrolador (escrava) │
│ └─ Varredura de matriz │
│ └─ Debounce por software │
│ └─ Encode de keycode │
│ └─ UART TX → TRRS │
└──────────────────────┬──────────────────────────────┘
│ TRRS (UART / BLE)
┌──────────────────────▼──────────────────────────────┐
│ METADE DIREITA │
│ Chaves mecânicas → Matriz 3×6 + 3 thumb │
│ Diodos 1N4148 (anti-ghosting) │
│ Microcontrolador (mestre) │
│ └─ Varredura de matriz própria │
│ └─ Recepção de eventos da escrava (UART RX) │
│ └─ Agregação e mapeamento de camadas │
│ └─ Geração de HID reports │
│ └─ USB HID (com fio) ou BLE HID (sem fio) │
│ OLED (I2C, opcional) │
│ LED RGB (PWM, opcional) │
└──────────────────────┬──────────────────────────────┘
│ USB ou BLE
PC
2.2 Varredura de matriz e anti-ghosting
A matriz de teclas é organizada em N linhas e M colunas de GPIOs. O firmware ativa uma linha por vez e lê todas as colunas; colunas ativas indicam teclas pressionadas naquela linha. O ciclo completo determina o estado de todas as N×M teclas.
Sem os diodos, pressionar três teclas em um triângulo da matriz gera um quarto evento fantasma (ghosting). O diodo 1N4148 em série com cada tecla impede corrente reversa, eliminando o problema e permitindo N-key rollover.
2.3 Debounce por software
Chaves mecânicas exibem bounce: múltiplas transições rápidas ao fechar ou abrir o contato. O QMK implementa debounce por máquina de estados com janela temporal (cerca de 5 ms): uma tecla só muda de estado após leitura estável por N ciclos consecutivos [6].
2.4 Comunicação entre metades (UART/TRRS)
O cabo TRRS carrega 4 sinais: VCC, GND, TX e RX. A metade escrava envia um evento (keycode + estado pressed/released) via UART. A metade mestre recebe e trata como se fosse uma tecla local. Em versões BLE do Corne (nice!nano), o link entre metades pode ser BLE ou UART, dependendo da configuração do ZMK.
2.5 Interface HID com o PC
O firmware gera HID keyboard reports de 8 bytes (1 byte de modificadores + 1 reservado + 6 keycodes), transmitidos via USB HID ou BLE HID (HID over GATT). O sistema operacional reconhece o dispositivo como um teclado padrão, sem drivers adicionais [7].
2.6 Camadas e home-row mods
Com apenas 42 teclas físicas, o Corne usa camadas (layers) ativadas por teclas de polegar para acessar símbolos, números e teclas de função. Os home-row mods transformam as teclas da linha central em modificadores (Shift, Ctrl, Alt) ao serem seguradas, eliminando a necessidade de teclas dedicadas. Esse mapeamento é definido no firmware QMK/ZMK [5].

2.7 Tecnologias críticas
| Tecnologia | Relevância |
|---|---|
| Varredura de matriz + debounce | Leitura confiável das teclas |
| Diodos 1N4148 | Anti-ghosting para N-key rollover |
| UART sobre TRRS | Link entre as duas metades |
| USB HID / BLE HID | Interface com o sistema operacional |
| QMK / ZMK | Firmware com camadas, mods e economia de energia |
