Duo struck in DFU - trying to update from v0.2.1


#1

Hello wonderful people,

I finally got around testing my the Kickstarter Redbear Duo. I connected the Duo to WiFi over serial and added to my Particle cloud only to realize that the firmware version is pretty old v0.2.1 and I am missing a lot of awesome features.

I followed the firmware deployment guide on github to update the firmware to v0.3.1. Following are the steps performed in order and the resulting dfu output. At the end of these steps, my duo is stuck in DFU mode (even after resets). I can make it re-enter DFU for pressing the reset and mode button and then releasing the reset button. The device does through blinking magenta and then enters the blinking yellow DFU mode, so I assume the bootloader is fine. I am running Win 10 and do not have the rbLink hardware.

1. Updated the DCT

c:\duo>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

2. Flashed system firmware part 1

c:\duo>dfu-util -d 2b04:d058 -a 0 -s 0x8020000 -D duo-system-part1-v0.3.1.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 = 0x08020000, size = 44497
Download [=========================] 100% 44497 bytes
Download done.
File downloaded successfully

3. Flashed system firmware part 2

c:\duo>dfu-util -d 2b04:d058 -a 0 -s 0x8040000 -D duo-system-part2-v0.3.1.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 = 0x08040000, size = 44489
Download [=========================] 100% 44489 bytes
Download done.
File downloaded successfully

4. Updated factory reset application to web server

c:\duo>dfu-util -d 2b04:d058 -a 2 -s 0x140000 -D duo-fac-web-server-v0.3.1.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 #2
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Serial Flash "
Downloading to address = 0x00140000, size = 44521
Download [=========================] 100% 44521 bytes
Download done.
File downloaded successfully

5. Updated wifi firmware (Upended leave to make the duo leave dfu mode, but to no avail)

c:\duo>dfu-util -d 2b04:d058 -a 2 -s 0x180000:leave -D duo-wifi-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 #2
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Serial Flash "
Downloading to address = 0x00180000, size = 44105
Download [=========================] 100% 44105 bytes
Download done.
File downloaded successfully

Any ideas what I am doing wrong? I can try the Arduino IDE approach to update the firmware but don’t wanna do it until I am sure it would not erase the bootloader.

Thanks
Rahil


#2

it looks like the files are downloaded ok but the flash process is not taking place because the system messages do not report a good flash. have you tried a re-install of dfu?


#3

Thanks for the input. No, but I can try that and report back shortly.


#4

No change after uninstalling and reinstalling DFU and drivers.

I went ahead and tried the Arduino IDE method to update the firmware and may have gotten some success.

The device is now running the blinky code. The RGB LED is curiously breathing Cyan, but the device is not connected to WiFi. I confirmed in the Particle IDE. The RGB LED is not even affected by the reset button and seems to be doing its own thing.

Does anyone know what I am missing?

thanks


#5

i don’t use a duo, but, i have a couple electrons and a photon so i’m coming from particle view. of things that you could try. do you use the particle CLI? if you do i would suggest an install of the latest because i think it now also installs the dfu stuff needed… also, by this point i would imagine that the keys are broken. so there are a couple keys doctor commands to try.


#6

I am coming from the same universe. I have a bunch of particle-powered projects and wanted to try BLE hardware supported by Particle cloud.

Yes, I use Particle CLI. I haven’t updated it in a while but I can try to see if that makes a difference. I have backed the device private key before I went on this adventure. So once we get to point where device is running the wifi code, I think I should be good with provisioning in particle cloud.