This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF52840 with SDK 15.2 running with BLE and Data Length Extension

Hi all,

I observe a connection supervision timeout (HMI error code 0x08) in my Nordic firmware with certain Android smartphones (controller).

Additional info regarding GATT events: After the last connection parameter update and some GATT events the softdevice stops reporting BLE_GATTS_EVT_HVN_TX_COMPLETE and BLE_GATTS_EVT_WRITE.

After exchanging the MTU request in GATT the controller sends data length update requests over GAP with

  • Max number of payload octets to receive of  251 bytes
  • Max reception time of 2120 us
  • Max number of payload octets to transmit of  135 bytes
  • Max transmission time of 1192 us (BAD CASE) and 2120 us (GOOD CASE)

Any ideas?

Parents Reply Children
  • Hi, 

      It seems to be related to the LL_CONNECTION_UPDATE_REQ. After the new connection interval should have taken effect, the nrf does not respond anymore.
    It is maybe the master/phone packet is sent outside the the allowed window,i.e. not between instant+transmitWindowOffset and instant+transmitWindowOffset + transmitWindowSize. Those will stop transmission of the Handle Value Notification. Then, we go back to check log "ndk_s7_disc_dur_login2_filt" again, and find:

    At event 71, the new connection parameters should have taken effect... but the master is not sending any packets at connection event 71.

    Maybe the user could try to update the software on the phone. Maybe there is a software update pending for the phone. 

    This log "ndk_s7_disc_dur_login2_filt" points to a problem with the phone. And if you only see the problem with certain phones, then that also supports that.

    -Amanda H.

  • Hi Amanda,

    Thanks for the detailed explanation.

    The actual project status is that this phone (it's actually my own and it is updated) is one of the first which shows that behaviour.

    It is planned that we conduct broader DLE tests with the most used smartphones. Therefore it is important for us to understand exactly what is happening here.

    You are talking about a connection event 71. I don't see it in the wireshark trace. Do you mean LE LL Instant 70? What packet should the master send at that event?

    Cheers
    Sebastian

  • Hi, 

    If it doesn't disconnect, then you will have event71. Did you do a similar thing in the first part connection at frame #941? If so, you can take a look at its next event 72 what the master sent. 


    --Amanda H.

  • Hi,

    Thanks, now I see what you meant.

    Our actual workaround which works with that smartphone is that the slave don't send any GAP connection parameter update requests and accepts all from the master. With the drawback that the slave could run out of its current budget.

    Cheers
    Sebastian

Related