Here's the problem I'm trying to solve. Our setup looks like this : on one side, there is a PSOC 4200 BLE that can communicate with a Raspberry Pi3 via UART and on the other side is a second PSOC 4200 BLE for which the only link is BLE.

We want to be able to update the second PSOC OTA without having to physically be there with a BLE dongle or CySmart app. The optimal process would be to upload an update from the Pi3 to the first PSOC via UART, this one would then update the second PSOC OTA via the BLE connection.

We only need to update the application part, so I was looking at the Fixed Stack bootload examples in PSOC Creator. I'm not exactly sure which part (bootloader/bootloadable) would go where and if it is even possible to use another PSOC as the bootloader host.

Do you have an external memory in the target PSoC4-BLE? Then you can send the ,cyacd data to the target PSoC4BLE via BLE and store this in the external memory. The new firmware is sent by the bootloader host PSoC4BLE. You can follow the similar implementation as that of the BLE External Memory bootloader.