[QMK] LED Firmware for Macropad

Hi Guys,

i wanted to share my progress with QMK so far. I am currently focused on the macropad, since this is my only part with LED stuff and it didn’t work out of the box with QMK (The ISO keyboard sadly wasn’t availalbe with LED during my time of ordering)

I’ve figured out the main problems with the Framework Codebase, so here’s a brief rundown on compiling and flashing your board.

PLEASE NOTE:

  • VIA DOES NOT WORK WITH QMK!
  • THIS IS ALL STILL WORK-IN-PROGRESS! My own code (first link) is tailored towards my needs but i try my best to explain everything.

Important Links:

  1. My QMK GIT repository with the keymaps
  2. The modified Framework16 QMK codebase

Setup QMK keymaps

You need my modified codebase of framework-qmk because framework implemtend one function call wrongly, which renders RGB Matrix completely useless.

  1. Follow the installation guide to setup QMK Setting Up Your QMK Environment | QMK Firmware. Alternatively you can use one guide from knfn here in this forum. You just need it to confirm that your setup of qmk is running correctly. We don’t need this repository afterwards.

  2. Download the modified codebase (second link) alongside the original qmk or somewhere else and run qmk doctor inside

git clone https://github.com/heumann-a/fw_qmk_firmware.git fw16_qmk_firmware
cd fw16_qmk_firmware
git branch checkout origin/fl16-v0.2.8-prep
qmk doctor
cd ..

  1. If there are some error messages, consult google or the QMK documentation about it.

  2. Download my QMK Git repo into the same folder alongside my modified framework16 qmk repo (This exact location is only necessary if you want to use my compile.sh script later on)

git clone https://github.com/heumann-a/qmk-keymaps.git
  1. Now you need to do the following steps
  • [OPTIONAL] Copy your QMK userspace folder into ../fw16_qmk_firmware/users/
  • Copy your framework keymap for the macropad to ../fw16_qmk_firmware/keyboards/framework/macropad/keymaps/ and rename it to the same as your userspace folder or just use one you like if you don’t have an userspace.
  • For the keyboard its ../fw16_qmk_firmware/keyboards/framework/{FORMAT}/keymaps/, where {FORMAT} is your type of keyboard: ansi, iso or jis

My script does all that for me, you can fork and modify as you see fit.

Compiling

Compiling is straightforward, just go into fw16_qmk_firmware folder and execute one of the two commands with {USERSPACE NAME}being the same name as your renamed keymap folder in the steps before and {FORMAT} being your type of keyboard

  • RGB Macropad qmk compile -kb framework/macropad -km {USERSPACE NAME}
  • RGB Keyboard qmk compile -kb framework/{FORMAT} -km {USERSPACE NAME}

Flashing

To power cycle the FW keyboards, remove the touchpad which will turn off power to all keyboard/macropad devices. Next, press and hold the reset buttons as described below.

  • RGB Macropad: Hold down the 6 and 2 keys while powering on the keyboard. The 6 key is positioned at (2,3) and the 2 key is positioned at (1,4), with the top left key being (0,0)
  • RGB Keyboard: Hold down the left and right ALT Keys

Finally, slide the touchpad back in while holding the reset keys. This will repower the device and put it into reset mode. To disable reset mode without flashing, just remove the touchpad and put it back.

IMPORTANT: VIA sits inside EEPROM so you need to clear the EEPROM

I recommend using VIA to programm a key with the special key Reset, which resets the FW keyboards into bootloader mode and one custom key (its the ANY key) with QK_CLEAR_EEPROM, which clears the EEPROM. Press clearing the eeprom first and than go into the bootloader and flash your freshly compiled firmware by copying it into the device.

Setting up own QMK keymap

As a simple base i recommend just using the folder fw16_macropad/ without my userspac folder and with only these includes inside keymap.c

#include QMK_KEYBOARD_H
#include "quantum.h"

Now you are good to go starting to programm the Macropad with new shiny LED effects and own custom functions more powerfull than VIA!

2 Likes