Hello,
I am trying to program my NRF52840 chip with the Secure Bootloader UART project, in addition to the BLE App UART project as mentioned in the title. So far, having these two projects together works great - normal operation and DFU Upgrades (delivered over UART) work great. See below for details on what's failing.
I am using SDK 16.0.0 and SoftDevice S140 7.0.1.
I followed the Nordic guide that explained step by step how to add the Buttonless DFU procedure to the ble_app_uart project. Guide can be found here: https://www.u-blox.com/sites/default/files/Add-NordicSemiconductorDFU-to-SDKexample_AppNote_%28UBX-19050198%29.pdf
This worked, however for our specific project we didn't want DFU over BLE, but rather we wanted DFU over UART (delivered by another processor on our custom board). To achieve this, we are using the secure_bootloader_uart_mbr_pca10056 project in combination with the ble_app_uart_pca10056_s140. And so far, this works great for upgrading (as well as normal operation).
However, there is one small but important flaw that continues to ail our team: when using any nRF tool (like nrfjprog) or even any J-Link Flash tool, when we attempt to flash the final merged hex file (containing the bootloader, settings, soft device, and ble_app_uart) onto the NRF Peripheral chip, the chip only boots into the UART Bootloader. From here it can receive a DFU upgrade just fine, and then the app works fine afterwards as well. So we know that the bootloader works on its own, and that the ble_app_uart project works after an upgrade (since that's what we're upgrading to). BUT the only thing that doesn't appear to be working, is the merging and/or the flashing.And it's only an issue the first time it's programmed; once the peripheral receives an upgrade, it works fine. But this is concerning for us, as we don't want to require a DFU upgrade every time we prepare a device for production.
What is extra confusing is that this process of merging and flashing worked as expected when we did the buttonless DFU over BLE first (as described in the guide I linked above). We did not change any of the Flash or RAM addresses. We made a few small changes to the bootloader (SDK settings to enable certain DFU options, etc.), and these changes have been tested and they're working fine.
Any and all help would be appreciated! And I would be happy to offer more information as necessary.
Cheers,
Tyrel K