qmk-keychron-q3-colemak-dh/keyboards/xiaomi/mk02
Ryan ebb512db82
Debounce defines cleanup (#19742)
* Clean up `DEBOUNCE` in config.h, 0-9

* Clean up `DEBOUNCE` in config.h, A

* Clean up `DEBOUNCE` in config.h, B

* Clean up `DEBOUNCE` in config.h, C

* Clean up `DEBOUNCE` in config.h, D

* Clean up `DEBOUNCE` in config.h, E

* Clean up `DEBOUNCE` in config.h, F

* Clean up `DEBOUNCE` in config.h, G

* Clean up `DEBOUNCE` in config.h, H

* Clean up `DEBOUNCE` in config.h, handwired

* Clean up `DEBOUNCE` in config.h, I

* Clean up `DEBOUNCE` in config.h, J

* Clean up `DEBOUNCE` in config.h, K

* Clean up `DEBOUNCE` in config.h, L

* Clean up `DEBOUNCE` in config.h, M

* Clean up `DEBOUNCE` in config.h, N

* Clean up `DEBOUNCE` in config.h, O

* Clean up `DEBOUNCE` in config.h, P

* Clean up `DEBOUNCE` in config.h, Q

* Clean up `DEBOUNCE` in config.h, R

* Clean up `DEBOUNCE` in config.h, S

* Clean up `DEBOUNCE` in config.h, T

* Clean up `DEBOUNCE` in config.h, U

* Clean up `DEBOUNCE` in config.h, V

* Clean up `DEBOUNCE` in config.h, W

* Clean up `DEBOUNCE` in config.h, X

* Clean up `DEBOUNCE` in config.h, Y

* Clean up `DEBOUNCE` in config.h, Z

* Remove default debounce from info.json

* Migrate non-default debounce to info.json
2023-02-03 19:19:58 +00:00
..
keymaps/default Remove legacy keycodes, part 5 (#18710) 2022-10-15 22:29:43 +01:00
ld
chconf.h
config.h Debounce defines cleanup (#19742) 2023-02-03 19:19:58 +00:00
halconf.h
info.json Move keyboard USB IDs and strings to data driven: X (#17925) 2022-08-06 18:45:43 +10:00
mcuconf.h
mk02.c
mk02.h
readme.md
rules.mk Fixup bootloaders. (#16256) 2022-02-06 19:09:21 -08:00

Xiaomi Yuemi Pro MK02

A tenkeyless keyboard sold under Xiaomi brand. It uses an STM32F072C8T6 microcontroller and can be flashed with QMK.

LED backlight is currently not supported.

  • Keyboard Maintainer: @xyzz
  • Hardware Supported: Xiaomi Yuemi Pro MK02
  • Hardware Availability: Aliexpress

Make example for this keyboard (after setting up your build environment):

make xiaomi/mk02:default

See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.

Installation

Please understand that following these steps will void your warranty and might irrecoverably damage your keyboard.

Installing the bootloader

You only need to do this step once (unless you destroy your user bootloader which is not possible so long as you follow these steps correctly).

Unplug the keyboard. Disassemble the keyboard and look at the area around the MCU. Make sure your keyboard looks the same as in the picture and that the chip says STM32F072C8T6 on it:

mcu

Using a piece of wire, connect TP28 (indicated in red) and 3v3 (square pad indicated in green) together with tweezers or a piece of wire. Make sure to not touch the case with your wire when shorting!!! Don't push it all the way through the hole.

Plug the keyboard in with the wire connected. You should see the following device appear:

[5067851.560317] usb 2-1.5.3.1: new full-speed USB device number 6 using ehci-pci
[5067851.670006] usb 2-1.5.3.1: New USB device found, idVendor=0483, idProduct=df11, bcdDevice=22.00
[5067851.670010] usb 2-1.5.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[5067851.670013] usb 2-1.5.3.1: Product: STM32  BOOTLOADER
[5067851.670015] usb 2-1.5.3.1: Manufacturer: STMicroelectronics
[5067851.670017] usb 2-1.5.3.1: SerialNumber: FFFFFFFEFFFF

If you don't see this, you did something wrong. Disconnect the keyboard and try again.

If you do see this, remove the wire before continuing.

Make a backup of internal flash memory in case you'd like to revert to the original firmware in the future:

dfu-util -d 0483:df11 -a 0 -s 0x08000000 -U flash-backup.bin

Ensure the dumped flash is correct:

strings flash.bin | grep KB

(You should see 2 entries of "USB KB")

Finally, flash the bootloader (jumploader-xiaomi_mk02-padded.bin) with:

dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D jumploader-xiaomi_mk02-padded.bin

At this point the keyboard should reboot into bootloader mode; if it doesn't, wait a couple seconds and replug the USB cable.

Installing the firmware

To install QMK, first boot into bootloader mode as detailed below. When the keyboard boots in bootloader mode, you should see the following device:

[5067851.560317] usb 2-1.5.3.1: new full-speed USB device number 6 using ehci-pci
[5067851.670006] usb 2-1.5.3.1: New USB device found, idVendor=0483, idProduct=df11, bcdDevice=22.00
[5067851.670010] usb 2-1.5.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[5067851.670013] usb 2-1.5.3.1: Product: STM32  BOOTLOADER
[5067851.670015] usb 2-1.5.3.1: Manufacturer: STMicroelectronics
[5067851.670017] usb 2-1.5.3.1: SerialNumber: FFFFFFFEFFFF

Flash the keyboard normally by executing:

make xiaomi/mk02:default:flash

Warning! If you flash the firmware manually by using dfu-util, make sure to use the following arguments:

-d 0483:df11 -a 0 -s 0x08002000:leave

If you don't, you'll blow away the user bootloader and will have to repeat the installation steps.

Booting into bootloader

To boot into bootloader, do either of the following:

  • map a RESET key in your keymap and tap it, or
  • hold spacebar while plugging in the keyboard.

If neither of these work, you must have blown away the user bootloader somehow and will need to repeat the installation guide from the first step.

Restoring the original firmware

If you wish to restore the original firmware, boot into the bootloader and then execute:

dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D flash-backup.bin