I’m sorry your experience has been frustrating! I was the engineer who built the auto-update system into the IDE, and I’m disappointed it’s been causing you grief.
Your photon breathing magenta (red and blue LEDs), means that it’s online, and in “safe mode”, which means it’s trying to run your app, but it’s missing a requirement to run it. Flashing the app again from the IDE should cause the cloud to send the necessary updates to run the app. Your device is very much not bricked, it just wants you to click ‘flash’ again.
I chose this path because I wanted to make sure the community had maximum control over the process, and that it was as opt-in as possible, but that also means it has the potential to be slightly less convenient. I’d welcome any feedback or suggestions you might have, please feel free to private message me directly if you like, or if I can help get your devices back on track.
I am experiencing problems for updating all of the photons I flashed OTA since last Friday (since the update). None of them can run any program anymore. I could have one working again by updating it via usb and dfu. But I have several devices that I gave to testers, and I cannot get them to connect via usb. How am I supposed to do to update them, or just get them working again ?
Sorry you’re having problems with the 0.4.4 update. Please send a PM to me and @Dave with the device IDs of the affected Photons and we’ll look into the issue for you.
Please try flashing a different app from Particle Build (Web IDE) - that is the process that starts the update process. The update is in 3 parts - normally they are all delivered after flashing the app once, but in some cases it’s been necessary to repeat the flash process.
The main attraction with the 0.4.6 release on the photon is the introduction of multithreading, specifically that the system code runs on it’s own thread so the application loop runs freely.
To get a feel for how your application runs with the system thread enabled, you can try a simple blinky sketch:
You’ll notice that the LED blinks from quite early on in startup, through the device connecting to WiFi, connecting to the Cloud. If you flash data OTA, you’ll see also that the LED keeps blinking right up until the device has to reset to apply the OTA update. Exciting stuff!
The system thread feature is a Beta release - feedback, questions etc… very welcomed so we can refine this and push it towards a full release in 0.4.7.
Memory leaks have been tested for, but certainly there will be less RAM until we tune the system more rigorously and there is the possibility of crashes, particularly when entering/existing listening mode, or with code interacting in ways that couldn’t happen before.
All of this only when SYSTEM_THREAD(ENABLED) is added - without system threading the firmware is intended to be at least as stable as 0.4.5, if not more so due to the various fixes added.
It’s funny you mention this blinky example, I have a similar piece of code in an IRQ that responds to the magnetic reed switch in an anemometer - this code blinked (flipped the state of) the LED in 0.4.5, but does not blink the LED at all in 0.4.6:
int BLINK = D7;
void wirq()
{
# other logic to increment a value here
digitalWrite(BLINK, (digitalRead(BLINK) == HIGH? LOW : HIGH));
}
I haven’t put much time into trying to figure out why, but I will probably try your way of writing it (as it’s easier to read anyway). I didn’t know that HIGH and LOW are actually synonyms for true/false
I just tried blocking Wi-Fi by removing my external antenna on my u.FL only photon (chip ant removed), and then covered my hands around it to completely weaken the RF it sees… it would blink CYAN for a bit, then drop back to blinking GREEN. When I reconnect my external antenna the connection is restored very quickly. Best part is watching that D7 LED blink steadily the entire time
I’ll try actually switching off my Internet connection in my router in a little bit and see if there’s any difference.
Does this SOS happen with threading disabled? If I can request that everyone who finds a problem also checks with threading disabled that will help us a lot in narrowing down the problem.