Releases: UltimateHackingKeyboard/firmware
16.1.1
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 1now allows turning on the log buffer from a macro.zephyr uhk snaplogallows 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
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
unpairHostmacro command.SMARTMACROS:MINOR - For
unpairHostandswitchHost, allow numeric slot ids.SMARTMACROS:MINOR
- Macro string support:
- Add STRING variable type and comparison operators.
SMARTMACROS:MINOR - Add
$uhk.namevirtual variable.SMARTMACROS:MINOR
- Add STRING variable type and comparison operators.
- Macro templates:
- Distinguish
¯oArg.1and$macroArg.1expansionsSMARTMACROS:MINOR - Validate all macros in the context of their binding sites.
SMARTMACROS:PATCH
- Distinguish
- 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.acceptTriggersFromSameHalfoption and its inlineignoreTriggersFromSameHalf | acceptTriggersFromSameHalfoverrides 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 nonesetting.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.triggerByPressandtriggerByReleasetosecondaryRole.advanced.triggeringEvent { press | release | none }SMARTMACROS:MINOR
- Added
16.0.0
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,decCodeOfandhexCodeOftemplate expansions that can be used for generic unicode sequences. E.g.,tapKeySeq altCodeOf(π).SMARTMACROS:MINOR
- Macros can now be parameterized via
- 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
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
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
ifShortcutorifPrimarywas 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 BOOLmacro 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
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
devModemacro variable is enabled.SMARTMACROS:MINOR - Add the
replaceKeymapcommand, and thecurrentKEYID alias.SMARTMACROS:MINOR - Fix the
setLedTxtdry run mode, which occasionally acted as a delay.SMARTMACROS:PATCH - Make
whilemacro 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
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, andoverlayKeymapmacro commands, which corrupted the keymap due to action compression.SMARTMACROS:PATCH - Fix the
postponeKeysmodifier that acted assuppressMods.SMARTMACROS:PATCH - Mitigate bridge cable disconnects caused by demanding macros.
- Add the
switchHost lastSelectedargument to switch to the last manually selected host connection.SMARTMACROS:MINOR - Add the
reconnectcommand to reconnect the current host connection.SMARTMACROS:MINOR - Add the
$currentTimemacro variable expansion.SMARTMACROS:MINOR - Make freeze detection and eventloop spin detection less likely to give false alarms.
15.0.1
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
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
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