How to Determine Your GMMK Pro Revision (Rev1 vs. Rev2)

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:

  1. Unplug your keyboard.
  2. Hold down the Spacebar + B keys.
  3. Plug the keyboard back in while continuing to hold the keys.
  4. 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

RevisionMicrocontrollerFlash Size
Rev1STM32F303256 KB
Rev2STM32F411512 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:

  1. Entering DFU mode.
  2. Installing and using dfu-util.
  3. 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.