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

DFU FW-Update with Intel Wireless Bluetooth

Hi there,
I have a problem with the bootloader from the RF5_SDK_11.0.0_89a8197 together with Intel Wireless Bluetooth chipset.
I use the softdevice s132_nrf52_2.0..1. I have to stay on this release.
The bootloader DFU update works well with Realtek or Logilink.
The FW update with these chips is in about 90 seconds done.
The Intel Wireless Bluetooth chip takes 216 seconds to do this. Anyway.
I increased the timeout to 300000 seconds (DFU_TIMEOUT_INTERVAL) .
In addition, the timeout is reset until the end using dfu_timer_restart().
The WDT is also reset. But none of this seems to be the problem.

With Intel, the DFU update is rarely carried out completely
, but most of the time it is canceled at an unpleasant place.

What I found with
Realtek or Logilink:


Do STORE 0000000000 <---- Sore Value in Bank 1
Do STORE 0000000000
BLE_DFU_VALIDATE <----- Validate Comand
dfu_timer_restart done
<----- Restart Timout

BLE_DFU_ACTIVATE_N_RESET <---- Activate and reset
dfu_timer_restart done    <----- Restart Timout

Erase BANK 0
0000000000
Swap BANK 1 to BANK 0
update_process ready
DFU_UPDATE_APP_COMPLETE <----- End off Comand
Activate and reset
Done <----- Last DFU Comunication to here app. in 90 sec
Now the bootloader starts the internal update from bank 1 to bank 0.

0000000000 <---- return value, clean up Bank0 / Pages
0000000000
*
*
*
0000000000
0000000000
Start Swap BANK 1 to BANK 0
Do STORE 0000000000 <---- return value, Swap BANK 1 to BANK0 / Pages
Do STORE 0000000000
*
*
*
Do STORE 0000000000
Do STORE 0000000000
Do STORE 0000000000
 BOOTLOADER_COMPLETE  <----- done, restart App  
App Start..
Everything went well, as expected.

And if not, it looks like this (Intel):
Do STORE 0000000000   <---- Sore Value in Bank 1
Do STORE 0000000000
BLE_DFU_VALIDATE <----- Validate Comand
dfu_timer_restart done
<----- Restart Timout

BLE_DFU_ACTIVATE_N_RESET <---- Activate and reset
dfu_timer_restart done    <----- Restart Timout

Erase BANK 0
0000000000
Swap BANK 1 to BANK 0
update_process ready
DFU_UPDATE_APP_COMPLETE <----- End off Comand
Activate and reset
Done <----- Last DFU Comunication in 216 sec.
Now the bootloader starts the internal update from bank 1 to bank 0.
0000000000 <---- return value clean up Bank0 / Pages 
0000000000
*
*
*
0000000000
0000000000
Start Swap BANK 1 to BANK 0
0000000000  <----- return value first Page

Now the bootloader is reset! I have no idea why this happens!

--> Dev Name xxx 7000 <---- Bootloader start, after Timeout, the bootloader tries to start the app, but it doesn't exist.

BLE_DFU_START_APP

App Start...


Does anyone have an idea what triggers the termination?

Regard and thanx for Your help.


Parents
  • Hi Dudek, 

    It's pretty hard with the format you used in the text. Please use normal text with no formatting next time. 

    Please make it clear about the issue you are having. What did you use on the DFU master side ? What's running with the Intel Bluetooth chip ?

    My understanding is that you have 2 issue: 

    1. The DFU process from the Intel chip can't complete. If it couldn't complete, what did you see ? any log ? 

    2. If the DFU process finished but the application image didn't run, what did you see? Did the bootloader advertise ? 

    There is a way to debug the DFU is to dump the flash to a hex file and compare it to the original flash (before DFU) and compare to when you do DFU with other chip. 

    Please try to test with very simple DFU image, for example blinking LED. 

Reply
  • Hi Dudek, 

    It's pretty hard with the format you used in the text. Please use normal text with no formatting next time. 

    Please make it clear about the issue you are having. What did you use on the DFU master side ? What's running with the Intel Bluetooth chip ?

    My understanding is that you have 2 issue: 

    1. The DFU process from the Intel chip can't complete. If it couldn't complete, what did you see ? any log ? 

    2. If the DFU process finished but the application image didn't run, what did you see? Did the bootloader advertise ? 

    There is a way to debug the DFU is to dump the flash to a hex file and compare it to the original flash (before DFU) and compare to when you do DFU with other chip. 

    Please try to test with very simple DFU image, for example blinking LED. 

Children
No Data
Related