Keychron K8 Reverse Engineering
These are unofficial firmwares, please use at your own discretion.
Keychron K8
NOTE: This code in this repository may be outdated. Please see the SonixQMK repository for the latest Keychron firmwares.
Direct link to all Keychron firmwares folder here
This fork brings QMK to the Keychron K8.
If you have never touched QMK before: https://docs.qmk.fm/#/newbs. Make sure you have QMK MSYS set up.
Progress:
- QMK custom keymaps are working properly
- RGB works properly, no more flickering
- Bluetooth does not work, currently waiting for QMK to release an official Bluetooth API
- VIA does not work, currently no EEPROM support
Setup repo + dependencies
- Clone this repository: https://github.com/SonixQMK/qmk_firmware, and make sure you are on the sn32_master branch
- In the root of the
qmk_firmwaredirectory, run these commands:git submodule add https://github.com/SonixQMK/ChibiOS-Contrib.gitmake git-submoduleutil/qmk_install.sh
- You should be able to compile firmwares now:
- Open QMK_MSYS, cd to the qmk_firmware directory root, then run these commands:
qmk setup(if you haven't already)make keychron/k8/rgb/ansi:default
- Open QMK_MSYS, cd to the qmk_firmware directory root, then run these commands:
Instructions on how to flash QMK to the K8:
- Customize your keymap and compile your firmware
- Keymaps can be found under
keyboards/keychron/k8/keymaps - For example, if you want a firmware for the Keychron K8 ANSI, edit the
keymap.cunderkeyboards/keychron/k8/keymaps/ansi - Then run
make keychron/k8/rgb/ansi:ansiin QMK_MSYS
- Keymaps can be found under
- Download this flashing tool and run it: https://github.com/qmk/qmk_firmware/files/5862715/SONiX_USB_MCU_ISP_Tool_V2.3.1.7-.zip
- Click 'Load File' and select
SN32F24xBon the right, then choose your *.hex QMK firmware file - VID -
0C45, PID -7040 - Put your K8 into DFU/bootloader mode:
- Remove the spacebar and short the
BOOTpin toP7pin - Note: There are 5 pins on the left of the spacebar switch,
BOOTandP7are the two rightmost pins
- Remove the spacebar and short the
- Connect your K8 to your computer
- Click 'Flash' in the Sonix flashing tool
- Enjoy
TODO List - QMK support
- Ability to safely flash bootloader
- Ability to revert to factory firmware
- Confirm Chibios functionality
- Get QMK Working
- Get RGB working
- Get VIA working (currently no EEPROM support, which is required for VIA)
- Bluetooth functionality (currently waiting on official Bluetooth support from QMK)
Chips
- Main MCU - HFD2201KBA - appears to be based on/clone of SONIX SN32F24xB
- Bt module CYPRESS CYW20730A2KFBG
- Charge IC - TPU5000
Key Matrix & MCU
MCU-Diagram - Keyboard matrix diagram on the MCU
| --- | col | C0 | C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10 | C11 | C12 | C13 | C14 | C15 | C16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| row | pin | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
| R0 | 64 | |||||||||||||||||
| R1 | 63 | |||||||||||||||||
| R2 | 62 | |||||||||||||||||
| R3 | 61 | |||||||||||||||||
| R4 | 60 | |||||||||||||||||
| R5 | 59 |
MCU-Diagram - LED matrix
| g | b | r | --- | --- | --- | col | C0 | C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10 | C11 | C12 | C13 | C14 | C15 | C16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ch1 | ch2 | ch3 | pin | pin | pin | pin | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
| Q13 | Q7 | Q1 | 01 | 02 | 04 | --- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | --- | --- | --- | --- | --- | --- | --- |
| Q14 | Q8 | Q2 | 05 | 06 | 07 | --- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | --- | --- | --- | --- | --- | --- | --- |
| Q15 | Q9 | Q3 | 08 | 09 | 10 | --- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | --- | --- | --- | --- | --- | --- | --- |
| Q16 | Q10 | Q4 | 11 | 12 | 13 | --- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | --- | --- | --- | --- | --- | --- | --- |
| Q17 | Q11 | Q5 | 14 | 15 | 47 | --- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | --- | --- | --- | --- | --- | --- | --- |
| Q18 | Q12 | Q6 | 50 | 49 | 48 | --- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | --- | --- | --- | --- | --- | --- | --- |
MCU-Diagram - mac/win and bt/off/cable dip switches
- Bluetooth / O / Cable Mode: pin 57
- Win - Android / Mac - iOS Mode: pin 58
MCU Pinout - SN32F248BF
Bluetooth module
seems to be wired like the Blitzwolf BW-KB1(https://github.com/IslamAlam/blitzwolf-bw-kb-1)






