Skip to content

Releases: UltimateHackingKeyboard/firmware

16.1.1

22 Jan 19:01

Choose a tag to compare

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.

16.1.0

16 Jan 12:30

Choose a tag to compare

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: make Bluetooth no longer reconnect during pairing.
  • Fix: when using overlayLayer, the first empty action after any nonempty action would be overwritten. (In a sequence of at least two empty actions.) SMARTMACROS:PATCH
  • Fix: restart advertising when switch host selection ceases to be relevant.
  • Fix: change Bluetooth disconnect reasons.
  • Wake shortly when a key is tapped in light sleep mode.
  • Log remote wakeup error codes onto the OLED display.
  • Refactor UART and implement UART module support. (This should have no impacts.)
  • Make the UHK Bluetooth functionality not rely on Agent:
    • Assign newly paired Bluetooth connections into regular host slots.
    • Don't unpair unknown devices upon config saves.
    • Show Bluetooth relevant events on the OLED screen. ("Pairing...", "Slot freed", "Slot unassigned"...)
    • If native switch host action is held for 3 seconds, unpair the connection and free its slot for other devices.
    • Add the unpairHost macro command. SMARTMACROS:MINOR
    • For unpairHost and switchHost, allow numeric slot ids. SMARTMACROS:MINOR
  • Macro string support:
    • Add STRING variable type and comparison operators. SMARTMACROS:MINOR
    • Add $uhk.name virtual variable. SMARTMACROS:MINOR
  • Macro templates:
    • Distinguish &macroArg.1 and $macroArg.1 expansions SMARTMACROS:MINOR
    • Validate all macros in the context of their binding sites. SMARTMACROS:PATCH
  • Bluetooth behavior:
    • Reset host selection after 15 seconds if not successful.
    • Implement exponential backoff for Bluetooth when hosts try to connect aggresively.
  • Homerow mods (HRM) changes: Added a number of options to secondary role keys, mainly focused on adding options to reduce false positive activations of the secondary roles, making them more viable for HRM usage:
    • Added secondaryRole.advanced.acceptTriggersFromSameHalf option and its inline ignoreTriggersFromSameHalf | acceptTriggersFromSameHalf overrides to allow Secondary Role Keys to ignore triggers from their own keyboard half. This reduces false secondary triggers on key rolls as well as allows multi-mod combos at all when using Trigger on press. SMARTMACROS:MINOR
    • Added a secondaryRole.advanced.minimumHoldTime <ms, 0-255 (INT)> option. This is the minimum hold time of a key that is required to trigger its secondary role. SMARTMACROS:MINOR
    • Added a secondaryRole.advanced.timeoutAction none setting. SMARTMACROS:MINOR
    • Moved the Double tap primary activation to timeout to allow the secondary role key to be used for its primary role and then secondary role in quick succession SMARTMACROS:PATCH
    • Refactor secondaryRole.advanced.triggerByPress and triggerByRelease to secondaryRole.advanced.triggeringEvent { press | release | none } SMARTMACROS:MINOR

16.0.0

24 Dec 21:32

Choose a tag to compare

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.11.0

New Features:

  • Implement macro templates. USERCONFIG:MINOR
    • Macros can now be parameterized via $macroArg.0.
    • Reimplement argument handling in config parser. Change key counting logic compared to original macro template implementation.
    • Refactor macro validation to evaluate on per-key basis, including template expansion.
    • Refactor error reporting to report the template expansion stack.
    • Implement altCodeOf, uCodeOf, decCodeOf and hexCodeOf template expansions that can be used for generic unicode sequences. E.g., tapKeySeq altCodeOf(😊). SMARTMACROS:MINOR
  • Add UserConfig version fields to track failed migrations. USERCONFIG: MAJOR

Fixes, maintenance:

  • Eliminate minute delay of the OLED charging indicator, e.g., when rapidly reconnecting USB power.
  • Prevent large jumps of the battery capacity detection algorithm.
  • Change behavior regarding UHK 60 reset button "crashes":
    • Revert 15.3.1 changes and let the keyboard reboot silently.
    • Implement GPIO leakage test. (Please join #1380 if you are affected.)

Misc:

  • Refactor PS/2 trackpoint driver.
  • Improve debug mode icons.

15.3.1

16 Nov 19:18

Choose a tag to compare

Device Protocol: 4.17.0 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 12.0.1 | Hardware Config: 1.0.0 | Smart Macros: 3.10.0

  • Detect spurious reset button activations with UHK 60 and fix the consequent false crash log activations.

15.3.0

04 Nov 13:12

Choose a tag to compare

Device Protocol: 4.17.0 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 12.0.1 | Hardware Config: 1.0.0 | Smart Macros: 3.10.0

Bug fixes:

  • Fix secondary role unblock mouse bug.
  • Fix UHK 60 backlight sleep mode when connected to an USB HID-disabled power source. Implement UHK 60 USB-report-send fail timeout, at 128ms.
  • Fix stuck layer when switching keymaps. (When a held switch is not mapped in the new keymap while switching keymap.)
  • Fix UHK 60 lock/unlock blinking when waking it up with the S+F and J+L keys together.
  • Fix macro freezes when ifShortcut or ifPrimary was used with braces. SMARTMACROS:PATCH

New features:

  • Add runtime macro recording indicator for the UHK 80.
  • Add preliminary support for macro templates. (Key labels, parametrizable macros, Alt code expansion. Needs Agent support.) USERCONFIG:MINOR
  • Add set simulateLowResScrolling BOOL macro command for compatibility with some applications. SMARTMACROS:MINOR
  • Increase effective length of runtime macros by employing better serialization strategy, to 512 keystrokes per runtime macro, and 1024 total.
  • Extend UHK 60 crash logging.

Power improvements:

  • Make the key cluster module shut down the LED controller when not in use.
  • Make the UHK 80 shut down the LED controllers when not in use.

Misc:

  • Implement dynamic pin control for UART.

15.2.0

22 Sep 22:07

Choose a tag to compare

Device Protocol: 4.17.0 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 12.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.9.0

  • Fix BLE pairing with Linux.
  • Always switch to newly paired BLE connections.
  • Suppress S, F and J, L scancodes for some time after sleep mode unlock.
  • Log suspicious conditions and crashes only when the devMode macro variable is enabled. SMARTMACROS:MINOR
  • Add the replaceKeymap command, and the current KEYID alias. SMARTMACROS:MINOR
  • Fix the setLedTxt dry run mode, which occasionally acted as a delay. SMARTMACROS:PATCH
  • Make while macro command yield after every iteration. SMARTMACROS:PATCH
  • Fix scope state reset and some control flow scenarios. SMARTMACROS:PATCH
  • Add a device protocol variable to disable firmware checksum check during firmware updates. DEVICEPROTOCOL:MINOR
  • Add command to read OLED content. DEVICEPROTOCOL:MINOR

15.1.0

31 Jul 16:05

Choose a tag to compare

Device Protocol: 4.16.1 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 12.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.8.0

  • Fix the replaceLayer, overlayLayer, and overlayKeymap macro commands, which corrupted the keymap due to action compression. SMARTMACROS:PATCH
  • Fix the postponeKeys modifier that acted as suppressMods. SMARTMACROS:PATCH
  • Mitigate bridge cable disconnects caused by demanding macros.
  • Add the switchHost lastSelected argument to switch to the last manually selected host connection. SMARTMACROS:MINOR
  • Add the reconnect command to reconnect the current host connection. SMARTMACROS:MINOR
  • Add the $currentTime macro variable expansion. SMARTMACROS:MINOR
  • Make freeze detection and eventloop spin detection less likely to give false alarms.

15.0.1

10 Jul 21:13

Choose a tag to compare

Device Protocol: 4.16.1 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 12.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.7.0

  • Update battery percentage indicator shortly after discharging a charged battery.
  • Don't sanitize firmware log now that the relevant Agent bug is fixed.
  • Detect and log possible spinning event loop bugs.

15.0.0

10 Jul 19:29

Choose a tag to compare

Device Protocol: 4.16.1 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 12.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.7.0

  • Compress subsequent matching key actions for more efficient storage. USERCONFIG:MAJOR
  • Make battery percentage indicator more accurate.
  • Make system scancodes work in macro actions.
  • Improve crash detection.

14.2.1

01 Jul 14:31

Choose a tag to compare

Device Protocol: 4.16.1 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 11.0.0 | Hardware Config: 1.0.0 | Smart Macros: 3.6.1

  • Fix a macro engine bug where USB reports weren't updated at the end of a macro, which made the keys activated from the macro get stuck. SMARTMACROS:PATCH
  • Make the UHK 60 not misinterpret firmware updates as crashes.
  • Correctly detect full charge level on the UHK 80.
  • Update battery percentage indicator quicker, especially when transitioning between charging and discharging.
  • Show correct battery percentage shortly after a battery is (dis)connected.
  • Fix the delay before the UHK 80 executes macro commands via USB, so that the macro commands are executed instantly.
  • USB macro execution command fixes: Fix buffer underruns, return status code. DEVICEPROTOCOL:PATCH