QMK is an open source keyboard firmware that supports a ton of different keyboards and micro controllers.
https://keeb.io/products/bdn9-3x3-9-key-macropad-rotary-encoder-support?variant=15959960944734
Regardless of the method of setup for compiling the firmware, the QMK Toolbox the easiest way to flash firmware.
-
Make sure you have brew installed, get it here
-
Brew install ALL THE THINGS!
brew tap osx-cross/avr
brew install avrdude
brew cask install docker # You may already have docker for mac, so skip this if you do
brew cask install caskroom/drivers/qmk-toolbox
-
Make sure they work
a. Open the Docker for Mac application to run the docker daemon
b. Open the QMK Toolbox application to make sure its working, you'll use this later to flash the firmware onto the keyboard.
- Make sure you have the qmk_firmware git repository checked out
git clone https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
- Run the utility script to compile the
default
layout for the BDN9 in the Keep.io directory
# The target keyboard has the form <path-to-keyboard>:<layout folder>.
./util/docker_build.sh keebio/bdn9:default
# this will output the hex into the root qmk_firmware directory
ls | grep hex
# keebio_bdn9_default.hex
Full docs: https://docs.qmk.fm/#/newbs_flashing
-
Open QMK Toolbox
-
Make sure the macropad is connected, you should see it show up in the Toolbox
-
Select the
keebio_bdn9_default.hex
that was built in the previous section -
Press the reset button on the macropad
NOTE: If you see this in the output, then press the reset button again or turn off bluetooth and press it again until you see something like
Found port: /dev/cu.usbmodem1401
*** Caterina device connected
Found port: /dev/cu.Bluetooth-Incoming-Port
- Click the 'Flash' button
- You should see output like this
# Press reset button
# List usb devices until one shows up
ls /dev/cu.usb*
# Quickly edit this line with the `/dev/*` entry and execute this line
avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:keebio_bdn9_default.hex -P/dev/cu.usbmodem1401
These are the default layers
- Make sure you have the qmk_firmware git repository checked out
- Run the helper script to bootstrap a new layout
./util/new_keymap.sh keebio/bdn9 $USER
This will output something like this:
jwelch92 keymap directory created in: qmk_firmware/keyboards/keebio/bdn9/keymaps/
Compile a firmware file with your new keymap by typing:
make keebio/bdn9:jwelch92
from the qmk_firmware directory
- Open the resulting
keymap.c
file in your favorite code/text editor
subl keyboards/keebio/bdn9/keymaps/$USER/keymap.c
- You should see this keymap layout
- Check out the QMK docs or our examples in this repo to start customizing!
QMK Docs: https://docs.qmk.fm/#/newbs_building_firmware?id=customize-the-layout-to-your-liking
Keycodes: https://docs.qmk.fm/#/keycodes
Advanced keycodes: https://docs.qmk.fm/#/feature_advanced_keycodes
Lighting: https://docs.qmk.fm/#/feature_rgblight
Tap dance: https://docs.qmk.fm/#/feature_tap_dance
Unicode: https://docs.qmk.fm/#/feature_unicode
Debugging: https://docs.qmk.fm/#/newbs_testing_debugging & https://docs.qmk.fm/#/faq_debug (edited)
Simple browser layout: https://github.com/qmk/qmk_firmware/blob/master/keyboards/keebio/bdn9/keymaps/vosechu-browser/keymap.c
Complicated KSP layout: https://github.com/qmk/qmk_firmware/blob/master/keyboards/keebio/bdn9/keymaps/vosechu-ksp/keymap.c
Going farther yet!: https://github.com/musl/nr-offsite-mech-keys/tree/master/hotkey_reassigning