Intermittent Error code: 32773 (0x8005, NRF_ERROR_SD_RPC_NO_RESPONSE) when using pc-ble-driver

We use the pc-ble-driver with the nRF52840-Dongle and we experience intermittent issues where communication with the dongle will just stop and result in a NRF_ERROR_SD_RPC_NO_RESPONSE error.

We found we could reproduce the problem by forcing continuous UART traffic and then copying large folders on the PC to change the timing of things.

The issue ended up being how sequence numbers were tracked in the h5 transport layer:

    pc-ble-driver\src\common\transport\h5_transport.cpp

const auto err_code = nextTransportLayer->send(lastPacket);

if (err_code != NRF_SUCCESS)
{
    return err_code;
}

// The sequence number before is saved off after the message is sent and
// we periodically see the sequence number increment before we save it off.
uint8_t seqNumBefore;
{
    std::unique_lock<std::recursive_mutex> seqNumLck(seqNumMutex);
    seqNumBefore = seqNum;
}

Saving the before sequence number before the send call resulted in our intermittent issues going away.

Parents
  • Hello,

    We found we could reproduce the problem by forcing continuous UART traffic and then copying large folders on the PC to change the timing of things.

    It does indeed sound very strange to me that copying large folders internally on the windows PC should cause issues with the UART transfers. I will let our pc-ble-driver developers know about this so that they can investigate it further. 

    Saving the before sequence number before the send call resulted in our intermittent issues going away.

    I am glad to hear that you already have found a workaround for this issue.
    I can unfortunately not make any guarantee for when this will be, but I will let you know what our developers say when they have had a chance to look into this!

    Thank you for bringing this to our attention!

    Best regards,
    Karl

Reply
  • Hello,

    We found we could reproduce the problem by forcing continuous UART traffic and then copying large folders on the PC to change the timing of things.

    It does indeed sound very strange to me that copying large folders internally on the windows PC should cause issues with the UART transfers. I will let our pc-ble-driver developers know about this so that they can investigate it further. 

    Saving the before sequence number before the send call resulted in our intermittent issues going away.

    I am glad to hear that you already have found a workaround for this issue.
    I can unfortunately not make any guarantee for when this will be, but I will let you know what our developers say when they have had a chance to look into this!

    Thank you for bringing this to our attention!

    Best regards,
    Karl

Children
No Data
Related