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

Random BLE disconnect/re-connect

Hi,

We are developing a product that consists of a "central" and "peripheral" device.  A small amount of data is periodically send from the central to peripheral device (to keep the 2 in sync).  The period ranges from nom. 500ms up to several seconds.  I am seeing the devices randomly disconnect / re-connect.  Sometimes it will run for most of the day without any problems, other times will will disconnect / re-connect every few minutes (or even seconds).

My application SW is implemented as a "state machine" that runs on a 50ms ticker.  The peripherals used are GPIO's for buttons and LED's, and I2C.  I'm using the s132 soft device with version 15.0 of the nRF5 SDK.  The "older" SDK version came about as a result of following some online tutorials to get myself going.

Are there any timing parameters, etc that I can alter to make the system more "robust"?  Do you have any suggestions re: how I should go about determining the cause of the problem (I've been having trouble debugging as breakpoints tend to cause the soft device to fall over).

Although the system is battery powered, power consumption is not a huge concern.  When not in use the system is completely powered off.  When in use the system runs a motor (so the uP's current draw is insignificant).

Thanks,

Chris.

Parents
  • Hi Einar,

    Thanks for that.  My "central" device had its min/max connection intervals set to 7.5ms/30ms, while the slave was 100ms/200ms.  By setting the peripheral to 7.5ms/30ms (as per the central device) it is now working very well.

    Is it correct to say that what is meant by MIN_CONNECTION_INTERVAL and MAX_CONNECTION_INTERVAL is the time the radio is asleep?  I.e. in my case the radio will now wake up and be active every 7.5 to 30ms?  I only ask as previously I seemed to always have between 100 and 200ms of latency between the central device sending data and the peripheral device receiving the data (and this corresponded to the max/min conn interval).

    What is meant by the SUPERVISION_TIMEOUT?  Is that essentially the time it needs to have lost packets for before it gives up and disconnects?

    Just trying to gain a better understanding of how to configure the system for next time.

    Thanks,

    Chris.

Reply Children
No Data
Related