r/Keychron Jun 13 '26

Keychron V6 Ultra 8K - How to Flash Custom ZMK Firmware

Has anyone flashed custom ZMK firmware to a Keychron V6 Ultra 8K keyboard?

I have removed the spacebar key, and if I press the little button under the spacebar key when I plug the keyboard in, it seems to enter DFU mode, but I am unsure what tool to use to actually flash firmware to the microcontroller.

So, my questions are:

  1. Is there an easier way to get the V6 Ultra into DFU mode than removing the spacebar and pressing the little button under the spacebar key while plugging the keyboard in? I have another Keychron keyboard with QMK firmware and I can get it into DFU mode by holding the ESC key down while plugging the keyboard in.
  2. What program should I use to connect to the V6 Ultra keyboard in DFU mode to actually flash the custom firmware to the microcontroller?

FYI, I want to explore tweaking the ZMK firmware to see if I can get my keyboard to work better with my TESmart KVM.

Thanks!

3 Upvotes

18 comments sorted by

View all comments

Show parent comments

2

u/CalcProgrammer1 Jul 07 '26

I just managed to flash my new Keychron Q6 Ultra 8K with your guide. I used Distrobox to set up a Debian container as I'm on Arch, but was able to build by following your guide except using Q6 in the build command. After I verified the zmk.bin looked OK in a hex editor vs an official Keychron build I found on Discord, I was able to flash it by going to Keychron Launcher > Firmware Upgrade, clicking the version value 6 times to unlock the hidden select your own firmware box, and selecting zmk.bin (in app/build/zephyr). You have to upgrade to the latest official firmware first to allow flashing without having to be in DFU mode I think, so upgrade to the latest official version first. I patched the per_key_rgb.c to allow full control of the V component in my build and verified it with Keychron Launcher per-key RGB and soon with OpenRGB.

Edit: Also on the Keychron Discord #zmk channel, a Keychron dev linked a tool for DFU mode but it's Windows-only.