Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

SDK14.1 Multilink with NUS data sent issue

I have refer to this topic for setup multilink with NUS. https://devzone.nordicsemi.com/f/nordic-q-a/18804/mismatch-between-connection-handles-in-ble_nus

But, i met a  wrong 'BLE_GATTC_EVT_HVX' event issue, below is the situation, i test with two peripheral and one central,

1.  Two peripherals connected with central

2.  Two peripherals disconnected with central a few minutes after step 1

3.  Then, if just one peripheral connect with central again, and this peripheral send data to central, then central will get BLE_GATTC_EVT_HVX event twice at each data transmission from the peripheral, that means central get two package data, the same package data twice. But the peripheral was just sent once package.

4. If the other peripheral connect again, this issue would be gone away, central will get the right BLE_GATTC_EVT_HVX event, and every data  transmission will be ok.

BTW, if only one peripheral connected with central after central power up, or two peripherals always connected with central after central power, it will be without this issue. But if anyone disconnected, this issue will be happened, until all peripherals connected, this issue will be gone...

 I don't  understand why SD triggered two BLE_GATTC_EVT_HVX event in this situation, hope Nordic engineer or someone can help on this issue.

Thanks a lot.

Parents
  • Hi,

    SDK 15.0 is now released and can be downloaded from this link.

    In SDK 15.0 we have added multilink support for the Nordic UART Service. I recommend taking a look at the new NUS example to see how the multilink support is implemented.

    EDIT:

    Unfortunately, the NUS multilink support was only added for the server.

    If you are only sending one packet from the server to the client, only 1 BLE_GATTC_EVT_HVX  should have been generated. Could it be that you are handling the same event twice? Feel free to upload the source code, or provide some debug nrf_logs that shows the problem.

Reply
  • Hi,

    SDK 15.0 is now released and can be downloaded from this link.

    In SDK 15.0 we have added multilink support for the Nordic UART Service. I recommend taking a look at the new NUS example to see how the multilink support is implemented.

    EDIT:

    Unfortunately, the NUS multilink support was only added for the server.

    If you are only sending one packet from the server to the client, only 1 BLE_GATTC_EVT_HVX  should have been generated. Could it be that you are handling the same event twice? Feel free to upload the source code, or provide some debug nrf_logs that shows the problem.

Children
Related