Repository navigation
Releases: thementalcoding/keychron-pro-firmware
Releases · thementalcoding/keychron-pro-firmware
Release list
v1.0.0 — all 26 CKBT51 models (build 2026-10-26c)
v1.0.0 — all 26 CKBT51 models (build 2026-10-26c)
Community QMK firmware for the Keychron Pro wireless range (STM32L432 + CKBT51
Bluetooth module), based on Keychron wls_2025q1 @ c8b2b23.
Firmware para toda la gama Keychron Pro inalámbrica (26 modelos, 95 imágenes).
⚠️ Read first / Léelo primero
- Unofficial community build; not affiliated with Keychron. / Build no oficial,
sin relación con Keychron. - Hardware-tested on one unit only: a Keychron K13 Pro ISO RGB
(3434:02d1). The other 94 images compile and pass automated checks
(DFU suffix, VID/PID, CRC, size, manifest, checksums) but have never been
flashed on a device. / Probado en hardware solo en una unidad: un
Keychron K13 Pro ISO RGB. Las otras 94 imágenes compilan y pasan las
verificaciones automáticas, pero no se han flasheado. - The original symptom (bursts of repeated keystrokes) is not yet confirmed
fixed long-term; the tested unit improved from 7 ms to 5 ms minimum report gap
(~143 → ~200 reports/s) with no episodes so far. / El síntoma original aún no
está confirmado como resuelto a largo plazo. - Only the STM32 MCU is modified; the CKBT51 module firmware is closed. / Solo se
modifica el MCU STM32; el firmware del módulo CKBT51 es cerrado. - Back up your keymap before flashing. / Haz copia de seguridad de tu keymap antes
de flashear. - Recovery is always possible: the STM32 ROM bootloader cannot be overwritten. /
La recuperación siempre es posible: el bootloader ROM no se puede sobrescribir.
Contents / Contenido
- 26 models (K1–K17 Pro, Q1–Q14 Pro), 95 variants, one folder per model.
Each ZIP containsfirmware/<model>/with its binaries and README. manifest.json— path, size, SHA-256, PID, keymap andtestedflag per image.SHA256SUMS— verify withsha256sum -c SHA256SUMSfrom the repository root._viaimages keep VIA / Keychron Engine support;_defaultimages do not.
Packages / Paquetes
- Per-model ZIP (
keychron-<model>-v1.0.0.zip): standalone. Extract anywhere;
it containsfirmware/<model>/(binaries + README) and a model-only
SHA256SUMSthat verifies withsha256sum -c SHA256SUMSinside the extracted
folder. Model READMEs link to the online docs with absolute URLs, so nothing
breaks outside the repository. - Full-tree ZIP (
keychron-pro-firmware-v1.0.0-full.zip): complete repository
snapshot (docs, patches, tools, all 95 images) for offline browsing and global
checksum verification.
Fixes / Arreglos
report_rate90 → 133 Hz andreconnect_timeout5 → 60 s on all 26
CKBT51 boards, applied on the first Bluetooth init (the 1 s / 5 s uptime
windows are gone).- Bounded UART frame parser; chunked DFU TX; report-queue flush on reconnect;
FIFO-full retry backoff; low-power gate (no STOP1 with pending work); connect
rate limit; opt-inCKBT51_FAST_WAKE(off by default). - q6_pro: removed an accidental
ckbt51_factory_reset()bound to Fn+F3 that
wiped the Bluetooth pairing and module parameters. - q1_pro: the Bluetooth device name is published without surrounding quotes.
Install / Instalación
- Identify your PID:
lsusb | grep 3434, match it in the model README. - Enter DFU: power Off → hold Esc → switch to Cable
(0483:df11appears). - Flash:
Windows: QMK Toolbox (STM32 DFU). macOS:
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D \ firmware/<model>/<variant>/<file>.bin
brew install dfu-util. - Restore your keymap and report the result.
Recovery / Recuperación: docs/RECOVERY.md
· docs/RECOVERY.es.md
Verify / Verificar
sha256sum -c SHA256SUMS
python3 tools/verify_bins.py
python3 tools/verify_manifest.pyBuilt with arm-none-eabi-gcc 14.2 and QMK CLI from the 4-commit series on
k13-pro-bt-fixes. Same version = same bytes.