NCS(1.3.2) nRF Desktop cannot connect with Zephyr SW LL.

I want to use nrf52833 as the keyboard and nrf52820 as the dongle.Refer to the example of
ncs1.3.2\nrf\applications\nrf_desktop, I want to add the LLPM of nrf52820.

But there is Only app_ZDebug.conf configuration of ncs1.3.2\nrf\applications
\nrf_desktop\configuration\nrf52820dongle_nrf52820 .

CONFIG_BT_LL_SW_SPLIT=y Use Zephyr SW LL, which seems to be due to insufficient RAM. How can
nrf52820dongle use Nordic SoftDevice LL?

What is puzzling is that I tried to use Zephyr SW LL without success.

Our company has nRF Desktop mouse and dongle hardware, when I configure it as follows (using
Nordic SoftDevice LL):

  • west build -b nrf52840gmouse_nrf52840 -d nrf52840gmouse_nrf52840 -- - DCMAKE_BUILD_TYPE=ZDebug

  • west build -b nrf52840dongle_nrf52840 -d nrf52840dongle_nrf52840 -- - DCMAKE_BUILD_TYPE=ZDebug

The mouse can be connected to the computer through the dongle.

However, when I try to use configuration (using Zephyr SW LL):

  • west build -b nrf52840gmouse_nrf52840 -d nrf52840gmouse_nrf52840 -- - DCMAKE_BUILD_TYPE=ZDebugSplitLL

  • west build -b nrf52840dongle_nrf52840 -d nrf52840dongle_nrf52840 -- - DCMAKE_BUILD_TYPE=ZDebugSplitLL

The mouse cannot be connected to the computer through the dongle.

  • Hi,

    There are a few things to consider here. Low Latency Packet Mode (LLPM) is only supported by the SoftDevice LL, and not by the Zephyr LL, as you can see here. Also, LLPM is only supported by S132 and S140, and of those only S140 supports nRF52820, as you can see here.

    Therefore it is expected that using Zephyr LL on the dongle does not work, and your only option is to use S140. Is the problem that you are not able to make it fit in RAM? Is that also the case if you don't make a debug build?

  • Hi,

    I modify the configuration of nrf52820dongle_nrf52820\app_ZRelease.conf


    Compile error, suggesting that there is no libble_controller_.a,

    I am in the path of nrfxlib\ble_controller\lib\cortex-m4\soft-float Copy libble_controller_s140.a and
    rename it to libble_controller_.a.

    Error after compiling again, the prompt: region `SRAM' overflowed by 3313 bytes

    How should I choose s140 correctly?

    How should I configure so that the RAM of 52820 can support S140?

  • Hi,

    This seems to be a tight fit. I was able to to make it build by reducing CONFIG_USB_NRFX_EVT_QUEUE_SIZE. You can also try to reduce stack depth, mem pool size or similar, all in app_Zrelease.conf. I have not verified what changes are safe or not though.