How to disable Bootloader service in Custom BLE OTA Fixed stack bootloadable?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Level 2
Level 2


I am trying out BLE OTA Fixed stack Bootloading in CY8C4248LQI-BL583 PSoC. I have written a custom application with the BLE OTA Fixed stack bootloading method. I have added a custom service and bootloader service in the BLE component. I am getting an error in the Bootloadable project at disabling bootloader service instruction.  If I comment that line project will build without any error. But Bootloader service will be visible on the Cysmart android application for bootloadable.

If I copy the CyBle folder from $Bootloader/GeneratedSource/PSoC to $Bootloadable(LED_ON_OFF)/GeneratedSource/PSoC new error shows up.

Why "CYBLE_EVT_AUTH_FAILED" shows up in the debug window in the bootloader project if we connect through the Cysmart android application? Also, it disconnects automatically after 3-4 seconds if we make a delay in selecting the ".cyacd" file in Cysmart application. Why is that so?

Please help me as soon as possible. I am attaching the project for your reference.



2 Replies
250 solutions authored 100 solutions authored 50 solutions authored

In fixed stack OTA architecture, the bootloadable project uses APIs from the bootloader project. Hence, please follow the steps mentioned in attached code example document and PSoC 4BLE DFU Application Note. Have you modified fixed stack bootloader code example project? The device enters low power mode when there is no activity. If the LED color changes to white (all 3 LEDs are on – green, blue, and red), the device goes into the low power mode in bootloader project. Please confirm LED shows white when you face the error.


Hi GeonaM_26,

I have followed all the steps mentioned in the "AN97060 resource". I have tried with the example project and it worked.

But now I have modified the bootloader code since I don't want the low power mode feature. I want to build a fully custom application with custom service OTA upgradable feature.

I am having confusion in the following lines which are mentioned in "BLE_OTA_FixedStack_Bootloader.pdf"

Compiler Settings

Bootloadable project uses code sharing for BLE API from Bootloader project firmware image.

And it does not have a BLE component to generate the code and header files with the APIs.

So all the BLE API in Bootloadable project are declared in ota_mandatory.h header file which

itself references BLE API headers copied to ${Bootloadable}/CyBle/ folder from


Note that you shall copy this files manually to Bootloadable project when changing BLE

component version in Bootloader project.

This is why ${Bootloadable}/CyBle/ folder has to be added to compiler include paths list.

It is done by default in PSoC Creator’s projects for GCC and MDK compilers.

I copied the CyBle folder from "BLE_OTA_FixedStackBootloadable/HeaderFiles/"

and also from "BLE_OTA_FixedStackBootloader/PSoC/GeneratedSource/CyBle". It shows up error like "CyBle_bless_isr_INTC_PRIOR_NUM" undeclared.

Do we need to unpair and get it paired each time when we want to Upgrade the firmware?