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

pc-nrfutil 2.1.0 SDK12 serial dfu

Hello,

I saw that there is now serial dfu option enabled and Id like to make a serial DFU bootloader, however its a bit hard to read this Python code. Would be amazing if somebody could give the serial protocol that is used for transmissions? Also may be somebody knows how the .dat file is being read and transformed into Init packet?

Thanks!

Parents
  • Hello, we plan to add serial dfu over UART in upcoming SDK release, but documentation is not ready yet. The packet format will however be quite similar to our existing BLE transport .

    I have already made an experimental example of serial DFU based on an early beta release of the official uart transport. Have attached it here in case you want to try it.

    nRF5_SDK_12.1.0_MOD_serial_dfu_240117.7z

    Update:

    image description

  • Vidar, sorry for the late reply, had to deal with CONFIG_GPIO_AS_PINRESET first.. I tried to recompile with the settings you have, but it didnt help. What I noticed is that I dont have SLIP_ENABLED and NRF_QUEUE_ENABLED options in my sdk_config.h The project compiles without any errors though. May be that could be the problem?

    One more interesting thing if I enable nrfLOGging I see the following:

    :INFO:Inside main
     0> :INFO:In nrf_bootloader_init
     0> :INFO:In real nrf_dfu_init
     0> :INFO:running nrf_dfu_settings_init
     0> :INFO:Enter nrf_dfu_continue
     0> :INFO:Single: Invalid bank
     0> :INFO:Enter nrf_dfu_app_is_valid
     0> :INFO:Return false in valid app check
     0> :INFO:In nrf_dfu_transports_init
     0> :INFO:num transports: 1
     0> :INFO:UART initialized
     0> :INFO:After nrf_dfu_transports_init
     0> :INFO:Waiting for events
     0> :INFO:Set receipt notif
     0> :INFO:Sending Response: [0x2, 0x1]
    

    The last two lines appear when I abort DFU on command line.

Reply
  • Vidar, sorry for the late reply, had to deal with CONFIG_GPIO_AS_PINRESET first.. I tried to recompile with the settings you have, but it didnt help. What I noticed is that I dont have SLIP_ENABLED and NRF_QUEUE_ENABLED options in my sdk_config.h The project compiles without any errors though. May be that could be the problem?

    One more interesting thing if I enable nrfLOGging I see the following:

    :INFO:Inside main
     0> :INFO:In nrf_bootloader_init
     0> :INFO:In real nrf_dfu_init
     0> :INFO:running nrf_dfu_settings_init
     0> :INFO:Enter nrf_dfu_continue
     0> :INFO:Single: Invalid bank
     0> :INFO:Enter nrf_dfu_app_is_valid
     0> :INFO:Return false in valid app check
     0> :INFO:In nrf_dfu_transports_init
     0> :INFO:num transports: 1
     0> :INFO:UART initialized
     0> :INFO:After nrf_dfu_transports_init
     0> :INFO:Waiting for events
     0> :INFO:Set receipt notif
     0> :INFO:Sending Response: [0x2, 0x1]
    

    The last two lines appear when I abort DFU on command line.

Children
No Data
Related