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

UART DFU MBR example

Hi,

I'm trying to use uart dfu mbr example and when I flush boot loader via jlink I see that it write mbr hex file at address 0x0. My main application also started from address 0, should I move it to address MBR_SIZE or this mbr hex file used only for debugging.

Parents Reply Children
  • Hi, 

    Do you have any log from the bootloader and from nrfutil ? 

    Have you done any modification to the bootloader ? Have you successfully tested with the stock bootloader example and managed to update for example the blinky example  ? 

  • No I have not log from boot loader. I implemented protocol of boot loader in main processor that connected via uart with processor with boot loader. I send init packet and it is working fine, but when I start to send image boot loader crushes. I modified project to match it to 52805, because nordic does not provide boot loader for this processor, and modifications is not only for size, but I'm sure I implemented the protocol in right way. The problem in boot loader definitions. What can be a problem in boot loader writing firmware? What definitions in sdk_config.h I should to check?

  • Hi Uri, 
    Could you clarify that you are planning to send image from a nRF52 to another nRF52 ?
    Which example did you base your DFU master on  ? Have you got a look at my example here ?
    I would suggest to test doing DFU from PC or from my example with no modification , just to test and make sure the bootloader on the DFU target works fine. After that you can start to test on your own DFU master.

    If it works with my example (or from PC) but not on your DFU master, you can try to record a logic trace on the UART pins and compare what is sent from my example or PC with what you send from your DFU master. 

  • Yes, I try send from nrf52840 that is my master send to nrf52805 via uart. I used your sample to send package and I have the same behavior, your program is stuck after it starts to send image because your code is blocking on uart transfer bit, but init packet is sent ok.

  • Hi Uri, 
    Have you tried to use nRFutil application on PC  to send the same image ? 
    Have you done any successful DFU update to your NRF52805 chip ? 

    If you can do a DFU update using the nRFUtil you can capture a logic trace of the UART pins. And then do the same with your/my DFU bootloader and compare the two. 

    Which error code was thrown after you sent the init packet ? 

Related