You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
László Monda 21cb8dd220 Bump firmware version, update changelog, package.json and versions.h 1 week ago
cla Sign CLA (#319) 2 months ago
keycluster Pull the SDB of the key cluster LED driver high. 1 month ago
left Add LED_DRIVER_UHK60V1_INTB_* macros. 1 month ago
lib Bump firmware version, update changelog, package.json and versions.h 1 week ago
right Make the GetKeyboardState USB command show the presence of the touchpad module. 1 week ago
scripts Bump firmware version, update changelog, package.json and versions.h 1 week ago
shared Bump firmware version, update changelog, package.json and versions.h 1 week ago
touchpad Change the I2C address of the right touchpad firmware from 0x15 to 0x2D to minimize future I2C address collisions. 1 month ago
trackball Set trackball sensor resolution from 500 CPI to 1,000 CPI. 1 month ago
trackpoint Fix trackpoint PS/2 data port. 1 month ago
.clang-format Add a clang-format config file 4 years ago
.gitattributes Force Unix newlines for *.[ch] files. 3 years ago
.gitignore Added Makefiles for compiling the two projects 2 years ago
.gitmodules Add SDK_2.8.0_MKL17Z32xxx4 submodule via HTTPS. 5 months ago
.travis.yml Remove Eclipse build from the Travis job and cache the gcc archives 2 years ago
CHANGELOG.md Bump firmware version, update changelog, package.json and versions.h 1 week ago
CONTRIBUTING.md Update CONTRIBUTING.md 1 year ago
ISSUE_TEMPLATE Update ISSUE_TEMPLATE 2 months ago
LICENSE Change license. 1 year ago
README.md Update README.md 5 months ago
VERSIONING.md Add conditions that external components must satisfy in regards to version numbers in order to be interface with the UHK. 3 years ago
flash-module.sh Add flash-module.sh 1 year ago
led-mapping.txt Add right half LED mappings. 8 months ago

README.md

Ultimate Hacking Keyboard firmware

Build Status

This repository hosts the firmware of the Ultimate Hacking Keyboard.

If you want to use the latest firmware version for your UHK, then instead of going through the pain of building the firmware, simply download the latest release of Agent and update to the latest firmware version within Agent with a click of a button.

If you're one of the brave few who wants to hack the firmware then read on.

  1. Make sure to clone this repo with:

git clone --recursive git@github.com:UltimateHackingKeyboard/firmware.git

  1. Download and install MCUXpresso IDE for Linux, Mac, or Windows.

  2. Install the GNU ARM Eclipse Plugins for in McuXpresso IDE. This is needed to make indexing work, and to avoid the "Orphaned configuration" error message in project properties.

    1. In MCUXpresso IDE, go to Help > "Install New Software...", then a new dialog will appear.
    2. In the Name field type Eclipse Embedded CDT Plug-ins and in the Location field type https://download.eclipse.org/embed-cdt/updates/neon, then click on the Add button.
    3. Go with the flow and install the plugin.
  3. In the IDE, import this project by invoking File -> Import -> General -> Existing Projects into Workspace, select the left or right directory depending on the desired firmware, then click on the Finish button.

  4. In order to be able to flash the firmware via USB from the IDE, you must build Agent which is Git submodule of the this repo and located in the lib/agent directory.

  5. Finally, in the IDE, click on Run -> External Tools -> External Tools Configurations, then select a release firmware to be flashed such as uhk60-right_release_kboot, and click on the Run button.

Going forward, it's easier to flash the firmware of your choice by using the downwards toolbar icon which is located rightwards of the green play + toolbox icon.

Contributing

Want to contribute? Let us show you how.

Custom Firmwares

The following list contains unofficial forks of the firmware. These forks provide functionality unavailable in the official firmware, but come without guarantees of any kind:

  • https://github.com/kareltucek/firmware - firmware featuring macro engine extended by a set of custom commands, allowing more advanced configurations including custom layer switching logic, doubletap bindings, alternative secondary roles etc.

  • https://github.com/p4elkin/firmware - firmware fork which comes with an alternative implementation of the secondary key role mechanism making it possible to use the feature for keys actively involved in typing (e.g. alphanumeric ones).