Hello!
I am currently working in an temperature sensor which has bluetooth features based in the nRF52832 and I am currently using the nRF5 SDK 14.2.0.
While I was working in a new feature, I was looking to add a new variable to a known characteristic, however, since I added a new byte (uint8_t new_var) to the characteristic / service, I have been unable to do secure bootloader DFU's anymore... Is this something related with some memory management issue?
Something interesting in the code is the following, when older developers detailed which characteristics/services where going to be placed in the microcontroller, they added some documentation to advice future developers (like me) about any changes made in that section:
However, since I added that new variable, every attempt to do DFU is failing, even by deleting bond information + restarting the Bluetooth module in the phone, it's always showing me these logs in the nrf connect app (android and iOS).


Things I've tried so far without any luck:
- Remove the variable previously added to recover the state of where the device was, even removing the variable from the code, I still I am unable to do DFU's
- Trying to flash the microcontroller directly, deleting all memory in the microcontroller before flashing it again with new code (which does not have the variable I was looking to add at first) and try DFU again, DFU is still failing.
UPDATE:
- By flashing manually to a version without the variable I wanted to add in the 1st place, I was able to get the DFU working. So far this is the only way to make it go back to an stable version that is able to work with DFU.
So, my question really is:
- How does this SDK version works in terms of how is it possible to add safely new characteristic data without harming any code in the process for DFU? Is it possible to do a safe DFU back without needing to do a manual flash over USB? This samples will be sealed and will not be able to have physical access to the HW.