QMK on the Pocket Reform

a few weeks ago, i started porting QMK to the Pocket Reform. i’ve been daily driving it for the last week or so without any major pains, so i’m putting it out here for all of you!

it’s pretty close to feature parity with the stock firmware: trackball (with scrolling and RGB adjustment), system controller commands (power on/off and power status), OLED menu, and RGB lights are all there. what’s missing are some of the menu functions (firmware status, tina, USB stack reset) and some of the flourishes like the “help” screen, SoM power state tracking, “hello” screen when powering up the SoM, and it doesn’t have as pretty of a power status screen.

the advantages it has over stock are that it’s much easier to add layers, has support for modified keys (e.g. ! without holding shift), the menu is easily and safely extensible, persistent RGB colors, confirmation for powering the SoM down from the menu, a smaller binary filesize, and automatically turning off the OLED when the keyboard is idle for 5 seconds to reduce burn-in.

the issues it has are the keyboard turning off sometimes when the SoM is powered down (fixable by cycling the power switch or resetting the HID board) and inconsistent issues with UART command responses (usually first battery request after SoM power up).

if you’re interested in using it, you can find it on my git forge or Codeberg. QMK support on ARM distributions is pretty spotty, but you can find the arm-none-eabi toolchain for your platform here on ARM’s developer site. you’ll want to clone QMK firmware, clone my repository into the keyboards subdirectory (preferably into keyboards/mntre/pocket_reform_hid), and run qmk setup and make mntre/pocket_reform_hid:default, and then use picotool to flash the generated uf2 file (mntre_pocket_reform_hid_default.uf2). you can also try my (frankly bizarre) layout with make mntre/pocket_reform_hid:valerie. obligatory “distributed under GPL 3.0 but i haven’t included license headers yet.”

if you’re interested in contributing, you can do so on Codeberg. i already have some issues made if you’re looking for somewhere to start.

i’m also happy lend a hand and answer questions in this thread if anyone has them.

6 Likes

Hey, that’s super awesome, thanks for contributing this!

1 Like