Won't take firmware update after deep update

I just tried to perform a deep update using the CLI tools. The device appears to flash correctly, however after it the update the RGB led is dark and the D7 led is dim blue. I can do a factory reset, put it on the network, test with tinker, but any other firmware flash will leave it in the dark RGB state. If I do a factory reset, setup the WiFi credentials and it has tinker running I can control it using the tinker iPhone app, however I tried the deep update using the IDE and after it leaves it in the dark LED state.

Basically any firmware update leaves it in the dark RGB led state and I have to do a factory reset (holding down both buttons, releasing the reset button and holding the mode button until the LED flashes white. This will get the core back on the network but anything after that (deep update using CLI or IDE) or CLI firmware update to my app - leaves it in the dark RGB led state (with the d7 blue dim).

I am at a loss, any help would be appreciated.

1 Like

I had the exact same issue last night, and after repeated factory resets, I flashed the firmware via USB and the DFU mode (with the [Spark CLI][1]) instead of via the cloud. The DFU flash worked, and all subsequent cloud flashes have worked as well.

I’d be curious to know the underlying problem as well, but I’m back up and running after beating my head against a wall.
Hope that helps!
[1]: http://docs.spark.io/cli

Usually, the dimmed blue led means that the core is in the Reset state and the user firmware is probably corrupted which explains why it did not run.

You can reflash the user firmware easily via Spark-cli :wink:

@fred Thanks for the info, I can only get the core to take a CLI update by first getting it into the factory default (flashing blue) and then putting it on the network using the iPhone app or the CLI. Then tinker works, and I can use CLI to flash the a binary. However the same always happens, the magenta flashes slowly taking the firmware, then flashes rapidly, turns off, goes solid magenta, flashes rapidly again and then goes off. It stays off from this point forward. Power cycle, reset, does not seem to recover it. Only a factory reset will get it back to tinker on the network.

@kennethlimcp from the documentation the RGB dark with dim blue LED indicates no firmware. I wonder if it is not flashing?

I recompiled my binary and tried again but same result. I have also tried to perform the cc3000 using the CLI and same result after it appears to flash.

So your core consistently reset and stays in the dimmed led?

Was it working fine before the patch?

You can try patching with spark flash --usb cc3000. Also, make sure that your Spark-cli is the latest version just to be sure. :slight_smile:

To flash using DFU-mode, press BOTH buttons and release only the RST button. Wait till the core blinks yelllow.

Yes, the core was working before trying to run the patch from the CLI for the first time. I think it was stuck in flashing green for several minutes, so I removed power, reapplied power and same flashing green. Then I did a factory reset (getting to the blue flash) and got it working up to the tinker app (after a factory reset and wifi config).

once I attempt to flash the core with either CLI or web IDE I get stuck after the flash has completed.

UPDATE: I just tried to flash using DFU-UTIL instead of CLI and poof - it works. So my core must have been in some weird state there flashing via CLI or via IDE won't work, but flashing the same firmware.bin using DFU-UTIL works.

Now its time to try and do the deep update to get the WiFi working more reliably.

Is there anyway to do the cc3000 update using DFU?

Spark-cli is in fact using DFU util to perform the downloading to the core via USB.

It just seems like the core was not placed in the correct mode (blinking yellow) during the patch etc.

If you did the spark flash --usb cc3000, your core will be having the latest firmware patch. :wink:

1 Like

So there may be come confusion with CLI and DFU. CLI is for using the spark commands on the command line, yes it does execute dfu-util but only within a script. So for example when using

spark flash "core name" firmware.bin

You don't need to put the core in DFU mode (flashing yellow).
However if you want to use DFU directly from a shell prompt -

dfu-util -d 1d50:607f -a 0 -s 0x08005000:leave -D firmware.bin

you DO need to put the core in DFU mode.

Now - I need to locate the deep update bin file so I can do the deep update. I still can't get the update to run via the IDE.

So I tried that update, interesting I had to set the core to DFU mode (so maybe I don;t know what I am talking about wrt the spark flash command).

It's stuck at the flashing green LED again!!! argh.

spark flash --usb cc3000
FOUND DFU DEVICE 1d50:607f
checking file /usr/local/lib/node_modules/spark-cli/binaries/cc3000-patch-programmer.bin
spawning dfu-util -d 1d50:607f -a 0 -i 0 -s 0x08005000:leave -D /usr/local/lib/node_modules/spark-cli/binaries/cc3000-patch-programmer.bin
dfu-util 0.7

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

Filter on vendor = 0x1d50 product = 0x607f
Opening DFU capable USB device... ID 1d50:607f
Run-time device DFU version 011a
Found DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/20001Ka,108001Kg"
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 1024
No valid DFU suffix signature
Warning: File has no DFU suffix
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08005000, size = 25068
.........................
File downloaded successfully
Transitioning to dfuMANIFEST state
Error during download get_status
Flashed!

So… I'm back at the point where I started this entire process :frowning:

Did you read the syntax I wrote above?

spark flash --usb cc3000. I used the —usb flag which is to use DFU to send the firmware to the core.

I will not recommend doing deep update using spark flash filename.bin if you have Spark-cli installed. That’s doing it via OTA.

To perform deep update using DFU via Spark-cli,

spark flash --usb deep_update_2014_06

All this are documented here:

http://docs.spark.io/troubleshooting/#deep-update-overview

You might want to re-send your Wifi credentials just to be sure. :slight_smile:

1 Like

I’m having the exact same problem with 3 Sparks. All of them were working fine until today. I think that there is something wrong on the cloud compiler. After the factory reset, the tinker works fine, but even if you try to Re-Flash Tinker over the Iphone App, I get the same error, flashing main blue light, then goes off and small blue light stay on.
Same problem with any app that I had previously working…can’t make it work.

Hey @manuelmasri, maybe you can open a new thread so that we can assist you better.

Also, cam you give more details like:

1.) Are you able to connect to the spark cloud?

2.) Can you reflash via Spark IDE?

3.) What’s the code you are running?

@kennethlimcp - thanks, I was able to do the deep update, I then flashed an older firmware.bin that I had from a few days ago and that worked! I made some changed to my app in the IDE, downloaded the firmware and flashed it - and I now have a dark core. I think I’m going to stick with my old firmware.bin from a few days ago and wait until this gets resolved. At this point I am not sure what’s going on.

Well, not sure what’t going on. I can now download and flash from the IDE. Thanks for all the help!

1 Like

I’m having the same issue today. I had tried to update my firmware by web IDE. After flashing “Purple” it gets flashing green->flashing blue->red! I reseted it a few times and saw the same result. Then I did a factory reset, entered Wifi Credentials with Tinker app. Then try Tinker app to HIGH d7 and it worked.

Then I tried web IDE update second time. This time after flashing “Purple”, main LED turns off and just D7 led worked.

I dont want to use CLI or something else. They make me confused.

Note: I did deep update few days ago.

Thanks.

Hi,
I get the same problem! The tinker app workfine but when I flash any other app via OTA, it seems to flash correctly then it stops and small LED stays blue.

Add me to the list of non-working cores. Hard reset. Connect to WiFi via Tinker app. The process that following naming the core puts the device into main light off, little blue light on.

Hey All,

We had a few things happen this week that might have impacted you. We changed the chunk size used during OTA flashes to make things faster, and then we rolled it back and restricted for only the latest build versions after getting some reports of problems flashing. We also are hearing reports that libraries included in the build IDE are sometimes getting dropped from the build, and need to be re-added, and we’re working on a fix for that.

Thanks,
David