If you own a Glorious GMMK Pro and want to find out whether you have Rev1 or Rev2, follow this detailed guide. The main differences between these revisions lie in their microcontroller (MCU) and firmware size, which we will analyze using DFU mode and dfu-util.
Step 1: Enter DFU Mode on Your GMMK Pro
To interact with the keyboard’s firmware, we need to put it into DFU (Device Firmware Upgrade) mode. To get out of this mode, simply power cycle the board. But make sure to NEVER power cycle a MCU while it is flashing. Otherwise you most likely will end up with a bricked device.
How to Enter DFU Mode:
- Unplug your keyboard.
- Hold down the Spacebar + B keys.
- Plug the keyboard back in while continuing to hold the keys.
- Your computer should recognize the keyboard as a STM32 BOOTLOADER device.
To confirm the device is in DFU mode, run:
lsusb | grep STM
Expected output:
Bus 002 Device 005: ID 0483:df11 STMicroelectronics STM32 BOOTLOADER
Step 2: Install dfu-util
We will use dfu-util
to read and analyze the firmware stored on your GMMK Pro.
Mac (Homebrew):
brew install dfu-util
Linux (Debian/Ubuntu):
sudo apt update && sudo apt install dfu-util -y
Windows:
- Download
dfu-util
from the official dfu-util page. - Extract the binaries and use
dfu-util.exe
from the command line.
After installation, verify it is installed by running:
dfu-util --version
Step 3: Read the Firmware from Memory
Now that dfu-util
is installed, let’s extract the firmware to check its size.
Identify the DFU Device
sudo dfu-util -l
Example output:
Found DFU: [0483:df11] ver=2200, devnum=1, cfg=1, intf=0, path="0-1", alt=0, name="@Internal Flash /0x08000000/128*0002Kg", serial="205E36552033"
Dump the Firmware
Extract the firmware to a file for analysis:
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000:524288 -U gmmk_pro_firmware.bin
-d 0483:df11
: Specifies the device ID.-a 0
: Selects the internal flash memory.-s 0x08000000:524288
: Reads up to 512 KB from the microcontroller’s flash memory.-U gmmk_pro_firmware.bin
: Saves the extracted firmware to a file.
Now, check the firmware size:
ls -lh gmmk_pro_firmware.bin
Expected output:
-rw-r--r-- 1 user staff 256K Jan 1 00:00 gmmk_pro_firmware.bin
Step 4: Determine Revision Based on Firmware Size
The firmware size tells us which revision your keyboard is:
- 256 KB (Rev1) → Uses the STM32F303 microcontroller.
- 512 KB (Rev2) → Uses the STM32F411 microcontroller.
Microcontroller Differences
Revision | Microcontroller | Flash Size |
---|---|---|
Rev1 | STM32F303 | 256 KB |
Rev2 | STM32F411 | 512 KB |
Since Rev1 uses a smaller flash partition (256 KB), its firmware will never exceed that size. Rev2, on the other hand, requires larger firmware (closer to 512 KB).
Conclusion: Identifying Your GMMK Pro Revision
By following this guide, you can determine whether your GMMK Pro is Rev1 or Rev2 by:
- Entering DFU mode.
- Installing and using dfu-util.
- Extracting the firmware and checking its size.
If your firmware size is 256 KB, you have Rev1. If it’s closer to 512 KB (over 256 KB), you have Rev2.
This method is non-intrusive and does not modify your keyboard’s firmware, ensuring a safe way to determine your revision.