I have been developing firmware for a custom device using the CYBLE 022001-00 micro-controller. One of the features I am trying to implement is fixed stack over the air update via BLE. I set the preferred connection parameters to conform to Apple's expectations (outlined here: https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf)
I followed this guide: http://www.cypress.com/file/198301/download
And declared the API functions I needed from the bootloader project as extern. The project builds, and writes to my device just fine, but I can only connect using the CySmart Windows app and the USB dongle. If I attempt to connect using the CySmart iOS app, or my custom iOS app, the connection times out.
The only change I have made to the BLE component in my project since adding OTA is adding the bootloader service, and changing the GAP security settings. Changing the security settings to no encryption and no authentication lets me connect the device to the CySmart iOS app, but I still do not receive GATT notifications.
Any thoughts on what is going on?
My project is larger than 10MB so I am unable to upload it here. Here is a Dropbox link to it instead: https://www.dropbox.com/s/xngy3t0ijg6p70x/Firmware-Cypress.zip?dl=0
If it is of any use, I do not receive a pair request on the iOS app, despite having security set to "Unauthenticated pairing with encrpytion", whereas I do receive a pairing request on the iOS app when I have the same security settings on a project that does not have OTA capability.