This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF52832 Firmware Upgrade using Esp8266

Hi Team

I am trying to implement the firmware upgrade for master controller nrf52832 on chip using esp8266 over uart and I am very new with this boot-loader part.

I had gone through many examples and trying to understand the flow from where to start. Code had already implementation of DFU using nrf connect application and working, but now I need to do this using esp8266.

My flow is I will download the hex file from the server and then upgrade the hex file form esp8266 over uart.

I had seen the examples - secure_bootloader_dfu and iot example but still not able to understand the example.

Any help or suggestion in this.

Parents Reply
  • It's been a few months so I would need to have an update of what you are working on. 

    On the bootloader side, did you modify anything  ? Have you tried to test doing DFU to a unmodified bootloader from PC (instead of ESP) ?

    On the DFU master side, have you managed to build it ? Have you tested that with unmodified bootloader ? 
    Which SDK version are you working on ? 
    Are you combining BLE DFU bootloader and UART DFU bootloader ? 

Children
  • On bootloader I didn't make any changes:

    I am using SDK 14.2 that supports BLE DFU and Serial DFU both.

    Yes with PC using NRF util I am getting same response.

    DFU master I had studied that packet protocol that needed to be sent and design a logic accordingly.

    After more debugging  I had observed that - 

    sd_flash_page_erase(p_op->erase.page + p_op->erase.progress);

    This function is not returning only in case of serial dfu but working fine in BLE DFU.

  • I'm not aware of an example in SDK v14.2 that support both BLE and Serial. From where you got it ? 

    Again, please try to always test with stock example first and make sure it works before you test with anything else. 

  • Apologies for not making myself clear.

    I meant is Serial DFU and BLE DFU are present in Examples in SDK14.2. 

    What I am doing is, I had a code that supports BLE DFU and working fine. In the same code I had enable the Serial DFU also. But only use one at a time, either use BLE or use Serial.

    In the field I don't have any BLE connections at client site so in that case I will using Serial DFU to upgrade my nrf firmware and where BLE is available I will be using BLE DFU.

    I have to implement those feature in same firmware because I am not aware which device will be going to client, so all devices should support both.

    So, after all I did I am getting this error that I had mentioned earlier.

    Is there any way to resolve this error because my DFU controller is ready for testing, only this error is causing problems.

    Please suggest what should I do in this.

    Currently I am trying with example for Serial DFU mentioned in SDK 14.2 will share the results here.

  • I have an example of combining UART DFU and BLE DFU in SDK v15.2 that you can download here: https://devzone.nordicsemi.com/f/nordic-q-a/35431/dfu-over-ble-and-usb/166471#166471
    But before that please make sure you can do UART DFU with the stock UART bootloader. 

  • I am trying with secure dfu serial example on nordic DK SDk 14.2., will get back to you with results.

    and my SDK version is 14.2, will this example work for 14.2 as well?

    SDK 14.2 example secure_dfu_serial is not working it is throwing error 

    SEGGER/SEGGER Embedded Studio for ARM 4.18/gcc/arm-none-eabi/bin/ld: cannot find ../../../../../external/micro-ecc/nrf52hf_armgcc/armgcc/micro_ecc_lib_nrf52.a: no such file or directory.

    I am bit confused even if SDK 14.2 support serial DFU or not.

Related