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

Problems in transfer of a firmware image

Hi All,

I have transferred an init packet and now prepare to transfer a firmware image.

Both central master and peripheral are nrf52840.

However, I have two questions.

1.When I send create command{0x01,0x02,0xb8,0xb9},I get {0x60,0x01,0x04} which means not enough memory for the data object. The picture below is the LOG when 

I send select command and create command. I have no idea about how to solve the problem.

2.If I get a correct return after sending create command, Which file should I send?(I guess only .bat flie?) 

Best regards,

Steven

Parents
  • I have successfully transferred the firmware image.Now I am glad to share my experience.

    Background

    1.Both central master and peripheral are nRF52840 devices. SDK: nRF5_SDK_16.0.0

    2.Init packet and firmware image are stored in central master.

    3.Central master can find DFU service and its characteristics from the peripheral as below.

    If you can find DFU service but can't find any characteristics, maybe you need to change the characteristic UUID(128 bits) in your application and bootloader programs to ensure that both service and characteristics are based on the same 128 bits UUID.

     

    Prepare to enter bootLoader

    1.Enable indications. 

    You can refer to this : How to enable indications

    2.Sending 0x01 to Buttonless DFU without bonds characteristic(0x03).The peripheral will restart and MAC address + 1 if entering bootloader.

    Transfer init packet and firmware image

    1.Transfer init packet

    You can refer to How to transfer init packet and Transfer of an init packet

    .dat file will be transfered.

    2.Transfer firmware image

    You can refer to Transfer of a firmware image

    .bin file will be transfered.The flow chart is as follows

    tips:

    1.Enable notification to check return code.   

    2. .bin file size is bigger than the maximum object size.Therefore,if the image size is 10 kB and the maximum object size is 4 kB, 3 data objects must be transferred.

Reply
  • I have successfully transferred the firmware image.Now I am glad to share my experience.

    Background

    1.Both central master and peripheral are nRF52840 devices. SDK: nRF5_SDK_16.0.0

    2.Init packet and firmware image are stored in central master.

    3.Central master can find DFU service and its characteristics from the peripheral as below.

    If you can find DFU service but can't find any characteristics, maybe you need to change the characteristic UUID(128 bits) in your application and bootloader programs to ensure that both service and characteristics are based on the same 128 bits UUID.

     

    Prepare to enter bootLoader

    1.Enable indications. 

    You can refer to this : How to enable indications

    2.Sending 0x01 to Buttonless DFU without bonds characteristic(0x03).The peripheral will restart and MAC address + 1 if entering bootloader.

    Transfer init packet and firmware image

    1.Transfer init packet

    You can refer to How to transfer init packet and Transfer of an init packet

    .dat file will be transfered.

    2.Transfer firmware image

    You can refer to Transfer of a firmware image

    .bin file will be transfered.The flow chart is as follows

    tips:

    1.Enable notification to check return code.   

    2. .bin file size is bigger than the maximum object size.Therefore,if the image size is 10 kB and the maximum object size is 4 kB, 3 data objects must be transferred.

Children
No Data
Related