Yes, i am already using SDK 2.2.1. I have tested software on BCM9WICED_SENSE (BCM20737S) and BCM92073X_LE_KIT(BCM20737) and LE_KIT works much better. Disconeconnections are not frequent (one on a few hours or even a day).
Note that BLE devices in general will not stay connected indefinitely. For instance, Wi-Fi is known to interfere with BLE and cause semi-frequent disconnections. It's also important to understand that within your application you need to build in a mechanism to reconnect when this happens.
1 of 1 people found this helpful
FYI - Disconnect 08 is a timeout error - I believe it means that some number of connection events have been missed (slave latency) or that the supervisory timeout has occurred without successful connection events. This condition is quite sensitive to the connection parameters so it is important to request good and valid connection parameters. Some of the settings given above do not look valid, at least I know they are not for iOS.
But even still, after optimizing parameters, I believe you will still get occasional 08 disconnects. Disconnects may be an unavoidable fact of life when competing with other wiFi or BLE devices in a noisy environment. After 'optimizing' our connection parameters we still get disconnects, and it also seems to be somewhat hardware dependent. Some of our boards seem to have more disconnects than others.
Apple iOS has very strict rules about what connection parameter requests it will honor, and if it doesn't like the ones you request it will just ignore your request. I don't know about Android, but I suspect the rules are looser than iOS. iOS will default to a connection interval of 30 milliseconds. With this interval your BCM device will use more power because it cannot go into low power mode if it knows it has to be fully awake again in 30 milliseconds. Try for 100 millisecond intervals for lower power draw during connection.
What I have found that works best for me is:
Slave latency 4
Min Interval 80 ms (depends on the needs of your app)
Max Interval 180 ms (depends on your app)
Supervisor Timeout - 3 seconds
Also I recommend you do not make your connection interval equal to your fine timer - I have a suspicion that overlap of these tasks can increase frequency of timeout disconnects and there is no way to serialize the two and they appear to run off different clocks.