Unfortunately it looks like the SDK 2.2.2 hasn't solved the issue of random disconnect/reconnects that we were seeing with SDK 2.2.1 but not with SDK 2.2.0.
As mentioned before, when we build our custom application using the SDK 2.2.0 we get a battery life with a CR2032 of 72+ hrs with no random disconnect/reconnects, while with the SDK 2.2.1 we get a battery life of 62+ hrs with anywhere from 50 to 100 random disconnect/reconnects. With everything else being the same the random disconnect/reconnects seen with SDK 2.2.1 is the culprit for the reduction in battery life. The SDK 2.2.2 was supposed to solve that.
I used the (.7z) version to import the SDK 2.2.2 into the OSX Eclipse IDE. I built our custom application on our board and I am seeing the same behavior with the random disconnect/reconnects seen with SDK 2.2.1. The iPhone running our app to acquire the data is sitting right next to the board. The same board when built with SDK 2.2.0 exhibits no random disconnects/reconnects throughout the 72hr period. I also separately built the SDK 2.2.2 on a laptop running Windows 7 and built our custom application on a different board and immediately noticed the same behavior.
This is rather unfortunate and disappointing since we have resolved almost all other issues and were hoping to freeze the firmware. How do we resolve this ?
p.s.1 - The random disconnect/reconnects are not a reboot of the board, so the data index count is maintained
p.s.2 - Our custom application is a modified heart_rate_monitor with a fine timer set at 200 ms.
Solved! Go to Solution.
1. Since you are using the 200ms fine timer that will result in spikes during your advertisements
const BLE_PROFILE_CFG hello_sensor_cfg =
/*.fine_timer_interval =*/ 200, // ms
2. We fixed this to turn off the fine timer, so you can add the new SDK 2.2.2 patch disable_sw_timer_as_wake_source.a ?
3. Make sure you are including the library file as shown in the list file or .asm file:
.. /.. /build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/lib_installer.o (install_patch_lm_ostimer_getTimeToSleep)
4. We also added a KillTimer() as shown below as an example for another customer.
void hello_sensor_timeout(UINT32 arg)
ble_trace1 (??? hello_sensor_timeout:%d ???, hello_sensor_timer_count);
Hope this helps with your current issues.