Skip to content

Releases: UltimateHackingKeyboard/firmware

17.2.0

Choose a tag to compare

@github-actions github-actions released this 23 Jun 15:14

Device Protocol: 4.18.1 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 14.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.15.0

  • Update SDKs.
  • Don't blink leds in sfjl mode when keys are continually pressed.
  • Show ' unavailable' when giving up connection attempt to a host.
  • Make the test suite work on uhk60.
  • Finish basic uhk60 logging support.
  • Adjust bluetooth advertising behavior towards aggressive hosts.
  • Make bluetooth reconnection delay configurable via set bluetooth.minAdvertisingDelay 500. SMARTMACROS:MINOR
  • Fix: resolve hogp not working after dongle pairing.
  • Fix: resolve bluetooth schedule clashes with multiple dongles.
  • Fix: macro scheduler bug that would make uhk lock up on macros of a certain length. SMARTMACROS:PATCH
  • Fix: make ifPlaytime return true when the value exactly equals. SMARTMACROS:PATCH

17.1.3

Choose a tag to compare

@github-actions github-actions released this 16 Jun 08:54

Device Protocol: 4.18.1 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 14.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.14.0

  • Fix: upstream bug that made battery-included uhk80 freeze every few hours of operation.
  • Fix: more bt scheduling adjustments.
  • Fix: dongle connection, due to failing allow list.

17.1.2

Choose a tag to compare

@github-actions github-actions released this 14 Jun 16:55

Device Protocol: 4.18.1 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 14.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.14.0

  • Fix: make modules restart after a firmware update correctly. This was broken between 17.0.0 to 17.1.1, and made uhk60 need manual restart after firmware upgrade.
  • Fix: one possible cause of event scheduler freezes.
  • Fix: generalize native kboot implementation to correctly handle all modules. DEVICEPROTOCOL:PATCH
  • Fix: add full vt100 zephyr shell support. (Needs Agent support.) DEVICEPROTOCOL:PATCH

17.1.1

Choose a tag to compare

@github-actions github-actions released this 02 Jun 18:49

Device Protocol: 4.18.0 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 14.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.14.0

  • Fix: caps lock led on uhk60
  • Fix: make uhk80 respect reenumeration type, and consequently not die during pairing procedures that request reboot.
  • Fix: decrease the dongle interval to actual 7.5ms, instead of scheduling-forced 11ms
  • Fix: increase advertising interval when not actively connecting, to reduce dongle mouse jitter

17.1.0

Choose a tag to compare

@github-actions github-actions released this 28 May 12:26

Device Protocol: 4.18.0 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 14.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.14.0

  • Fix: update numlock/capslock/scrolllock immediately on change.
  • Fix: don't clog usb hubs by too fast usb retries.
  • Fix: change resending logic to allow up to 1024ms long usb hub stalls without loosing reports, and make usb retries back off exponentially.
  • Fix: in case of failed report sends, always send up-to-date state once the connection is alive again. Should fix remaining stuck key issues present since v12.0.0 firmware.
  • Fix: enable I2C glitch filter to reject EMI above 2 MHz.
  • Fix: bit-shift typo in UHK60v2 led backlight driver configuration.
  • Fix: make uhk80 not freeze on deadlocked semaphores - just report these conditions.
  • Fix: deduplicate Hid vs Dongle connections - prevent issues with dongle getting treated as a ble hid device (and consequently not working), getting written into host config multiple times, etc.
  • Ble: disconnect bluetooth between halves when bridge cable is connected.
  • Macros: add ifAlreadyRunning/ifNotAlreadyRunning to simplify reentry guarding. SMARTMACROS:MINOR
  • Macros: validate macro event names. SMARTMACROS:PATCH

17.0.0

Choose a tag to compare

@github-actions github-actions released this 29 Apr 16:34
353b7c3

Device Protocol: 4.18.0 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 14.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.13.2

  • Move new Typing Behavior configurations into the native UserConfig section. USERCONFIG:MAJOR
  • Schedule usb report dispatch - lowers bluetooth latency.
  • Implement module-flashing for uhk80. (Agent support is yet needed.) DEVICEPROTOCOL:MINOR
  • Don't report battery levels over bluetooth when the keyboard is sleeping. It tends to wake up MacOs hosts.
  • Fix module unbricking procedure for modules listening on the default address. (Agent support is yet needed.)
  • Fix sticky key integration with macros - macros would break sticky key sequences by a brief release before first macro command is executed. SMARTMACROS:PATCH
  • Fix stuck layer hold when replaceLayer is triggered from macro after layer release. SMARTMACROS:PATCH

16.3.0

Choose a tag to compare

@github-actions github-actions released this 14 Apr 14:46

Device Protocol: 4.17.0 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 13.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.13.1

Features:

  • Second tap on a host switch action cancels it.

Fixes and maintenance:

  • Refactor: port uhk60 onto c2usb in order to increase codebase maintainability.
  • Refactor: rewrite usb stack integration.
  • Fix: rework usb-report send failure handling.
  • Fix: increase bluetooth reliability - bluetooth hid interfaces should no longer stop functioning randomly.
  • Fix: implement workaround for slow scrolling on microsoft hosts.
  • Fix: preprocess input during usb report send retries.
  • Fix: don't accumulate mouse coordinates during usb report send retries to prevent cursor jumps.

16.2.1

Choose a tag to compare

@github-actions github-actions released this 09 Apr 12:57

Device Protocol: 4.17.0 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 13.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.13.1

General:

  • Implement new zephyr backends for shell and logging.
  • Refactor doubletap handling.

Macro fixes:

  • Fix backlight update after overlayLayer, overlayKeymap, replaceLayer, replaceKeymap commands. SMARTMACROS:PATCH
  • Fix macro crashes (main thread stack overflows) on too deeply nested expressions. SMARTMACROS:PATCH
  • Fix a 16.2.0 macro parser benevolence: e.g., parser wouldn't accept if( due to missing space. SMARTMACROS:PATCH
  • Fix some key release scenarios in postponed nested local scopes. SMARTMACROS:PATCH

16.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Feb 11:16

Device Protocol: 4.17.0 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 13.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.13.0

General:

  • Fix: UHK 60 I2C scheduling caused various issues with modules and left half during 16.1.0 and 16.1.1.
  • Fix: BLE reliability: always exchange MTU right after the connection is established.
  • Fix: Macro key release detection that caused subtle timing bugs with advanced macros.
  • Use a fixed keymap for the BLE pairing PIN flow.

Macro behaviors:

  • Validate all macros in general context. In 16.1.x, unmapped macros weren't validated. SMARTMACROS:PATCH
  • Lower default ifGesture timeout to 500ms. SMARTMACROS:MINOR
  • Add notify command. SMARTMACROS:MINOR
  • Global doubletap detection:
    • Doubletaps are now detected globally at the beginning of keypress lifecycle. Separate secondaryRole.advanced.doubletapTime has been deprecated. SMARTMACROS:MINOR
    • Macros will now remember and reuse secondary role resolutions for the rest of their runtime, regardless of key events
    • Fix: secondary role could incorrectly trigger doubletaps
    • Fix: macros could incorrectly trigger doubletaps
  • Secondary Role keys (HRM):
    • Added secondaryRole.advanced.timeoutType { active | passive } option to postpone timeout action until release. SMARTMACROS:MINOR
    • Made Trigger by mouse subject to minimum hold time to prevent vibration on key press from triggering secondary role when using a trackball module. SMARTMACROS:PATCH
    • Made Trigger by mouse reliably trigger secondary role immediately. SMARTMACROS:PATCH
    • Fixed a number of edge cases related to safety margin where secondary role keys would not trigger in a timely manner. SMARTMACROS:PATCH

Minor changes and refactors:

  • Improve macro performance: use GNU perfect hashing for main macro switch.
  • Refactor USB logging backend.
  • Refactor event scheduler to use binary heap.
  • Improve status buffer rolling.
  • Fix shell initialization: logging levels and sometimes entire shell initialization would fail due to timing and thread priority issues.
  • Lower some compiled-in logging levels, but set them manually to higher levels by default.
  • Fix setting Zephyr log levels via zephyr log enable inf Bt.

16.1.1

Choose a tag to compare

@github-actions github-actions released this 22 Jan 19:01

Device Protocol: 4.17.0 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 13.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.12.0

  • Fix: fix Bluetooth issues caused by returning bad disconnect reasons: failing OOB pairing, connected but otherwise unhandled connections.
  • Fix: when the same dongle is switched to multiple times, it now remains green instead of turning blue.
  • Fix: exempt pairing scenarios from exponential advertising delay backoff.
  • Fix: adjust the advertising exponential backoff.
  • Fix: make sure that the dongle doesn't cause the pairing screen to pop up.
  • Make it possible to gather logs from a disconnected UHK:
    • zephyr uhk logs 1 now allows turning on the log buffer from a macro.
    • zephyr uhk snaplog allows dumping the log into the status buffer and later retrieval from Agent.
    • when logging is enabled via the logs variable, logs are also shown on the OLED display.