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

BLE 4.0 Disconnect issue

Hello;

we are having a communication issue(a BIG one at this point) that we are experiencing with our BLE 4.0 tablets. Our device(has NRF52832) is designed to communicate with a XSlate R12 tablets. The older tablets out in the field have a BLE 4.0 while the newer ones have BLE 4.2. The current FW is based on SDK 15.0.0 and softdevice 6.0.0. The issue only occurs with the older tablets having the Intel BLE 4.0 chipset where after 5 to 20 minutes of communication, the tablet and device disconnect. From my debugging, it seems the tablet requests to update the connection parameters and soon after disconnects. I am transmitting 2 packets per connection interval having 20 bytes in the first and 16 bytes in the second packet. Any thoughts/recommendations on what may be causing this issue? I have attached 2 different sniffer logs to review. Any help will be greatly apprlog2.pcapnglog1.pcapngeciated.

Parents
  • HI Wael, 

    Could you point me to the place in the sniffer logs that you think when the issue happened ? 

    For some reason the sniffer couldn't decrypt the last packets properly (bad MIC). I'm not sure why this happened. Please make sure you put the sniffer close to the 2 devices. Please try to capture other sniffer traces. 


    If you use the BLE4.0 tablet to connect to a nRF52832 running one of our example in the SDK, do you see the same issue ? 

  • Hi Hung:

    Thank you for taking the time to look over my case. the SW on the tablet is setup to reconnect when a disconnection happens so in the log2 file there should be a few different connect/disconnects. unfortunately, the tablet fails to reconnect after about 4 to 8 reconnects. I have never used wireshark and I really do not know how to find things in it. I was hopping you can help with that. the device is very close to the tablet and the dongle. Your time and effort will be greatly appreciated in any help. 

    Regards,

  • the error code I received on the DISCONNECT p_ble_evt->evt.gap_evt.params.disconnected.reason was 0x1E which is BLE_HCI_STATUS_CODE_INVALID_LMP_PARAMETER. I do not get disconnects on nRF Connect app only the BLE 4.0 tablet. I think the central device does not like the min/max connection interval and it tries to change them and the device disconnects. The min and max values I am using is 20ms and 23ms respectively. It’s a windows 10 tablet which is running our c# application. its hard for me to understand the wireshark log. 

    with regards to capturing traces again, I always see some undecrypteed packets no matter how many times I run it. is there anything I can do on the FW on the device side. I cannot change the interval timing as everything is sort of designed based on it. what example would you like me to test?

    Regards,

  • I don't think the connection interval negotiation would cause the issue, at least that not showed on the sniffer. Could you give some more information why you suspect the connection parameter change causing the issue ?

    Could you clarify what did you mean by " I do not get disconnects on nRF Connect app only the BLE 4.0 tablet" ? Did you have the issue on the nRFConnect app on the BLE4.0 tablet ? 

    Please try to test on any example, ble_app_proximity for example. The example support bonding, please do bonding when testing (you can read any characteristic, it would trigger bonding). 
    Could you give some information about your C# application ? What it does, is there any low level BLE function ? 

  • Hi Hung:

    the reason I think its a connection interval parameters is because when i run a device in debug mode and output to a text terminal, I see the request for a connection parameter update aside from the initial negotiation. it happens few minutes into the connection. 

    1) when I run the device and connect with the nRF Connect App running on my laptop using the Nordic dongle, the issue does not happen.

    2) when I run the device and connect to the windows 10 BLE 4.0 tablet(internal BLE chipset), I get a disconnection anywhere from 5 to 20 minutes into the connection.

    3) when I run the device and connect to the windows 10 BLE 4.0 tablet(external BLE 4.0 dongle), I do NOT get a disconnection

    sorry, I cant test with an example as our C# application running on the tablet is designed only to run and connect with our device. it would be a lot of work to change that code. 

    our App does not invoke directly a low level function. It uses an application layer API call available in Windows.Devices.Bluetooth namespace

    remember, we are only having problems with the older BLE 4.0 tablets which use Intel chipset that they no longer support. I hope this helps. your time and help is greatly appreciated.

    Regards,

  • Hi Wael,

    If you can capture more traces, please do. The more traces we have the better to investigate the issue, even with the bad MIC issue. 
    However, it's quite hard to debug if we can't decrypt the packets properly. If you can find other BLE sniffer to try instead of using the Nordic's one it would be useful. 
    I can see the connection parameter request in the trace, but I don' think it cause the issue. It happened need at the beginning of the connection and was performed normally, unless there is other ones in ones of the un-decryptable message.

      Do you see the disconnected right after the log print out about the connection parameter update ? If you can have the log with timestamp, it would be useful. 

Reply
  • Hi Wael,

    If you can capture more traces, please do. The more traces we have the better to investigate the issue, even with the bad MIC issue. 
    However, it's quite hard to debug if we can't decrypt the packets properly. If you can find other BLE sniffer to try instead of using the Nordic's one it would be useful. 
    I can see the connection parameter request in the trace, but I don' think it cause the issue. It happened need at the beginning of the connection and was performed normally, unless there is other ones in ones of the un-decryptable message.

      Do you see the disconnected right after the log print out about the connection parameter update ? If you can have the log with timestamp, it would be useful. 

Children
No Data
Related