Hello,
I use the NCS v3.3.0 (ncs\v3.3.0\nrf\applications\nrf_desktop).
Can the desktop dongle connect to two keyboards at the same time?
Development boards: two nrf54lm20‑dk (using the build for nrf54lm20b) and one nrf52840dongle (using the build for 52840dongle).
Initially, I configured both nrf54lm20‑dk boards as MOUSE devices. They could both connect to the nrf52840dongle simultaneously, and message reporting from both devices worked normally.
Later, I configured both nrf54lm20‑dk boards as keyboards and modified the prj.conf of the nrf52840dongle. I found that I could pair both keyboards, but they cannot stay online at the same time. If both are online concurrently, the nrf52840dongle freezes/crashes. Neither a long press nor a short press of SW1 has any effect, and no log is output. The only way to recover is to power cycle the dongle.
Logs and prj.conf of nrf52840dongle, as well as prj.conf of nrf54lm20dk are attached below for your reference.
Below is the prj.conf configuration of the nrf52840dongle:
CONFIG_DESKTOP_INIT_LOG_MOTION_EVENT=n
CONFIG_DESKTOP_INIT_LOG_HID_REPORT_EVENT=n
CONFIG_DESKTOP_INIT_LOG_HID_REPORT_SENT_EVENT=n
CONFIG_CAF_INIT_LOG_KEEP_ALIVE_EVENTS=n
CONFIG_CAF_BUTTONS=y
CONFIG_CAF_BUTTONS_POLARITY_INVERSED=y
CONFIG_CAF_BUTTONS_PM_KEEP_ALIVE=n
CONFIG_CAF_CLICK_DETECTOR=y
CONFIG_CAF_LEDS=y
CONFIG_CAF_LEDS_PWM=y
CONFIG_DESKTOP_ROLE_HID_DONGLE=y
CONFIG_DEPRECATION_TEST=y
CONFIG_DESKTOP_DEVICE_PID=0x52DC
CONFIG_DESKTOP_BLE_PEER_CONTROL=y
CONFIG_DESKTOP_BLE_PEER_CONTROL_BUTTON=0x0000
CONFIG_DESKTOP_BLE_NEW_PEER_SCAN_REQUEST=y
CONFIG_DESKTOP_BLE_NEW_PEER_SCAN_ON_BOOT=y
CONFIG_DESKTOP_BLE_PEER_ERASE=y
CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE=y
CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=y
CONFIG_DESKTOP_BLE_QOS_ENABLE=y
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=1536
CONFIG_ISR_STACK_SIZE=1280
CONFIG_MAIN_STACK_SIZE=840
CONFIG_BT_RX_STACK_SIZE=2048
CONFIG_BT_HCI_TX_STACK_SIZE_WITH_PROMPT=y
CONFIG_BT_HCI_TX_STACK_SIZE=1536
CONFIG_BOOT_BANNER=n
CONFIG_NCS_BOOT_BANNER=n
CONFIG_NUM_COOP_PRIORITIES=10
CONFIG_NUM_PREEMPT_PRIORITIES=15
CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
CONFIG_SYSTEM_CLOCK_NO_WAIT=y
CONFIG_HW_STACK_PROTECTION=y
CONFIG_RESET_ON_FATAL_ERROR=n
CONFIG_GPIO=y
CONFIG_SERIAL=n
CONFIG_BOARD_SERIAL_BACKEND_CDC_ACM=n
CONFIG_UART_INTERRUPT_DRIVEN=n
CONFIG_CONSOLE=n
CONFIG_REBOOT=y
CONFIG_SPEED_OPTIMIZATIONS=y
CONFIG_PWM=y
CONFIG_LED=y
CONFIG_LED_PWM=y
CONFIG_LED_GPIO=n
CONFIG_BT_PRIVACY=y
CONFIG_BT_CTLR_SDC_LLPM=y
CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
CONFIG_BT_BUF_ACL_TX_SIZE=35
CONFIG_BT_CTLR_DATA_LENGTH_MAX=35
CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=3000
CONFIG_ENTROPY_CC3XX=n
CONFIG_FW_INFO=y
CONFIG_FW_INFO_FIRMWARE_VERSION=1
CONFIG_ASSERT=y
CONFIG_ASSERT_LEVEL=2
CONFIG_DESKTOP_LOG=y
CONFIG_DESKTOP_LOG_UART=y
CONFIG_DESKTOP_LOG_RTT=y
CONFIG_DESKTOP_BLE_SCAN_KEYBOARD_LIMIT=2
CONFIG_DESKTOP_HID_DONGLE_BOND_COUNT=3
CONFIG_DESKTOP_HID_DONGLE_CONN_COUNT=3
CONFIG_BT_MAX_CONN=2
CONFIG_BT_HIDS_MAX_CLIENT_COUNT=2
Below is the prj.conf configuration of the nrf54lm20‑dk:
CONFIG_DESKTOP_INIT_LOG_MOTION_EVENT=n
CONFIG_DESKTOP_INIT_LOG_HID_REPORT_EVENT=n
CONFIG_DESKTOP_INIT_LOG_HID_REPORT_SENT_EVENT=n
CONFIG_CAF_INIT_LOG_KEEP_ALIVE_EVENTS=n
CONFIG_DESKTOP_ROLE_HID_PERIPHERAL=y
CONFIG_DESKTOP_PERIPHERAL_TYPE_KEYBOARD=y
CONFIG_DESKTOP_DEVICE_PID=0x52DD
CONFIG_DESKTOP_HID_BOOT_INTERFACE_KEYBOARD=y
CONFIG_DESKTOP_HID_KEYMAP_DEF_PATH="hid_keymap_def.h"
CONFIG_DESKTOP_HID_STATE_HID_KEYBOARD_LEDS_DEF_PATH="hid_keyboard_leds_def.h"
CONFIG_DESKTOP_HID_STATE_SUBSCRIBER_COUNT=2
CONFIG_CAF_BUTTONS=y
CONFIG_CAF_BUTTONS_POLARITY_INVERSED=y
CONFIG_CAF_BUTTONS_PM_KEEP_ALIVE=n
CONFIG_CAF_CLICK_DETECTOR=y
CONFIG_CAF_LEDS=y
CONFIG_CAF_LEDS_PWM=y
CONFIG_DESKTOP_USB_ENABLE=y
CONFIG_DESKTOP_USB_STACK_NEXT=y
CONFIG_DESKTOP_BLE_ADV_CTRL_ENABLE=y
CONFIG_DESKTOP_BLE_ADV_CTRL_SUSPEND_ON_USB=y
CONFIG_DESKTOP_BLE_USE_DEFAULT_ID=y
CONFIG_DESKTOP_BLE_PEER_CONTROL=y
CONFIG_DESKTOP_BLE_PEER_CONTROL_BUTTON=0x0000
CONFIG_DESKTOP_BLE_PEER_ERASE_ON_START=y
CONFIG_DESKTOP_BLE_SECURITY_FAIL_TIMEOUT_S=10
CONFIG_DESKTOP_BLE_LOW_LATENCY_LOCK=y
CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE=y
CONFIG_DESKTOP_CONFIG_CHANNEL_OUT_REPORT=y
CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=y
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=3584
CONFIG_ISR_STACK_SIZE=2560
CONFIG_MAIN_STACK_SIZE=2816
CONFIG_BT_RX_STACK_SIZE=2048
CONFIG_BT_HCI_TX_STACK_SIZE_WITH_PROMPT=y
CONFIG_BT_HCI_TX_STACK_SIZE=1536
CONFIG_IDLE_STACK_SIZE=512
CONFIG_BOOT_BANNER=n
CONFIG_NCS_BOOT_BANNER=n
CONFIG_NUM_COOP_PRIORITIES=10
CONFIG_NUM_PREEMPT_PRIORITIES=15
CONFIG_HEAP_MEM_POOL_SIZE=2560
CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
CONFIG_SYSTEM_CLOCK_NO_WAIT=y
CONFIG_HW_STACK_PROTECTION=y
CONFIG_RESET_ON_FATAL_ERROR=n
CONFIG_GPIO=y
CONFIG_REBOOT=y
CONFIG_SPEED_OPTIMIZATIONS=y
CONFIG_PWM=y
CONFIG_LED=y
CONFIG_LED_PWM=y
CONFIG_LED_GPIO=n
CONFIG_STREAM_FLASH=y
CONFIG_IMG_MANAGER=y
CONFIG_MCUBOOT_IMG_MANAGER=y
CONFIG_UDC_DWC2_DMA=n
CONFIG_BT_MAX_PAIRED=2
CONFIG_BT_ID_MAX=3
CONFIG_BT_CTLR_SDC_LLPM=y
CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
CONFIG_SPI_NOR=n
CONFIG_NRF_RRAM_WRITE_BUFFER_SIZE=8
CONFIG_ASSERT=y
CONFIG_ASSERT_LEVEL=2
CONFIG_DESKTOP_LOG=y
CONFIG_DESKTOP_LOG_UART=y
CONFIG_DESKTOP_LOG_RTT=y
CONFIG_DESKTOP_DUAL_BUTTON_BOND_ERASE=y
Below is the log from the nrf52840dongle:
app_event_manager: e:module_state_event module:click_detector state:READY
[00000330] <inf> ble_state: Bluetooth initialized
[00000337] <wrn> usb_state: USB suspend
[00000338] <inf> ble_state: LLPM enabled
[00000368] <inf> app_event_manager: e:usb_state_event state:POWERED
[00000369] <inf> app_event_manager: e:usb_state_event state:SUSPENDED
[000[00153557] <inf> ble_scan: Scan stopped
[00153562] <inf> ble_scan: Address filter added EA:17:CB:45:6E:A7 (random)
[00153567] <inf> ble_scan: Address filter added CB:4E:91:DA:BD:F0 (random)
[00153568] <inf> ble_scan: Device name filters added
[00153586] <inf> ble_scan: Scan started
[00153588] <inf> app_event_manager: e:ble_peer_search_event inactive
[00153590] <inf> app_event_manager: e:ble_peer_search_event active
[00153592] <inf> app_event_manager: e:led_event led_id:0 effect:0x59378
[00153593] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[00411801] <inf> ble_scan: Filters matched. EA:17:CB:45:6E:A7 (random) connectable
[00411836] <inf> ble_scan: Connecting done
[00413116] <inf> ble_state: Connected to EA:17:CB:45:6E:A7 (random)
[00413135] <inf> app_event_manager: e:ble_peer_event id=0x20004e08 CONNECTED reason=0
[00413138] <inf> app_event_manager: e:ble_peer_conn_params_event peer=0x20004e08 min=8 max=8 lat=0 timeout=400 (updated)
[00413139] <inf> ble_conn_params: Conn params for peer: 0x20004e08 updated.
[00413145] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[00413147] <inf> app_event_manager: e:power_manager_restrict_event module "ble_state_pm" restricts to SUSPENDED
[00416184] <inf> ble_state: Security with EA:17:CB:45:6E:A7 (random) level 2
[00416188] <inf> app_event_manager: e:ble_peer_event id=0x20004e08 SECURED reason=0
[00416191] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[00418153] <inf> ble_state: MTU exchange done
[00421423] <inf> ble_discovery: LLPM supported
[00426670] <inf> ble_discovery: HW ID: a8fdb1bc10a933cc
[00429943] <inf> ble_discovery: VID: 1915 PID: 52dd
[00434531] <inf> ble_discovery: HIDS discovery procedure succeeded
[00434534] <inf> app_event_manager: e: ble_discovery_complete_event
[00434535] <inf> hid_forward: Subscriber id found (0)
[00434548] <inf> hid_forward: Peripheral 0x20003030 registered and linked to 0x200069a0
[00434549] <inf> ble_scan: Scan stopped
[00434555] <inf> app_event_manager: e:ble_peer_search_event inactive
[00434566] <inf> ble_conn_params: Update conn params for peer: 0x20004e08 (LLPM, requested latency: 0, USB suspended: false)
[00434569] <inf> app_event_manager: e:led_event led_id:0 effect:0x59380
[00434573] <inf> app_event_manager: e:led_ready_event led_id:0 effect:0x59380
[00435078] <inf> ble_scan: Address filter added CB:4E:91:DA:BD:F0 (random)
[00435080] <inf> ble_scan: Device name filters added
[00435098] <inf> ble_scan: Scan started
[00435100] <inf> app_event_manager: e:ble_peer_search_event active
[00435102] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[00436830] <inf> app_event_manager: e:ble_peer_conn_params_event peer=0x20004e08 min=d01 max=d01 lat=0 timeout=400 (updated)
[00436830] <inf> ble_conn_params: Conn params for peer: 0x20004e08 updated.
[00437446] <inf> hid_forward: Subscriber to rep id:2
[00437447] <inf> hid_forward: Subscriber to rep id:3
[00437449] <inf> hid_forward: Subscriber to rep id:4
[00437451] <inf> hid_forward: Subscriber to boot keyboard report
[00445970] <inf> app_event_manager: e:ble_peer_conn_params_event peer=0x20004e08 min=6 max=6 lat=0 timeout=400 (required)
[00445971] <inf> ble_conn_params: Request to update conn: 0x20004e08 latency to: 0
[00563113] <inf> ble_scan: Scan stopped
[00563122] <inf> ble_scan: Address filter added CB:4E:91:DA:BD:F0 (random)
[00563123] <inf> ble_scan: Device name filters added
[00563149] <inf> ble_scan: Scan started
[00563151] <inf> app_event_manager: e:ble_peer_search_event inactive
[00563156] <inf> app_event_manager: e:ble_peer_search_event active
[00563158] <inf> app_event_manager: e:led_event led_id:0 effect:0x59380
[00563161] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[00894860] <inf> ble_state: Disconnected from EA:17:CB:45:6E:A7 (random) (reason 8)
[00894863] <inf> app_event_manager: e:ble_peer_event id=0x20004e08 DISCONNECTED reason=8
[00894863] <inf> hid_forward: Peripheral 0x20003030 disconnected
[00894875] <inf> ble_scan: Scan stopped
[00894880] <inf> app_event_manager: e:ble_peer_search_event inactive
[00894881] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[00894883] <inf> app_event_manager: e:power_manager_restrict_event module "ble_state_pm" restricts to MAX
[00894885] <inf> app_event_manager: e:led_event led_id:0 effect:0x59378
[00894889] <inf> app_event_manager: e:led_ready_event led_id:0 effect:0x59378
[00895398] <inf> ble_scan: Address filter added EA:17:CB:45:6E:A7 (random)
[00895403] <inf> ble_scan: Address filter added CB:4E:91:DA:BD:F0 (random)
[00895404] <inf> ble_scan: Device name filters added
[00895422] <inf> ble_scan: Scan started
[00895425] <inf> app_event_manager: e:ble_peer_search_event active
[00895427] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[00903502] <inf> ble_scan: Filters matched. CB:4E:91:DA:BD:F0 (random) connectable
[00903536] <inf> ble_scan: Connecting done
[00904647] <inf> ble_state: Connected to CB:4E:91:DA:BD:F0 (random)
[00904666] <inf> app_event_manager: e:ble_peer_event id=0x20004e08 CONNECTED reason=0
[00904670] <inf> app_event_manager: e:ble_peer_conn_params_event peer=0x20004e08 min=8 max=8 lat=0 timeout=400 (updated)
[00904670] <inf> ble_conn_params: Conn params for peer: 0x20004e08 updated.
[00904677] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[00904679] <inf> app_event_manager: e:power_manager_restrict_event module "ble_state_pm" restricts to SUSPENDED
[00908212] <inf> ble_state: Security with CB:4E:91:DA:BD:F0 (random) level 2
[00908216] <inf> app_event_manager: e:ble_peer_event id=0x20004e08 SECURED reason=0
[00908218] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[00910181] <inf> ble_state: MTU exchange done
[00913451] <inf> ble_discovery: LLPM supported
[00918698] <inf> ble_discovery: HW ID: b1074904bf97fe7d
[00921971] <inf> ble_discovery: VID: 1915 PID: 52dd
[00926558] <inf> ble_discovery: HIDS discovery procedure succeeded
[00926562] <inf> app_event_manager: e: ble_discovery_complete_event
[00926562] <inf> hid_forward: Subscriber id found (2)
[00926576] <inf> hid_forward: Peripheral 0x20003030 registered and linked to 0x200069b8
[00926577] <inf> ble_scan: Scan stopped
[00926583] <inf> app_event_manager: e:ble_peer_search_event inactive
[00926594] <inf> ble_conn_params: Update conn params for peer: 0x20004e08 (LLPM, requested latency: 0, USB suspended: false)
[00926597] <inf> app_event_manager: e:led_event led_id:0 effect:0x59380
[00926600] <inf> app_event_manager: e:led_ready_event led_id:0 effect:0x59380
[00927110] <inf> ble_scan: Address filter added EA:17:CB:45:6E:A7 (random)
[00927112] <inf> ble_scan: Device name filters added
[00927130] <inf> ble_scan: Scan started
[00927132] <inf> app_event_manager: e:ble_peer_search_event active
[00927134] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[00928858] <inf> app_event_manager: e:ble_peer_conn_params_event peer=0x20004e08 min=d01 max=d01 lat=0 timeout=400 (updated)
[00928858] <inf> ble_conn_params: Conn params for peer: 0x20004e08 updated.
[00929474] <inf> hid_forward: Subscriber to rep id:2
[00929475] <inf> hid_forward: Subscriber to rep id:3
[00929476] <inf> hid_forward: Subscriber to rep id:4
[00929478] <inf> hid_forward: Subscriber to boot keyboard report
[00937474] <inf> app_event_manager: e:ble_peer_conn_params_event peer=0x20004e08 min=6 max=6 lat=0 timeout=400 (required)
[00937475] <inf> ble_conn_params: Request to update conn: 0x20004e08 latency to: 0
[01055145] <inf> ble_scan: Scan stopped
[01055155] <inf> ble_scan: Address filter added EA:17:CB:45:6E:A7 (random)
[01055156] <inf> ble_scan: Device name filters added
[01055185] <inf> ble_scan: Scan started
[01055189] <inf> app_event_manager: e:ble_peer_search_event inactive
[01055194] <inf> app_event_manager: e:ble_peer_search_event active
[01055200] <inf> app_event_manager: e:led_event led_id:0 effect:0x59380
[01055201] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[01185434] <inf> ble_scan: Filters matched. EA:17:CB:45:6E:A7 (random) connectable
[01185474] <inf> ble_scan: Connecting done
[01187911] <inf> ble_state: Connected to EA:17:CB:45:6E:A7 (random)
[01187942] <inf> app_event_manager: e:ble_peer_event id=0x20004ed0 CONNECTED reason=0
[01187945] <inf> app_event_manager: e:ble_peer_conn_params_event peer=0x20004ed0 min=8 max=8 lat=0 timeout=400 (updated)
[01187946] <inf> ble_conn_params: Conn params for peer: 0x20004ed0 updated.
[01187952] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388
[01187955] <inf> app_event_manager: e:power_manager_restrict_event module "ble_state_pm" restricts to SUSPENDED
[01191229] <inf> ble_state: Security with EA:17:CB:45:6E:A7 (random) level 2
[01191233] <inf> app_event_manager: e:ble_peer_event id=0x20004ed0 SECURED reason=0
[01191236] <inf> app_event_manager: e:led_event led_id:0 effect:0x59388