Problem loading firmware with DFU-UTIL


#1

I purchased a 2nd Duo (this one from Maker’s Shed) and it would not connect to the Particle web. To try and correct this and make sure I had the same firmware as my working Duo I used the RBLink module to reload duo-bootloader-r4.bin. I then moved the serial cable to the Duo and put it into DFU mode. I then reloaded the firmware:
dfu-util -d 2b04:d058 -a 0 -s 0x8008000 -D fac-dct-r1.bin
dfu-util -d 2b04:d058 -a 1 -s 2082 -D server_public_key.der
dfu-util -d 2b04:d058 -a 1 -s 34 -D duo2_device_private_key_backup.der
dfu-util -d 2b04:d058 -a 0 -s 0x8020000 -D duo-system-part1-v0.3.3.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000 -D duo-system-part2-v0.3.3.bin
dfu-util -d 2b04:d058 -a 2 -s 0x140000 -D duo-fac-web-server-v0.3.1.bin
dfu-util -d 2b04:d058 -a 2 -s 0x180000 -D duo-wifi-r2.bin
dfu-util -d 2b04:d058 -a 1 -s 34:leave -D reset_device_private_key.bin

Then I used node main.js …device_id… to provision the device.

I was then able to connect it (briefly) to the Particle web. It stayed connected long enough to enter the ID, record the last handshake, and create an event message. It then switched to the looking for internet mode. When I reset it I get the red flash SOS with a Hard Fault indicated.

Since all I had loaded was the Redbear released firmware I assume I got a corrupted flash. I decided to reimage the device. Now when I try to load it looks to me like the DFU-util is failing on everything except the DCT (see below):

 C:\DFU-util>dfu-util -d 2b04:d058 -a 0 -s 0x8008000 -D fac-dct-r1.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 [email protected]

 Invalid DFU suffix signature
 A valid DFU suffix will be required in a future dfu-util release!!!
 Opening DFU capable USB device...
 ID 2b04:d058 
 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 = 0x08008000, size = 32768
 Download        [=========================] 100%        32768 bytes
 Download done.
 File downloaded successfully

 C:\DFU-util>dfu-util -d 2b04:d058 -a 1 -s 2082 -D server_public_key.der
 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 [email protected]numonks.org

 Invalid DFU suffix signature
 A valid DFU suffix will be required in a future dfu-util release!!!
 Opening DFU capable USB device...
 ID 2b04:d058
 Run-time device DFU version 011a
 Claiming USB DFU Interface...
 Setting Alternate Setting #1 ...
 Determining device status: state = dfuIDLE, status = 0
 dfuIDLE, continuing
 DFU mode device DFU version 011a
 Device returned transfer size 4096
 DfuSe interface name: "DCT Flash   "
 Downloading to address = 0x00000822, size = 402
 Download        [                         ]   0%            0 bytesError during download get_status

Uploads seem to work correctly and subsequent DCT downloads indicate correct completion but all other downloads fail.

I am suspecting that this particular Duo may be defective. Any suggestions would be greatly appreciated.