>>"Why do I need to define 2 components if the BLE stack should be shared? And if the second is only a reference to the first one, why does not the second one just reuse all the settings from the first one (Profiles, GAP settings)?"
This is just for flexibility for the user to implement two different GAP and GATT settings for his stack and application projects. For example, user can set two different security settings one for uploading the Stack and/or application and two for the application it self.
Please let us know if you are facing any confusion or difficulty with this method. We will forward your comments to our software development team.
>>"Is it possible to use only one BLE component that is shared between bootloader and the application?"
Yes. It should be possible. Please note that this needs some complex effort to implement and therefore user has to implement on his own.
Hope this information helps !!
Thank you very much for this explanation. It explain few thigs, but this flexibility causes the user to use two GAP profiles, for example for bootloader we can use "BLE bootloader" and for the normal mode "BLE application". And it complicates update FW from the usability view as now you have to boot the device manually into the bootloader mode. Ok here we could send a BLE message from the phone to switch the device to bootloader mode.
And you are then using different GAP settings, so on the mobile phone the user has to connect to 2 different device. Or am I wrong, can we put the same GAP settings to both BLE components?
Would be fine if user could just use the mobile app to set device into the bootloader mode, send all the FW, mobile application would restart automatically and user could continue using the application.
Am I also correct that if I update the BLE application only, the bonding information remains. But if I update also the BLE stack, then the bonding information is lost.
About using 1 BLE component and complex effort, how complex do you mean it? Few weeks or few months of work. I thought if we are sharing the stack then it would be simple to share the GAP/GATT settings. They are stored in the metadata section, I thought that both application and bootloader access both metadata sections?
Thanks again for you time, Frenk