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

The error of UART DFU

Hi,

I have met return error below point when I try to upload Application Hex file with bootloader in nRFgo Studio Ver1.17.0.3211.

if (!(IS_WORD_SIZED(m_start_packet.sd_image_size) && IS_WORD_SIZED(m_start_packet.bl_image_size) && IS_WORD_SIZED(m_start_packet.app_image_size))) { // Image_sizes are not a multiple of 4 (word size). return NRF_ERROR_NOT_SUPPORTED; }

This check point is added nrf51_sdk_v6_1_0_b2ec2e6. As I check App image size, sometimes it's word type but it's not.

Somebody help me how to solved this error side.

Test Condition Softdevice : s110_nrf51822_7.0.0_softdevice.hex SDK : nrf51_sdk_v6_1_0_b2ec2e6 Bootloder F/W : ..\nrf6310\device_firmware_updates\bootloader (dfu_dual_bank_hci) Uart setting : disable flow control, baud38400 , no parity

Thank you

  • In SDK 6.1.0 there's added more data to the start package regarding size of bootloader, SD and application and so on. This change to the start package is not taken into account in nRFgo Studio. The SDK 6.1.0 bootloader works, but just not with studio. If you want to test with nRFgo studio I suggest you try the bootloader from SDK 6.0.0. For all other purposes, I would recommend to use the one from SDK 6.1.0.

  • If you compare the file dfu_types.h from SDK 6.0.0 and SDK 6.1.0 you'll see that in SDK 6.0.0 there's a struct defined named dfu_update_packet_t; defining the packet structur for the start packet. In SDK 6.1.0 you'll find a similar, but different start packet definition named: dfu_start_packet_t. You'll see that this struct contains size of the softdevice, bootloader and application and it is this definition that will trigger the nRFgo Studio upload to fail.

Related