What is the communication protocol of UART DFU?

Hi:

I use nrf52840 for UART DFU.

sdk 17.1.0.

Use bootloader:pca10056_uart_debug

I want to know what is the communication protocol of UART DFU?

  • Thanks for you help!

    I still have some questions:

    This is the data I obtained in DFU.

    1,Line 11:01 01 8E 00 00 00 C0 //01 is Create but what does 01 8E 00 00 00 mean? Same line 18.

    2,What is the meaning of this part?

    3,The length of each package is inconsistent. Why?

    This file is obtained from DFU.

    DFU_Protocol_data.txt

    This file is dfu.

    4353.APP.zip

  • I see. Line 11 : 01 8E 00 00 00 & Line 18: 02 00 10 00 00 is the Command/Data and length.

    But 2 & 3 Still don't understand。

  • Hi, 

    Not sure how you capture the log and how to read it. 

    I would suggest to run serial dfu with nrfutil and append -vvvv for verbose logging and read it with the Message sequence charts.

    Command example: nrfutil -v -v -v -v dfu serial -pkg blinky_mbr.zip -p COM9 -b 115200

    Log would look like this:

    C:\nRF5 SDK\nRF5_SDK_17.1.0_ddde560\examples\dfu\secure_dfu_test_images\uart\nrf52840>nrfutil -v -v -v -v dfu serial -pkg blinky_mbr.zip -p COM9 -b 115200
    2022-08-08 14:35:57,591 Using board at serial port: COM9
    2022-08-08 14:35:57,595 Sending Application image.
    2022-08-08 14:36:01,122 SLIP: --> [9, 1]
    2022-08-08 14:36:01,139 SLIP: <-- [96, 9, 1, 1]
    2022-08-08 14:36:01,139 Serial: Set Packet Receipt Notification 0
    2022-08-08 14:36:01,139 SLIP: --> [2, 0, 0]
    2022-08-08 14:36:01,156 SLIP: <-- [96, 2, 1]
    2022-08-08 14:36:01,156 SLIP: --> [7]
    2022-08-08 14:36:01,172 SLIP: <-- [96, 7, 1, 131, 0]
    2022-08-08 14:36:01,173 Sending init packet...
    2022-08-08 14:36:01,176 Serial: Selecting Object: type:1
    2022-08-08 14:36:01,176 SLIP: --> [6, 1]
    2022-08-08 14:36:01,192 SLIP: <-- [96, 6, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    2022-08-08 14:36:01,192 Serial: Object selected:  max_size:512 offset:0 crc:0
    2022-08-08 14:36:01,193 SLIP: --> [1, 1, 139, 0, 0, 0]
    2022-08-08 14:36:01,206 SLIP: <-- [96, 1, 1]
    2022-08-08 14:36:01,207 Serial: Streaming Data: len:139 offset:0 crc:0x00000000
    2022-08-08 14:36:01,207 SLIP: --> [8, 18, 136, 1, 10, 66, 8, 1, 18, 62, 8, 1, 16, 52, 26, 1, 0, 32, 0, 40, 0, 48, 0, 56, 244, 11, 66, 36, 8, 3, 18, 32, 49, 253, 154, 246, 66, 215, 195, 121, 116, 227, 153, 143, 193, 191, 153, 220, 78, 227, 230, 73, 144, 62, 79, 176, 25, 93, 196, 232, 39, 133, 69, 207, 72]
    2022-08-08 14:36:01,207 SLIP: --> [8, 0, 82, 4, 8, 1, 18, 0, 16, 0, 26, 64, 131, 233, 25, 211, 39, 45, 234, 155, 7, 44, 95, 199, 60, 132, 1, 138, 221, 213, 203, 53, 17, 127, 0, 170, 192, 184, 158, 172, 241, 236, 24, 195, 140, 201, 103, 248, 36, 10, 40, 144, 232, 74, 242, 137, 6, 213, 88, 60, 179, 98, 29, 39, 19]
    2022-08-08 14:36:01,218 SLIP: --> [8, 36, 8, 157, 217, 82, 208, 80, 103, 64, 225, 206]
    2022-08-08 14:36:01,222 SLIP: --> [3]
    2022-08-08 14:36:01,256 SLIP: <-- [96, 3, 1, 139, 0, 0, 0, 243, 47, 112, 192]
    2022-08-08 14:36:01,256 SLIP: --> [4]
    2022-08-08 14:36:01,476 SLIP: <-- [96, 4, 1]
    2022-08-08 14:36:01,476 Sending firmware file...
    2022-08-08 14:36:01,481 Serial: Selecting Object: type:2
    2022-08-08 14:36:01,481 SLIP: --> [6, 2]
    2022-08-08 14:36:01,551 SLIP: <-- [96, 6, 1, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    2022-08-08 14:36:01,551 Serial: Object selected:  max_size:4096 offset:0 crc:0
    2022-08-08 14:36:01,551 SLIP: --> [1, 2, 244, 5, 0, 0]
    2022-08-08 14:36:01,656 SLIP: <-- [96, 1, 1]
    2022-08-08 14:36:01,657 Serial: Streaming Data: len:1524 offset:0 crc:0x00000000
    2022-08-08 14:36:01,658 SLIP: --> [8, 16, 32, 0, 32, 21, 18, 0, 0, 29, 18, 0, 0, 31, 18, 0, 0, 33, 18, 0, 0, 35, 18, 0, 0, 37, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 18, 0, 0, 41, 18, 0, 0, 0, 0, 0, 0, 43, 18, 0, 0, 45, 18, 0, 0]
    2022-08-08 14:36:01,658 SLIP: --> [8, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0]
    2022-08-08 14:36:01,663 SLIP: --> [8, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    2022-08-08 14:36:01,680 SLIP: --> [8, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 47, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 18, 0, 0, 0, 0, 0, 0, 47, 18, 0, 0]
    2022-08-08 14:36:01,699 SLIP: --> [8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    2022-08-08 14:36:01,718 SLIP: --> [8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    2022-08-08 14:36:01,732 SLIP: --> [8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    2022-08-08 14:36:01,753 SLIP: --> [8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    2022-08-08 14:36:01,769 SLIP: --> [8, 223, 248, 12, 208, 0, 240, 24, 248, 0, 72, 0, 71, 253, 20, 0, 0, 16, 32, 0, 32, 6, 72, 128, 71, 6, 72, 0, 71, 254, 231, 254, 231, 254, 231, 254, 231, 254, 231, 254, 231, 254, 231, 254, 231, 254, 231, 254, 231, 93, 18, 0, 0, 1, 18, 0, 0, 6, 76, 7, 77, 6, 224, 224, 104]
    2022-08-08 14:36:01,780 SLIP: --> [8, 64, 240, 1, 3, 148, 232, 7, 0, 152, 71, 16, 52, 172, 66, 246, 211, 255, 247, 218, 255, 208, 21, 0, 0, 240, 21, 0, 0, 48, 181, 79, 240, 128, 82, 0, 35, 210, 233, 76, 16, 8, 41, 6, 209, 204, 6, 196, 248, 12, 49, 196, 248, 16, 49, 98, 76, 35, 96, 8, 41, 85, 209, 97, 75]
    2022-08-08 14:36:01,790 SLIP: --> [8, 27, 104, 97, 76, 35, 96, 95, 75, 27, 29, 27, 104, 36, 29, 35, 96, 92, 75, 8, 51, 27, 104, 36, 29, 35, 96, 90, 75, 12, 51, 27, 104, 36, 29, 35, 96, 87, 75, 16, 51, 27, 104, 36, 29, 35, 96, 85, 75, 20, 51, 27, 104, 36, 29, 35, 96, 82, 75, 24, 51, 27, 104, 82, 76]
    2022-08-08 14:36:01,818 SLIP: --> [8, 32, 52, 35, 96, 79, 75, 28, 51, 27, 104, 36, 29, 35, 96, 77, 75, 32, 51, 27, 104, 36, 29, 35, 96, 74, 75, 36, 51, 27, 104, 36, 29, 35, 96, 72, 75, 40, 51, 27, 104, 36, 29, 35, 96, 69, 75, 44, 51, 27, 104, 36, 29, 35, 96, 67, 75, 48, 51, 27, 104, 66, 76, 64, 52]
    2022-08-08 14:36:01,836 SLIP: --> [8, 35, 96, 64, 75, 52, 51, 27, 104, 36, 29, 35, 96, 61, 75, 56, 51, 27, 104, 36, 29, 35, 96, 59, 75, 60, 51, 27, 104, 36, 29, 35, 96, 56, 75, 64, 51, 27, 104, 36, 29, 35, 96, 8, 41, 4, 209, 3, 0, 2, 209, 55, 76, 53, 75, 35, 96, 8, 41, 4, 209, 3, 0, 2, 209]
    2022-08-08 14:36:01,855 SLIP: --> [8, 52, 76, 251, 35, 35, 96, 8, 41, 8, 209, 3, 0, 6, 209, 50, 75, 146, 248, 88, 82, 28, 104, 101, 243, 3, 4, 28, 96, 8, 41, 4, 209, 3, 0, 2, 209, 45, 76, 139, 1, 35, 96, 8, 41, 6, 209, 44, 72, 1, 104, 201, 7, 2, 208, 111, 240, 1, 1, 1, 96, 41, 72, 1, 104]
    2022-08-08 14:36:01,860 SLIP: --> [8, 65, 244, 112, 1, 1, 96, 191, 243, 79, 143, 191, 243, 111, 143, 210, 233, 76, 16, 79, 240, 16, 34, 8, 41, 6, 209, 3, 40, 4, 217, 210, 248, 8, 2, 23, 73, 32, 49, 8, 96, 210, 248, 0, 2, 0, 40, 3, 219, 210, 248, 4, 2, 0, 40, 31, 218, 1, 32, 0, 240, 243, 248, 18, 33]
    2022-08-08 14:36:01,892 SLIP: --> [8, 194, 248, 0, 18, 24, 72, 3, 104, 0, 43, 252, 208, 194, 248, 4, 18, 1, 104, 0, 41, 252, 208, 0, 32, 0, 240, 228, 248, 191, 243, 79, 143, 16, 72, 124, 56, 1, 104, 17, 74, 1, 244, 224, 97, 17, 67, 1, 96, 191, 243, 79, 143, 0, 191, 253, 231, 14, 73, 13, 72, 8, 96, 48, 189]
    2022-08-08 14:36:01,906 SLIP: --> [8, 56, 5, 0, 64, 4, 4, 0, 16, 32, 197, 0, 64, 72, 129, 3, 0, 140, 86, 0, 64, 24, 245, 0, 64, 228, 14, 0, 64, 64, 150, 2, 64, 0, 4, 0, 64, 136, 237, 0, 224, 0, 228, 1, 64, 4, 0, 250, 5, 0, 144, 208, 3, 8, 0, 0, 32, 2, 224, 8, 200, 18, 31, 8, 193]
    2022-08-08 14:36:01,913 SLIP: --> [8, 0, 42, 250, 209, 112, 71, 112, 71, 0, 32, 1, 224, 1, 193, 18, 31, 0, 42, 251, 209, 112, 71, 0, 0, 45, 233, 252, 65, 6, 70, 192, 7, 79, 240, 0, 5, 14, 208, 16, 79, 0, 36, 1, 34, 56, 93, 0, 149, 0, 35, 17, 70, 1, 149, 0, 240, 89, 248, 100, 28, 4, 44, 244, 211]
    2022-08-08 14:36:01,942 SLIP: --> [8, 0, 240, 50, 248, 176, 7, 13, 213, 7, 78, 0, 36, 54, 29, 0, 34, 48, 93, 3, 35, 0, 149, 17, 70, 1, 149, 0, 240, 71, 248, 100, 28, 4, 44, 244, 211, 189, 232, 252, 129, 198, 21, 0, 0, 9, 73, 8, 181, 8, 92, 0, 144, 104, 70, 0, 240, 83, 248, 208, 248, 4, 37, 0, 155]
    2022-08-08 14:36:01,944 SLIP: --> [8, 1, 33, 153, 64, 33, 234, 2, 3, 192, 248, 8, 53, 17, 64, 192, 248, 12, 21, 8, 189, 198, 21, 0, 0, 2, 73, 8, 92, 1, 33, 0, 240, 77, 184, 0, 0, 198, 21, 0, 0, 16, 181, 0, 36, 32, 70, 255, 247, 243, 255, 100, 28, 4, 44, 249, 211, 16, 189, 0, 0, 1, 32, 255, 247]
    2022-08-08 14:36:01,975 SLIP: --> [8, 171, 255, 9, 76, 79, 244, 250, 120, 79, 244, 122, 71, 0, 38, 48, 70, 255, 247, 204, 255, 69, 70, 97, 28, 56, 70, 136, 71, 109, 30, 250, 209, 118, 28, 4, 46, 243, 219, 241, 231, 192, 21, 0, 0, 45, 233, 255, 65, 28, 70, 221, 233, 10, 120, 21, 70, 14, 70, 104, 70, 0, 240, 16, 248]
    2022-08-08 14:36:01,989 SLIP: --> [8, 70, 234, 69, 1, 65, 234, 132, 1, 65, 234, 7, 34, 66, 234, 8, 65, 0, 154, 0, 235, 130, 0, 192, 248, 0, 23, 189, 232, 255, 129, 0, 0, 1, 104, 32, 41, 2, 210, 79, 240, 160, 64, 112, 71, 1, 240, 31, 1, 1, 96, 1, 72, 112, 71, 0, 0, 0, 3, 0, 80, 56, 181, 1, 36]
    2022-08-08 14:36:01,995 SLIP: --> [8, 0, 144, 104, 70, 49, 177, 255, 247, 235, 255, 0, 153, 140, 64, 192, 248, 8, 69, 56, 189, 255, 247, 228, 255, 0, 153, 140, 64, 192, 248, 12, 69, 56, 189, 0, 0, 3, 73, 8, 96, 3, 72, 1, 104, 0, 41, 252, 208, 112, 71, 0, 0, 4, 229, 1, 64, 0, 228, 1, 64, 0, 0, 0, 0]
    2022-08-08 14:36:02,025 SLIP: --> [8, 3, 56, 253, 216, 112, 71, 13, 14, 15, 16, 11, 12, 24, 25, 0, 0, 240, 21, 0, 0, 8, 0, 0, 32, 4, 0, 0, 0, 56, 20, 0, 0, 244, 21, 0, 0, 12, 0, 0, 32, 4, 32, 0, 0, 72, 20, 0, 0, 0, 144, 208, 3]
    2022-08-08 14:36:02,028 SLIP: --> [3]
    2022-08-08 14:36:02,058 SLIP: <-- [96, 3, 1, 244, 5, 0, 0, 197, 40, 142, 89]
    2022-08-08 14:36:02,058 SLIP: --> [4]
    2022-08-08 14:36:02,094 SLIP: <-- [96, 4, 1]
    2022-08-08 14:36:02,095 Image sent in 0.9216358661651611s
    Device programmed.

    Regards,
    Amanda

  • Hi Amanda:

    I measured it with the method you provided. It's very useful. Thank you.

    But I still can't find an explanation for this part.

    3,483 Serial: Streaming Data: len:142 offset:0 crc:0x00000000
    2022-08-09 16:54:23,486 SLIP: --> [8, 18, 139, 1, 10, 69, 8, 1, 18, 65, 8, 255, 1, 16, 52, 26, 2, 128, 2, 32, 0, 40, 0, 48, 0, 56, 152, 165, 3, 66, 36, 8, 3, 18, 32, 246, 244, 65, 2, 227, 15, 11, 221, 248, 230, 147, 22, 229, 106, 198, 71, 183, 123, 101, 194, 121, 249, 45, 25, 251, 133, 85, 72, 251, 220]
    2022-08-09 16:54:23,486 SLIP: --> [8, 128, 192, 72, 0, 82, 4, 8, 1, 18, 0, 16, 0, 26, 64, 92, 85, 19, 48, 223, 252, 196, 113, 74, 107, 13, 21, 140, 221, 26, 82, 156, 37, 73, 143, 250, 29, 39, 196, 96, 180, 154, 30, 235, 148, 127, 240, 79, 201, 52, 108, 24, 22, 125, 108, 81, 154, 182, 63, 245, 163, 205, 91, 91, 225]
    2022-08-09 16:54:23,486 SLIP: --> [8, 174, 3, 72, 239, 78, 177, 92, 0, 216, 189, 232, 79, 204, 69]
    This part is not explained.

    [8, 18, 139, 1, 10, ...What do these data represent?

Related