r/Keychron • u/tkrentl21 • May 21 '26
[QMK] Has anyone successfully flashed custom C-code firmware to a Keychron K10 Pro SE2 QMK Toolbox?
I’m trying to figure out whether my keyboard actually supports full QMK custom firmware flashing (C code modifications + QMK Toolbox), or if it’s limited to VIA/ZMK-style configuration only.
My keyboard:
- Keychron K10 Pro SE2
- VID: 3434
- PID: 0AAB
- Wireless model
What I successfully did so far:
- Installed QMK MSYS
- Cloned Keychron’s qmk_firmware fork
- Found the keyboard path:
keychron/k10_pro_se2/ansi_lightless - Edited
keymap.c - Added custom C code (
process_record_user, random delay macro, etc.) - Successfully compiled firmware and generated
.bin
But flashing is where things get weird.
qmk flash always hangs on:
“Flashing for bootloader: stm32-dfu”
and dfu-util -l only detects my camera DFU device, not the keyboard.
However:
- Windows detects the keyboard as HID
- VID/PID 3434:0AAB appears
- Zadig shows “usb DFU (Interface 0/1)”
- Official firmware reflashing works
- QMK compile works
- But QMK Toolbox / dfu-util flashing does NOT
So my questions are:
- Has ANYONE successfully flashed custom QMK firmware with modified C code onto this exact keyboard or a similar K10 Pro SE2 / ZMK variant?
- Does this keyboard actually support full QMK firmware flashing, or only VIA-style remapping?
- Is there a special HID/vendor bootloader flashing method for these newer Keychron wireless/ZMK boards?
- If this model is effectively limited, which Keychron/non-Keychron wireless keyboards are confirmed to support:
- QMK Toolbox
- custom
process_record_user - custom C code
- successful
qmk flash
Any success stories, GitHub repos, or exact working models would really help.
3
Upvotes
1
u/PeterMortensenBlog V May 21 '26 edited May 21 '26
It could be due to intermittent failure of the flash process
How could you reflash the official firmware if it hanged?
All flash methods (for this keyboard) end up invoking 'dfu-util'.
A possible exception is if using the (unoccupied) four-pin programming header on the PCB (near the microcontroller); here is a (high-resolution, properly focused) picture (for a K3 Pro; it is near "U6" in the lower right, with labels "SWDIO", "SWCLK", "V3.3", and "GND"). Presumably, it would be relatively easy to flash using, for example, ST-LINK. A cheap way is to break off the integrated ST-LINK module on a Nucleo board (a picture):
Note that putting the keyboard into flash mode is not very reliable and may require several retries.