I just got my Sparkcore (awesome!) but I am having trouble getting it up and running. I’ve managed to connect to wifi and my app claimed it for a brief moment before it started updating its firmware over the air.
So, for a while it was behaving as documented - flashing magenta - after a few minutes, it just went solid magenta… and it’s been in that state for last 10 mins or so.
What does it mean?
Can I power it down to avoid killing my Sparkcore? I think I’m going to do this right after…
Hey @visualdensity - when it goes solid magenta, it means it got stuck on a packet. You do unfortunately have to reset it when that happens (that’s a bug that we’re fixing, so that it recovers better from that state). However, don’t worry! You can reset during a stuck firmware update just fine, and in the absolute worst case if the firmware is corrupted, you can always do a factory reset.
Thanks for reporting the issue! The flashing magenta light means that your Core successfully connected to our servers, and was in the middle of auto-updating. The solid magenta light means that it dropped a packet during the update process, so it got stuck. We’re working to improve the reliability of the over-the-air updates so that this happens less frequently.
In order to resolve the issue, make sure you’re in good range of Wi-Fi, and press the “RST” reset button on the Core. With the USB power facing away from you, it’s the button on the right. Tapping it once should cause the Core to reconnect to your network and begin the auto-update process again. Try this a few times if it’s still having trouble completing the update. If you’re still having issues, be sure to let us know, and we can help you debug further.
Something unexpected just happened. I reconnected and it started doing the following:
flashing green (connecting)
brief breathing cyan (live)
flashing magenta
stopped ?! - the lights just went out. nothing.
I hit the reset button and it started reconnecting again. Now as I type, this - just got a solid magenta again. Going to reset a few more times and see how it goes…
@visualdensity How are you powering the Core? We’ve seen this behavior when it’s not getting enough power. I’d also recommend moving closer to your Wi-Fi router, if possible
That should be plenty, but just in case, could you try it with an external power adapter (like one of the little power bricks for an iPhone or android phone) and see if it behaves any differently?
A follow up on this item - I’ve put on a USB brick (1A output) and it yes, consistent with @iammerrick, it works. Phew! I’m now having fun with it. : )
Can you please provide us with the details on exactly how much power is required by the Sparkcore to reliably perform over-the-air update? This is because if we build devices that is powered by batteries, there’s a risk we can’t update it remotely.
Could it be connected with the USB power negotiation cycle?
Most computers don’t really care to limit the output current on the USB sockets, but maybe the Mac Book Pro does actually only provide 100mA unless being asked by the connected device to provide more than the guaranteed 100mA.
If so, this might mean for Spark to check if the Cores actually tell the truth about their max. power demands while negotiating that topic with the host.
Maybe the firmware update draws just a bit more than the standard use case and so, the negotiated power might suffice for standard use, but not for DFU.
I can’t test this theory - since I haven’t got my Cores, yet
But I have a Lenovo Thinkpad Tablet 2 that has a somewhat laughable USB port that would definetly fail if the Core would need any more than USB.org states as the bottom tolerance for max. current/voltage.
@ScruffR you’re on track with that but it seems from their support pages, Macbook Pro provides a supply of up to 500 mA and devices can request up to 900 mA - http://support.apple.com/kb/HT4049
When I checked the system’s profiler, I could see the USB detail had the following:
Current Available (mA): 500
Current Required (mA): 500
Hmm… still need to probe a little more to understand the Core a little better.
@visualdensity We will work to better classify the issue and debug it. It should be fine with 500mA (the max current draw during transmit is ~350mA), so we’re surprised as well to see that it sometimes doesn’t get enough power from a computer USB connection. For most people it does get enough power, and we haven’t quite figured out why it doesn’t work in some cases. We’ll report back when we have more information.
Just a note to say that I had this solid magenta issue and it persisted even on an external wall wart power supply. Sometimes I ended up with solid magenta and sometimes no lit led at all. Each reset caused the flashing to vary in length but eventually it did update. Took maybe 30 attempts though.
I guess it flashes for about 45 secs in order to complete the update. So worth persevering and try and keep your WiFi connection as strong as possible. It’s nicely robust in terms of just being able to reset and kick off the firmware update again - which is a credit to the developers.
Hey guys, just wanted to let everyone know that we have a firmware fix that should improve this behavior by requesting more power from the USB host. It’ll automatically be included when you re-flash with the web IDE; I’ll let you know when it’s been included. In case you’re interested, here’s the commit: