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

Hash of the received firmware image does not match the hash in the init packet

Hello,

I have implemented DFU using I2C by modifying the original nrf_dfu_serial_uart.c file. Also, on the master side I have added an I2C adapter class.

The communication seems to be fine between the master and slave. The firmware upgrade process is working as expected until the last block of the firmware image is received.

When the last block is received, the Master throws an error message saying: 

raise NordicSemiException('Extended Error 0x{:02X}: {}'.format(resp[3], data))
pc_ble_driver_py.exceptions.NordicSemiException: Extended Error 0x0C: The hash of the received firmware image does not match the hash in the init packet.

I expected it to work without any problems as I have not modified the core implementation. Only the transport layers have been changed.

Can you let me know what might be going wrong?

Logs: uart_log.txt8255.dfu_i2c.log

I have attached the two log files from UART and I2C for reference. Please see the logs, the checksum received for all the blocks are identical among I2C and SLIP(UART) implementations.

SDK - 15.3

SoftDevice: s132 v6.1.1

Example: Serial DFU Debug

Application: ble_uart_peripheral

Hardware: nRF52 DK

Best regards,

Navin

dfu_uart.log

Parents Reply Children
Related