redbear / Duo

Resources for the RedBear Duo IoT development board.
http://redbear.cc/duo
226 stars 107 forks source link

Stuck in Green blinking loop #14

Closed JeroenConnectivity closed 8 years ago

JeroenConnectivity commented 8 years ago

Hello,

After flashing FW with particle.io my redbearDuo is stuck in a blinking Green light cycle. I cannot change to FW via serial because there seems to be no valid DFU suffix signature:

Filter on vendor = 0x2b04 product = 0xd058 Opening DFU USB device... ID 2b04:d058 Run-time device DFU version 011a Found DFU: [2b04:d058] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/01_016Ka,02_016Kg,01_016Kg,01_064Kg,07*128Kg" 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 No valid DFU suffix signature Warning: File has no DFU suffix DfuSe interface name: "Internal Flash "

Any ideas how to solve this isue?

JeroenConnectivity commented 8 years ago

I did manage to flash bootloader via Arduino IDE, but the connection with Particle Cloud IDE is still broken. It seems to be stuck in Safe-Mode. Any Help?

XuGuohui commented 8 years ago

Hi @JeroenConnectivity ,After you flashing bootloader, what have you done to make your Duo connect to cloud? You said it seams in safe mode, did the RGB breathing magenta?

JeroenConnectivity commented 8 years ago

@XuGuohui Thanks for the reply! I tried all kinds of SYSTEM_MODEs. It seems to run Arduino code when I put it on MANUAL, but the other modes (which connect to Cloud) makes the Duo go into the following state: rapid blinking blue, mixed with rapid blinking yellow and that in than blinks at slower speed. This cycle repeats. Seems like the Particle section of the Duo stuck in some sort of Safe-Mode

XuGuohui commented 8 years ago

It may be blinking cyan rather than blue, right? In that case, you should follow this guide to provision your Duo:

https://github.com/redbear/Duo/blob/master/docs/provisioning_guide.md

XuGuohui commented 8 years ago

You need to download or clone this repository:

https://github.com/redbear/device-provisioning-helper

JeroenConnectivity commented 8 years ago

Worked through the process and one thing was a bit strange. When I try to load the DCT I get the response: "(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc. (C) 2010-2011 Tormod Volden (DfuSe support) This program is Free Software and has ABSOLUTELY NO WARRANTY

dfu-util does currently only support DFU version 1.0

Filter on vendor = 0x2b04 product = 0xd058 Cannot open device Opening DFU USB device... "

Device-provisioning-helper is working though. Gave me the proper response after execution.

JeroenConnectivity commented 8 years ago

Sorry forgot sudo:P Now the response is: " Filter on vendor = 0x2b04 product = 0xd058 Opening DFU USB device... ID 2b04:d058 Run-time device DFU version 011a Found DFU: [2b04:d058] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/01_016Ka,02_016Kg,01_016Kg,01_064Kg,07*128Kg" Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuDNLOAD-IDLE, status = 0 aborting previous incomplete transfer Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 011a Device returned transfer size 4096 No valid DFU suffix signature Warning: File has no DFU suffix DfuSe interface name: "Internal Flash " "

XuGuohui commented 8 years ago

Did you put your Duo in DFU mode before loading the DCT image?

JeroenConnectivity commented 8 years ago

Yes

XuGuohui commented 8 years ago

What is the command you run the dfu-util?

JeroenConnectivity commented 8 years ago

dfu-util -d 2b04:d058 -a 0 -s 0x08004000 -D duo-dct-r1.bin

JeroenConnectivity commented 8 years ago

The execution of dfu-util just stops after Interal Flash message while it should start Downloading process (which I've seen happening during bootloader flash in Arduino IDE)

XuGuohui commented 8 years ago

Are you using the Mac OSX or Linux? If so, try running the dfu command with sudo

JeroenConnectivity commented 8 years ago

Did run with sudo. Using Linux

XuGuohui commented 8 years ago

Please run command dfu-util -l to check there is any device in DFU mode.

JeroenConnectivity commented 8 years ago

dfu-util does currently only support DFU version 1.0

Found DFU: [2b04:d058] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/01_016Ka,02_016Kg,01_016Kg,01_064Kg,07_128Kg" Found DFU: [2b04:d058] devnum=0, cfg=1, intf=0, alt=1, name="@DCT Flash /0x00000000/01_016Kg" Found DFU: [2b04:d058] devnum=0, cfg=1, intf=0, alt=2, name="@Serial Flash /0x00000000/192_004Kg,128_004Kg,64_004Kg,128_004Kg"

XuGuohui commented 8 years ago

Did you install dfu-util by following this guide:

https://github.com/redbear/Duo/blob/master/docs/dfu.md

JeroenConnectivity commented 8 years ago

I used sudo apt-get install dfu-util

XuGuohui commented 8 years ago

It's weird! Can you load system firmware using dfu-util?

JeroenConnectivity commented 8 years ago

Nope. It sure is;P I'll be oke with a workaround (bypass dfu-util) to factory reset the FW with the Arduino IDE so I can use the particle IDE again. Is this possible?

JeroenConnectivity commented 8 years ago

Arduino Consol:

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

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 = 0x080c0000, size = 2936 dfu-util: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!

Download [ ] 0% 0 bytesdfu-util: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!

Download [ ] 0% 0 bytes Download [=========================] 100% 2936 bytes Download done. File downloaded successfully

Linux Terminal:

dfu-util 0.5

(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc. (C) 2010-2011 Tormod Volden (DfuSe support) This program is Free Software and has ABSOLUTELY NO WARRANTY

dfu-util does currently only support DFU version 1.0

Opening DFU USB device... ID 2b04:d058 Run-time device DFU version 011a Found DFU: [2b04:d058] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/01_016Ka,02_016Kg,01_016Kg,01_064Kg,07*128Kg" Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuDNLOAD-IDLE, status = 0 aborting previous incomplete transfer Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 011a Device returned transfer size 4096 No valid DFU suffix signature Warning: File has no DFU suffix DfuSe interface name: "Internal Flash "

XuGuohui commented 8 years ago

The Arduino burn bootloader option does not reset the DCT. If you didn't ever do something to DCT, it should be OK and you need not to reset it and just moving on.

XuGuohui commented 8 years ago

By comparing the message between Arduino and terminal, when running dfu-util from terminal, it can not identify the interface name DfuSe interface name: "Serial Flash ", which may terminate the progress.

JeroenConnectivity commented 8 years ago

Oke fixed the dfu-util by updating to 0.8. In apt-get 0.5 gets installed. I ran following commands:

git clone git://git.code.sf.net/p/dfu-util/dfu-util
cd dfu-util
./autogen.sh
./configure  # on most systems
make
sudo make install

source: http://dfu-util.sourceforge.net/build.html

JeroenConnectivity commented 8 years ago

I followed the Provisioning Guide again, but i'm unable to claim my device. I deleted the duo from the particle IDE. Should I be able to reclaim the device after the provisioning process? Currently Breathing Cyan

XuGuohui commented 8 years ago

Glad you fix the problem. Maybe I can add this to the dfu-util installation guide. :+1: Yes, definitely you can reclaim it, but only when it is online.

JeroenConnectivity commented 8 years ago

Got it online by uploading Arduino Sketch with SYSTEM_MODE(AUTOMATIC) defined. Then it entered listening mode which allowed me to reconnect to cloud and made it possible to reclaim afterwards! Thanks for the help and good idea to update installation guide!