Skip to content

Releases: UltimateHackingKeyboard/firmware

8.1.1

11 Feb 03:31
Compare
Choose a tag to compare

Device Protocol: 4.2.0 | Module Protocol: 4.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0

  • Lock layers every time when double-tapping their layer switcher keys, regardless of how many times the layer switcher key was tapped before.
  • Only lock layers via double-tapping if the second tap gets released within 100ms.

8.1.0

15 Jan 10:29
Compare
Choose a tag to compare

Device Protocol: 4.2.0 | Module Protocol: 4.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0

  • Enable left-half watchdog in reinit mode which seems to prevent freezes.
  • Slow down main bus I2C baud rate to 30kHz when BusPal is on to make firmware transfer more robust.
  • Implement UsbCommandId_GetSlaveI2cErrors. DEVICEPROTOCOL:MINOR
  • Implement UsbCommandId_SetI2cBaudRate. DEVICEPROTOCOL:MINOR
  • Implement DevicePropertyId_CurrentKbootCommand. DEVICEPROTOCOL:MINOR
  • Implement DevicePropertyId_I2cMainBusBaudRate. DEVICEPROTOCOL:MINOR
  • Implement DevicePropertyId_Uptime. DEVICEPROTOCOL:MINOR

8.0.1

15 Jan 10:39
Compare
Choose a tag to compare

Device Protocol: 4.1.0 | Module Protocol: 4.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0

  • Implement I2C watchdog for the left keyboard half which should resolve the occasional hangs of the left keyboard half.

8.0.0

15 Jan 16:57
Compare
Choose a tag to compare

Device Protocol: 4.1.0 | Module Protocol: 4.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0

  • Make the modules transfer the module protocol version and firmware version composed of a major, a minor and a patch number. MODULEPROTOCOL:MAJOR
  • Query module key count and pointer count in separate messages instead of a combined message for improved clarity. MODULEPROTOCOL:MAJOR
  • Add new UsbCommand_GetModuleProperties() device protocol command. DEVICEPROTOCOL:MINOR

7.0.0

15 Jan 16:59
Compare
Choose a tag to compare

Device Protocol: 4.0.0 | Module Protocol: 3.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0

  • Make UsbCommand_JumpToModuleBootloader() more robust by not making it dependent on the state of the module driver.
  • Don't make horizontal scrolling and vertical scrolling affect each other.
  • Expose version numbers via the get property interface. DEVICEPROTOCOL:MINOR
  • Add DevicePropertyId_ConfigSizes. DEVICEPROTOCOL:MINOR
  • Remove DevicePropertyId_HardwareConfigSize and DevicePropertyId_UserConfigSize. DEVICEPROTOCOL:MAJOR

6.0.0

15 Jan 17:00
Compare
Choose a tag to compare

Device Protocol: 3.0.0 | Module Protocol: 3.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0

  • Change the value of almost every Device Protocol commands because there were unused intervals between them. DEVICEPROTOCOL:MAJOR
  • Disable LED display icons by default.
  • Update LED brightness levels upon applying the configuration.

5.0.1

15 Jan 17:00
Compare
Choose a tag to compare

Device Protocol: 2.0.0 | Module Protocol: 3.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0

  • Make key presses continue to emit scancodes even if a USB interface (typically the mouse interface) is not polled by the host anymore.
  • Make scrolling always immediately react to keypresses regardless of the previous internal scroll state.

5.0.0

15 Jan 17:01
Compare
Choose a tag to compare

Device Protocol: 2.0.0 | Module Protocol: 3.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0

  • Move pointerRole from keymaps to module configurations as pointerMode. Add angularShift, modLayerPointerFunction, fnLayerPointerFunction, and mouseLayerPointerFunction to module configurations. USERCONFIG:MAJOR

4.0.0

15 Jan 17:02
Compare
Choose a tag to compare

Device Protocol: 2.0.0 | Module Protocol: 3.0.0 | User Config: 3.0.0 | Hardware Config: 1.0.0

  • Implement mouse movement and scrolling deceleration and acceleration.
  • Toggle layers upon double tapping their keys. Make the double tap timeout configurable.
  • Make the parser read additional user configuration properties: userConfigMajorVersion, userConfigMinorVersion, userConfigPatchVersion, doubleTapSwitchLayerTimeout, iconsAndLayerTextsBrightness, alphanumericSegmentsBrightness, keyBacklightBrightness, mouseMoveInitialSpeed, mouseMoveAcceleration, mouseMoveDeceleratedSpeed, mouseMoveBaseSpeed, mouseMoveAcceleratedSpeed, mouseScrollInitialSpeed, mouseScrollAcceleration, mouseScrollDeceleratedSpeed, mouseScrollBaseSpeed, mouseScrollAcceleratedSpeed. USERCONFIG:MAJOR

3.0.0

15 Jan 17:03
Compare
Choose a tag to compare

Device Protocol: 2.0.0 | Module Protocol: 3.0.0 | User Config: 2.0.0 | Hardware Config: 1.0.0

  • Detect the use of USB interfaces and only wait for the ones that are actually used by the host.
  • Implement key debouncer.
  • Use the menu key in the factory keymap.
  • Make pressing the reset button revert to the factory preset.
  • Revert to the factory default state when the reset button is pressed upon firmware startup. Display FTY on the display in this case.
  • Make the LED display show the abbreviation of the current keymap even when it gets reinitialized by the I2C watchdog.
  • Swap SlaveCommand_RequestKeyStates and SlaveCommand_JumpToBootloader, thereby making SlaveCommand_JumpToBootloader the lower number because it's more essential and shouldn't change in the future. MODULEPROTOCOL:MAJOR
  • Suppress pressed keys upon layer switcher key release.
  • Handle secondary role modifiers and layer switchers.
  • Make UsbCommand_JumpToSlaveBootloader expect a slave slot id instead of a uhkModuleDriverId. DEVICEPROTOCOL:MAJOR
  • Set UsbResponse_InvalidCommand upon encountering with an invalid USB command. DEVICEPROTOCOL:MINOR
  • Remove UsbCommandId_ReadMergeSensor now that it can be queried via UsbCommandId_GetKeyboardState. DEVICEPROTOCOL:MAJOR
  • Make the getAdcValue and getDebugInfo USB commands utilize the first byte of the response to provide status as dictated by the UHK protocol. DEVICEPROTOCOL:MAJOR
  • Switch keymap only upon keypress.
  • Handle layer toggle actions.
  • Keep the active layer active even if another layer switcher key gets pressed while holding it.
  • Read the new UserConfig.userConfigLength user config field. USERCONFIG:MAJOR
  • Change Ctrl and Alt back according to the official UHK factory keymap.
  • Update system keyboard HID descriptor which doesn't make the pointer go to the top left corner on OSX anymore.
  • Scan keyboard matrices in a more efficient manner from timer interrupts instead of the main loop.
  • Add UsbCommand_SendKbootCommand. DEVICEPROTOCOL:MINOR
  • Make the reenumerate USB command accept a timeout value. DEVICEPROTOCOL:MINOR
  • Make the config parser read the device name. USERCONFIG:MAJOR
  • Update release file format containing device and module directories and hex files instead of srec.
  • Remove obsolete ARM GCC build files.