Hi all,
When using our customized device (with WiFi(cc3220) + BLE(cc2640) RF coexistence) to have BLE connect to iPhone (iOS 11.x.x), it's really unstable for connection timeout unexpectedly (will receive GAP_LINK_TERMINATED_EVENT from peripheral.c).
I started developing customized BLE application with simple_peripheral example project (simplelink_cc2640r2_sdk_2_20_00_49).
Some info below to see if any hint for troubleshooting:
(1) According to https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf to modify parameters as following
// Minimum connection interval (units of 1.25ms, 80=100ms) for automatic parameter update request
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 16
// Maximum connection interval (units of 1.25ms, 800=1000ms) for automatic parameter update request
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 80
// Slave latency to use for automatic parameter update request
#define DEFAULT_DESIRED_SLAVE_LATENCY 1
// Supervision timeout value (units of 10ms, 1000=10s) for automatic parameter update request
#define DEFAULT_DESIRED_CONN_TIMEOUT 550
(2) Checked memory size (heap & task stack = 2048B), and the heapmgrMemMax doesn't exceed total heap size & stack size seems not overflowed after timeout occurred.
(3) Using LiteBlue app to scan and connect to DUT, the timeout still occurred no matter the RSSI range from -1x to -9x
(4) CACHE_AS_RAM is enabled.
(5) The customized image is also tried on CC2640R2F LunchPad , and it still gets timeout unexpectedly after two hours (better than our DUT from 1 min to 30 mins).
(6) The sniffer log by FrontLine:
Capture-2019-04-10_1507_fail-1.zip