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

serial dfu update BL+SD+AP

Hello,

we have a product with a firmware based on SDK13 with a serial Bootloader SD 4.0.2 on it.

Now we have to update those Devices to a new Firmware based on SDK16 with SD 7.0.1.

Now our Problem:

If I makse a packet zip file with the old application firmware or the old bootloader firmware I have no problme to update the Fimrware with nrfutil.

Both downloads went well and get 100% and the bootloader and the application works well after the update.

But if I want to update the Device with a new BL, SD, AP or all of them I have big problems and I'm not able to make the update.

Update Boolloader only:

C:\Entwicklung\BeverageMetrics\Firmware\BevMetTag\ReleaseReader>nrfutil-35 dfu serial -pkg BevMetReader_BL.zip -p COM15 -b 9600 -fc 0
[------------------------------------] 0%
Traceback (most recent call last):
File "nordicsemi\__main__.py", line 983, in <module>
File "site-packages\click\core.py", line 722, in __call__
File "site-packages\click\core.py", line 697, in main
File "site-packages\click\core.py", line 1066, in invoke
File "site-packages\click\core.py", line 1066, in invoke
File "site-packages\click\core.py", line 895, in invoke
File "site-packages\click\core.py", line 535, in invoke
File "nordicsemi\__main__.py", line 741, in serial
File "nordicsemi\__main__.py", line 676, in do_serial
File "nordicsemi\dfu\dfu.py", line 125, in dfu_send_images
File "nordicsemi\dfu\dfu.py", line 97, in _dfu_send_image
File "nordicsemi\dfu\dfu_transport_serial.py", line 253, in send_init_packet
File "nordicsemi\dfu\dfu_transport_serial.py", line 370, in __execute
File "nordicsemi\dfu\dfu_transport_serial.py", line 454, in __get_response
pc_ble_driver_py.exceptions.NordicSemiException: Response Code InsufficientResources
Failed to execute script __main__

If i want to update only the SD+AP:

C:\Entwicklung\BeverageMetrics\Firmware\BevMetTag\ReleaseReader>nrfutil-35 dfu serial -pkg BevMetReader_SD_AP.zip -p COM15 -b 9600 -fc 0
[############################--------] 79% 0d 00:00:42
Traceback (most recent call last):
File "nordicsemi\__main__.py", line 983, in <module>
File "site-packages\click\core.py", line 722, in __call__
File "site-packages\click\core.py", line 697, in main
File "site-packages\click\core.py", line 1066, in invoke
File "site-packages\click\core.py", line 1066, in invoke
File "site-packages\click\core.py", line 895, in invoke
File "site-packages\click\core.py", line 535, in invoke
File "nordicsemi\__main__.py", line 741, in serial
File "nordicsemi\__main__.py", line 676, in do_serial
File "nordicsemi\dfu\dfu.py", line 121, in dfu_send_images
File "nordicsemi\dfu\dfu.py", line 102, in _dfu_send_image
File "nordicsemi\dfu\dfu_transport_serial.py", line 299, in send_firmware
File "nordicsemi\dfu\dfu_transport_serial.py", line 370, in __execute
File "nordicsemi\dfu\dfu_transport_serial.py", line 454, in __get_response
pc_ble_driver_py.exceptions.NordicSemiException: Response Code InvalidObject
Failed to execute script __main__

I use the same public and private key files for the old and new fimrware version.

So at the moment I really don't know where the problem could be.

Parents
  • Hello,

    I see that you get the invalid object value back. Can you please let me know what commands you use to create the DFU images when it is working and when it isn't working?

    Does your bootloader support BLE and serial, or only serial?

    When you update the SD and app, is the SD the same version as before, or a new one?

    Best regards,

    Edvin

  • Hello,

    now it is working.

    there were some different Problems which has caused my problems:

    * old Bootloader was on 9600 Baud and new was on 115200 Baud. So, after the update of the BL+AD the new BL was running but nrfutil has still used the 9600. Now I use two nrfutil command after each other first with BL+SD on 9600 and second with AP and 115200

    * old Bootloader had a different Flash-Start-Address like the new one. I have to set the new one to the same address as the old was

    * On the old Bootloader the serial pin numbers was defined within the application code. On the new one these defines was within the boards.h file via a pre-processor define.

    * nrfutil version 6.0 was not working. I had to use an older version like version 3.5

    * On old Bootloader HWFC was disabled via sdk_config.h. As we had only RX7TX lines on our Hardware I had also to disable the HWFC on the new Bootloader.

    Regards
    markus

Reply
  • Hello,

    now it is working.

    there were some different Problems which has caused my problems:

    * old Bootloader was on 9600 Baud and new was on 115200 Baud. So, after the update of the BL+AD the new BL was running but nrfutil has still used the 9600. Now I use two nrfutil command after each other first with BL+SD on 9600 and second with AP and 115200

    * old Bootloader had a different Flash-Start-Address like the new one. I have to set the new one to the same address as the old was

    * On the old Bootloader the serial pin numbers was defined within the application code. On the new one these defines was within the boards.h file via a pre-processor define.

    * nrfutil version 6.0 was not working. I had to use an older version like version 3.5

    * On old Bootloader HWFC was disabled via sdk_config.h. As we had only RX7TX lines on our Hardware I had also to disable the HWFC on the new Bootloader.

    Regards
    markus

Children
No Data
Related