Skip to content

Update nRF Connect and McuX SDKs#1524

Open
benedekkupper wants to merge 5 commits intomasterfrom
sdk-updates
Open

Update nRF Connect and McuX SDKs#1524
benedekkupper wants to merge 5 commits intomasterfrom
sdk-updates

Conversation

@benedekkupper
Copy link
Copy Markdown
Contributor

@benedekkupper benedekkupper commented Apr 14, 2026

Update the nRF Connect and McuX SDKs to the latest available version. UHK60 is affected, but no meaningful changes expected. UHK80 shall be more carefully tested, with focus on BLE and also USB.

  • UHK60 tested
  • UHK80 BLE left-right tested
  • UHK80 BLE right-dongle tested
  • UHK80 BLE HOGP tested
  • UHK80 USB tested
  • UHK80 new mcuboot FW update tested

Closes #1043

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the firmware’s west manifests to newer nRF Connect SDK and MCUXpresso SDK versions, along with a set of compatibility adjustments (BLE advertising params, build system tweaks, and patch set updates) to keep builds working across UHK60/UHK80 targets.

Changes:

  • Bump nRF Connect SDK to v3.2.4 and MCUX manifests to v26.03.00, adjusting imported module allowlists accordingly.
  • Update UHK80 board configuration (runner args, Kconfig defaults, PM hook stubs) and BLE advertising parameters for newer Zephyr/NCS APIs.
  • Refresh patch set by updating the sysbuild CMakePresets patch and dropping multiple no-longer-needed patches.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
west_nrfsdk.yml Updates NCS revision and imported module allowlist to match the new SDK layout.
west_mcuxsdk.yml Updates MCUX manifest revision.
right/src/macros/command_hash.gperf Suppresses a GCC warning during gperf-generated compilation.
right/CMakeLists.txt Adjusts MCUX build configuration to work in a west workspace.
patches/zephyr/0003-sysbuild-support-application-CMakePresets.json-files.patch Updates the sysbuild patch to pass APP_DIR via environment and adds sysbuild CMakePresets.json.
patches/zephyr/0001-udc-nrf-disable-SOF-interrupts.patch Removed patch (presumably upstreamed/obsolete with the SDK bump).
patches/zephyr/0001-drivers-udc-eliminate-C-compiler-warnings.patch Removed patch (presumably upstreamed/obsolete with the SDK bump).
patches/sdk-nrf/0001-Remove-mcuboot-build-warnings.patch Removed patch (presumably upstreamed/obsolete with the SDK bump).
patches/mcuboot/0003-zephyr-cmake-fails-early-and-with-meaningful-message.patch Removed patch (presumably upstreamed/obsolete with the SDK bump).
patches/core/0003-cmake-add-ihex-binary-output-option.patch Removed patch (presumably upstreamed/obsolete with the SDK bump).
device/src/keyboard/charger.c Removes an unused SoC header include.
device/src/bt_advertise.c Updates advertising parameter macros/options to newer Zephyr/NCS API.
boards/ugl/uhk-80/board.cmake Adds conditional nrfutil ext-mem runner arg and adjusts include ordering.
boards/ugl/uhk-80/board.c Adds weak PM hook stubs (likely required by new PM defaults).
boards/ugl/uhk-80/Kconfig.defconfig Enables PM/stack protection defaults and updates BT controller-related defaults.

Comment thread boards/ugl/uhk-80/board.cmake Outdated
@mondalaci
Copy link
Copy Markdown
Member

https://github.com/UltimateHackingKeyboard/firmware/actions/runs/24426227631 bricked my UHK 80. Please test it.

@benedekkupper
Copy link
Copy Markdown
Contributor Author

@kareltucek please give this PR a try. I had to disable enableDataLengthExtension to the HID host, as when it was enabled, the BT connection establishment to Windows would hang halfway, the UHK80 crashing. The source code says that this was required to make pairing work on Linux, can you check if this now works without it?

@kareltucek
Copy link
Copy Markdown
Collaborator

@benedekkupper 😭.

My bluetooth testing says:

  • android pairing randomly fails.
  • linux pairing works the first time, but if I unpair and try to repair, it fails. I have to go through the whole rfkill reset, and maybe uhk reset. Didn't test very thoroughly.

What is worse, when trying to switch between connections, I am getting this crash. (Got it at least 5 times in the last 10 minutes.):

ASSERTION FAIL @ WEST_TOPDIR/zephyr/subsys/bluetooth/host/hci_core.c:504
<err> os: r0/a1:  0x00000003  r1/a2:  0x200102b0  r2/a3:  0x00000000
�<inf> udc_nrf: Preinit
[00:00:00.001,892] <inf> udc_nrf: Preinit

Some logs from failing linux pairings:



Connected: 98:5F:41:D2:92:3A (public)
Security failed: 98:5F:41:D2:92:3A (public) level 1 reason: Authentication requirements (4)
LE data len updated: TX (len: 251 time: 2120) RX (len: 251 time: 2120)
uhk80:right$ <inf> StateSync: Batteries: 77% 100% (3983 / 4100 mV; 4127 / 4120 mV)
[00:07:32.067,901] <inf> StateSync: Batteries: 77% 100% (3983 / 4100 mV; 4127 / 4120 mV)
<inf> bas: BAS Notifications enabled
[00:07:32.807,434] <inf> bas: BAS Notifications enabled
<inf> Bt: MTU exchanging n/a (Tux, 98:5f:41:d2:92:3a)
[00:07:32.807,952] <inf> Bt: MTU exchanging n/a (Tux, 98:5f:41:d2:92:3a)
<inf> Bt: Connected n/a (Tux, 98:5f:41:d2:92:3a), 7 3
[00:07:32.808,349] <inf> Bt: Connected n/a (Tux, 98:5f:41:d2:92:3a), 7 3
<wrn> Bt: Bt security failed: n/a (Tux, 98:5f:41:d2:92:3a), level 1, err 4, disconnecting
[00:07:33.013,183] <wrn> Bt: Bt security failed: n/a (Tux, 98:5f:41:d2:92:3a), level 1, err 4, disconnecting
Disconnected: 98:5F:41:D2:92:3A (public) (reason 0x05)
uhk80:right$ <wrn> Bt: MTU exchange failed for n/a (Tux, 98:5f:41:d2:92:3a) (err 14)
[00:07:33.193,420] <wrn> Bt: MTU exchange failed for n/a (Tux, 98:5f:41:d2:92:3a) (err 14)
<inf> bas: BAS Notifications disabled
[00:07:33.193,542] <inf> bas: BAS Notifications disabled
<inf> Bt: Disconnected from n/a (Tux, 98:5f:41:d2:92:3a), reason 5
[00:07:33.194,183] <inf> Bt: Disconnected from n/a (Tux, 98:5f:41:d2:92:3a), reason 5
<inf> Bt: BtManager: Scheduling scan/adv in 200ms. (disconnected)
[00:07:33.194,274] <inf> Bt: BtManager: Scheduling scan/adv in 200ms. (disconnected)
<inf> Bt: BtManager: Start 'advertising' (0).
[00:07:33.395,233] <inf> Bt: BtManager: Start 'advertising' (0).
<inf> Bt: Adv: 'HID "and NUS"' started
[00:07:33.398,010] <inf> Bt: Adv: 'HID "and NUS"' started



<wrn> bt_hci_core: opcode 0x2027 status 0x12
[00:08:34.286,987] <wrn> bt_hci_core: opcode 0x2027 status 0x12
<err> bt_id: Failed to add IRK to controller
[00:08:34.286,987] <err> bt_id: Failed to add IRK to controller
<inf> Notify: Notification: Ble slot 7 unpaired.
[00:08:34.288,208] <inf> Notify: Notification: Ble slot 7 unpaired.
Connected: 98:5F:41:D2:92:3A (public)
Security failed: 98:5F:41:D2:92:3A (public) level 1 reason: Authentication requirements (4)
LE data len updated: TX (len: 251 time: 2120) RX (len: 251 time: 2120)
Disconnected: 98:5F:41:D2:92:3A (public) (reason 0x05)
uhk80:right$ <inf> Bt: MTU exchanging n/a (Tux, 98:5f:41:d2:92:3a)
[00:08:37.784,851] <inf> Bt: MTU exchanging n/a (Tux, 98:5f:41:d2:92:3a)
<inf> Bt: Connected n/a (Tux, 98:5f:41:d2:92:3a), 7 3
[00:08:37.785,247] <inf> Bt: Connected n/a (Tux, 98:5f:41:d2:92:3a), 7 3
<wrn> Bt: Bt security failed: n/a (Tux, 98:5f:41:d2:92:3a), level 1, err 4, disconnecting
[00:08:38.002,777] <wrn> Bt: Bt security failed: n/a (Tux, 98:5f:41:d2:92:3a), level 1, err 4, disconnecting
<wrn> Bt: MTU exchange failed for n/a (Tux, 98:5f:41:d2:92:3a) (err 14)
[00:08:38.171,752] <wrn> Bt: MTU exchange failed for n/a (Tux, 98:5f:41:d2:92:3a) (err 14)
<inf> Bt: Disconnected from n/a (Tux, 98:5f:41:d2:92:3a), reason 5
[00:08:38.172,454] <inf> Bt: Disconnected from n/a (Tux, 98:5f:41:d2:92:3a), reason 5
<inf> Bt: BtManager: Scheduling scan/adv in 100ms. (disconnected)
[00:08:38.172,485] <inf> Bt: BtManager: Scheduling scan/adv in 100ms. (disconnected)
<inf> Bt: BtManager: Start 'advertising' (0).
[00:08:38.272,338] <inf> Bt: BtManager: Start 'advertising' (0).
<inf> Bt: Adv: 'HID' started
[00:08:38.275,329] <inf> Bt: Adv: 'HID' started




[bluetoothctl]> pair FA:3E:B0:AD:3E:E0
Attempting to pair with FA:3E:B0:AD:3E:E0
[CHG] Device FA:3E:B0:AD:3E:E0 Connected: yes
Failed to pair: org.bluez.Error.ConnectionAttemptFailed
[SIGNAL] org.bluez.Device1.Disconnected org.bluez.Reason.Unknown Unspecified
[CHG] Device FA:3E:B0:AD:3E:E0 Connected: no
[bluetoothctl]>

I don't have energy right now for further digging. Sorry!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Switch to sysbuild and upgrade to NCS 3.2.0

4 participants