DEPRECATION NOTICE:
This firmware has been deprecated as a result of moving from Atmel AVR to NXP Kinetis microcontrollers.
You're welcome to check out the new firmware.
This is the firmware of the Ultimate Hacking Keyboard.
Please make sure to clone this repo with:
git clone --recursive git@github.com:UltimateHackingKeyboard/firmware.git
This way the LUFA submodule will be cloned too, which is a necessary dependecy.
Switch to the mac
vs pc
branch if you use a Mac vs Linux/Windows. This will set up a reasonable default keymap.
git checkout mac
or git checkout pc
Now, edit the array in right/DefaultKeyMap.c to customize your keymap.
Install the necessary buld tools on your system such as AVR GCC and AVR Libc. Then go into the right
directory and type make
. The resulting firmware image is uhk-right.hex
.
Please note that during this process the UHK will become temporarily unusable, so be sure to have another keyboard at your disposal to be able to enter commands.
- Install avrdude on your system. You should use avrdude version 6 or later because earlier versions may not work properly.
- On Linux:
apt-get install avrdude
(or something else if you use another package manager) - On Mac:
brew install avrdude --with-usb
- Switch the right keyboard half to bootloader mode. For this, put a magnet near the back of the right keyboard half around the bottom outside corner. It can be a fridge magnet or even the magnet of the other keyboard half.
- If pressing the keys on the keyboard doesn’t do anything anymore then you’ve succeeded.
- Don’t worry, you can unplug the USB cable and plug it back any time to make the keyboard usable again.
- Locate the device file that popped up when you switched the keyboard to bootloader mode. It should be something like
/dev/ttyUSB0
on Linux and/dev/cu.usbmodem1411
on Mac. - Substitute
YourDeviceFile
in the following command with the above device file and enter it:avrdude -p atmega32u4 -P YourDeviceFile -c avr109 -U flash:w:uhk-left.hex
- If everything went well then the UHK reenumerated as a keyboard device running the new firmware.