[SOLVED] Dfu-util: Error during download get_status Error writing firmware

Hi there,

I’m having an issue, while updating a Photon via USB, though I have managed to connect to the cloud.

I have searched, but can only find this (possibly related) similar DFU error:
https://community.particle.io/t/problem-getting-started-with-photon/13282

Here is a bunch of output:

MintUser@GopherBear /storage/repos/arduino/core_oled $ uname -a
Linux GopherBear 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
MintUser@GopherBear /storage/repos/arduino/core_oled $ /usr/bin/particle flash --usb /tmp/pflash_firmware.bin
Found DFU device 2b04:d006
Apparently I didn't find a DFU device? util said  dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Found Runtime: [2522:0007] ver=1503, devnum=5, cfg=1, intf=2, alt=0, name="LH Labs DFU", serial="UNKNOWN"
Found Runtime: [2522:0007] ver=1503, devnum=5, cfg=1, intf=2, alt=0, name="LH Labs DFU", serial="UNKNOWN"
Found DFU: [2b04:d006] ver=0200, devnum=37, cfg=1, intf=0, alt=1, name="@DCT Flash   /0x00000000/01*016Kg", serial="00000000010C"
Found DFU: [2b04:d006] ver=0200, devnum=37, cfg=1, intf=0, alt=0, name="@Internal Flash   /0x08000000/03*016Ka,01*016Kg,01*064Kg,07*128Kg", serial="00000000010C"

checking file  /tmp/pflash_firmware.bin
spawning dfu-util -d 2b04:d006 -a 0 -i 0 -s 0x080A0000:leave -D /tmp/pflash_firmware.bin
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 2b04:d006
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x080a0000, size = 86192
Download    [=========================] 100%        86192 bytes
Download done.
File downloaded successfully
dfu-util: Error during download get_status
Error writing firmware... 
MintUser@GopherBear /storage/repos/arduino/core_oled $ dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.4.3-photon.bin
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 2b04:d006
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x08020000, size = 248732
Download    [=========================] 100%       248732 bytes
Download done.
File downloaded successfully
MintUser@GopherBear /storage/repos/arduino/core_oled $ dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.4.3-photon.bin
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 2b04:d006
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x08060000, size = 151192
Download    [=========================] 100%       151192 bytes
Download done.
File downloaded successfully
dfu-util: Error during download get_status
MintUser@GopherBear /storage/repos/arduino/core_oled $ /usr/bin/particle flash --usb /tmp/pflash_firmware.binFound DFU device 2b04:d006
Apparently I didn't find a DFU device? util said  dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Found Runtime: [2522:0007] ver=1503, devnum=5, cfg=1, intf=2, alt=0, name="LH Labs DFU", serial="UNKNOWN"
Found Runtime: [2522:0007] ver=1503, devnum=5, cfg=1, intf=2, alt=0, name="LH Labs DFU", serial="UNKNOWN"
Found DFU: [2b04:d006] ver=0200, devnum=41, cfg=1, intf=0, alt=1, name="@DCT Flash   /0x00000000/01*016Kg", serial="00000000010C"
Found DFU: [2b04:d006] ver=0200, devnum=41, cfg=1, intf=0, alt=0, name="@Internal Flash   /0x08000000/03*016Ka,01*016Kg,01*064Kg,07*128Kg", serial="00000000010C"

checking file  /tmp/pflash_firmware.bin
spawning dfu-util -d 2b04:d006 -a 0 -i 0 -s 0x080A0000:leave -D /tmp/pflash_firmware.bin
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 2b04:d006
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x080a0000, size = 86192
Download    [=========================] 100%        86192 bytes
Download done.
File downloaded successfully
dfu-util: Error during download get_status
Error writing firmware... 
MintUser@GopherBear /storage/repos/arduino/core_oled $ particle call hamster_dozen
polling server to see what devices are online, and what functions are available
beefjerky (53xxxxxxxxxxxxxxxxxxxx87) has 0 functions  (or is offline) 
blueballs (55xxxxxxxxxxxxxxxxxxxx87) has 0 functions  (or is offline) 
hamster_dozen (2bxxxxxxxxxxxxxxxxxxxx37) has 4 functions 
  int digitalread(String args) 
  int digitalwrite(String args) 
  int analogread(String args) 
  int analogwrite(String args) 
MintUser@GopherBear /storage/repos/arduino/core_oled $ 

I can not seem to get around these DFU errors.
After each flash, the Photon reboots, connects to the cloud, but tinker is still running on the device.
The same program, and USB flashing works on my cores, and result in successful program execution.

I’m not sure which version of particle CLI I am running, but it was current at 2015-06-16.

Any light that can be shed on this would be much appreciated.
D

Is your firmware a very large program? The program file is over 80K which makes me think that it’s compiled for the Core not the Photon.

Downloading to address = 0x080a0000, size = 86192
Download    [=========================] 100%        86192 bytes
Download done.
File downloaded successfully
dfu-util: Error during download get_status

dfu-util has known issue where it both reports success and failure. (See lines mentioning done and success, and the last line mentioning error.) You can ignore this error, the tool is lying to you! :slight_smile:

However, the photon won’t accept this firmware if it’s compiled for the Core. (The photon will see the firmware is invalid and revert to the factory firmware.)

Please update your particle cli installation to the latest version and see the cli docs for the command line arguments required to compile for the photon.

With that, you should be all set, with your firmware running on your device.

That’s done it, you’re a legend mdma!
I was obviously attempting to flash a Core program, on to a Photon.

Updated CLI using:

npm update -g particle-cli

Recompiled with:

/usr/bin/particle compile p . --saveTo /tmp/pflash_firmware.bin

Flashed with:

/usr/bin/particle flash --usb /tmp/pflash_firmware.bin
2 Likes

I got a similar error for different reasons. I also found that my device was going into safe mode every time. Oddly, something like the following seemed to work:

dfu
particle flash --usb tinker
Then going to build.particle.io, selecting my photon, and flashing an example program
I found there was lots of magenta flashing and cycling, but eventually breathing cyan came up
Then I could run dfu; particle flash photon --usb out.bin. Odd…