I've been trying to transfer a DFU update via serial, and I have gotten error 135 each time.
A colleague of mine got it working this january, with v3.1.0. Now, the same scripts don't work on my machine, with my nrfutil Installation. I am using the current commit of the mesh_dfu branch of the nrfutil tool.
This is my console output:
C:\_SVN\01_FuMu_SOM_TestPCB\BLE Mesh DFU Update 4.2>nrfutil --verbose dfu serial -pkg blinky_update.zip -p COM11 -b 115200 -fc --mesh
Upgrading target on COM11 with DFU package C:\_SVN\01_FuMu_SOM_TestPCB\BLE Mesh DFU Update 4.2\blinky_update.zip. Flow control is enabled.
Flushing com-port...
Opened com-port
Starting DFU upgrade of type 4, SoftDevice size: 0, bootloader size: 0, application size: 2180
Sending DFU start packet, afterwards we wait for the flash on target to be initialized before continuing.
1: PC -> target: 0502aabbccdd
target -> PC: 0582aabbccdd
Got echo response
Sending DFU init packet
Sending ready packet
1: PC -> target: 1378fdff040f4da6184559000000010002000000
target -> PC: 03847800
1: PC -> target: 1378fdff040f4da6184559000000010002000000
target -> PC: 03847800
Sending start packet
1: PC -> target: 1478fcff00004da61845ffffffff2102000000000c
target -> PC: 03847887
2: PC -> target: 1478fcff00004da61845ffffffff2102000000000c
target -> PC: 03847887
3: PC -> target: 1478fcff00004da61845ffffffff2102000000000c
target -> PC: 03847887
4: PC -> target: 1478fcff00004da61845ffffffff2102000000000c
target -> PC: 03847887
5: PC -> target: 1478fcff00004da61845ffffffff2102000000000c
target -> PC: 03847887
6: PC -> target: 1478fcff00004da61845ffffffff2102000000000c
target -> PC: 03847887
7: PC -> target: 1478fcff00004da61845ffffffff2102000000000c
target -> PC: 03847887
8: PC -> target: 1478fcff00004da61845ffffffff2102000000000c
target -> PC: 03847887
9: PC -> target: 1478fcff00004da61845ffffffff2102000000000c
target -> PC: 03847887
10: PC -> target: 1478fcff00004da61845ffffffff2102000000000c
target -> PC: 03847887
Failed to upgrade target. Error is: Device returned status code ERROR_INVALID_DATA (135) on a DFU data packet.
Possible causes:
- bootloader, SoftDevice or application on target does not match the requirements in the DFU package.
- baud rate or flow control is not the same as in the target bootloader.
- target is not in DFU mode. If using the SDK examples, press Button 4 and RESET and release both to enter DFU mode.
- if the error is ERROR_BUSY at the beginning of the DFU process,increase the value of PAGE_ERASE_TIME_MAX by few milliseconds.
Closing serial port...
After flashing the DFU example, this is the output on the RTT Viewer, the nothing is output while trying to send the update:
00> <t: 2>, main.c, 222, ----- Bluetooth Mesh DFU Example -----
00> <t: 12732>, ble_softdevice_support.c, 171, sd_ble_enable: app_ram_base should be adjusted to 0x200018F8
00> <t: 13257>, serial_handler_prov.c, 267, Generating encryption keypair...
00> <t: 18033>, main.c, 228, Initialization complete!
00> <t: 22743>, main.c, 249, Enabling serial interface...
00> <t: 22746>, mesh_app_utils.c, 66, Device UUID (raw): B792232387B44786B0B95873ECE2BB8A
00> <t: 22750>, mesh_app_utils.c, 67, Device UUID : B7922323-87B4-4786-B0B9-5873ECE2BB8A
00> <t: 22759>, nrf_mesh_dfu.c, 554, RADIO TX! SLOT 0, count 15, interval: periodic, handle: FFFE
00> <t: 22763>, nrf_mesh_dfu.c, 593, SERIAL TX (type: 65534)
00> <t: 22771>, main.c, 257, DFU example started!
00> <t: 23920>, nrf_mesh_dfu.c, 418, New firmware!
00> <t: 23923>, main.c, 119, Requesting DFU transfer with bank at 0x00047000
00> <t: 23926>, nrf_mesh_dfu.c, 554, RADIO TX! SLOT 0, count 3, interval: periodic, handle: FFFD
00> <t: 23930>, nrf_mesh_dfu.c, 565, Killing a TX slot prematurely (repeats done: 1).
00> <t: 23934>, nrf_mesh_dfu.c, 593, SERIAL TX (type: 65533)
Seems fishy to me, that it immediately seems to receive packets, even though I havent started the update yet?