Safe mode healer is released!

Hi All!

I wanted to mention an exciting new feature that’s been in the works for a while now.

When updating modular firmware on your photon or p1, you may have noticed that sometimes you wind up in safe-mode. This is because the app you flashed was built against new modules, and your device still has the older modules. We heard your frustration (and experienced it ourselves), so we wanted to do whatever we could to avoid needing to be in safe mode.

You may have noticed since yesterday that it’s pretty hard to stay in safe-mode because of missing modules! The cloud will now automatically try to determine if your photon / p1 is in safe-mode because of a missing system-part your app needs, and will flash the missing part automatically!

Right now it’s just enabled for the photon, but we’ll be enabling it for the p1, and product creators will be able to control this setting for their products. We’re going to not turn it on for the electron automatically for now because we want to be extremely careful with your bandwidth. Anyone will also have the ability to opt in / opt out of this.

If you’re building a custom board or have custom firmware you want built for your product in the cloud, we can also make sure safe-mode healer works with that too, just let us know! :slight_smile:



I just asked for this yesterday in a related post, and here it is. Kizmet! I think I know the answer, but will this work with personal cloud? In other words, will the CLI say, “Hey, I see a photon attached to your server that is missing [module] and is in safe mode.”? Could we do this?

Hi @jgeist,

That’s a good question! Right now safe-mode healer requires a number of different services all running in tandem with the build farm, so it would be difficult to reproduce this on the local cloud. However I’ve been thinking a lot about the future of the local cloud, and I think this could be something it supports later after some upgrades. :slight_smile:


+1 for the future of local cloud. It’s been too long… :weary:

It’s always us few folks nipping away on spark-server issues, isn’t it? :stuck_out_tongue:

Always hopeful for good things to come though. The previous OTA Photon fix for local cloud was one great example of that. We’ll continue to post requests and report issues on github!

Back on the topic of safe mode healing – automatically handling system-part updates on spark-server will be awesome. I see why it’s difficult, especially seeing that we might have custom system-parts being deployed, and having to manage that along with user firmware built against specific system-parts.

Perhaps there can a ‘firmware’ folder where custom system-parts and user firmware can be uploaded to, and spark-server can poll each device for their system+user firmware versions and OTA’ing what’s changed to each device. A JSON file can then be used to sync the local fleet with required versions – we can serve a simple JS UI on the server to manage our fleet that maintains this JSON file, giving us full control over what to OTA.

I sound like I’m going off-course, so I’ll post this on spark-server's github later on!

1 Like

Because we wish to understand it, to grok it . . . we enjoy that pursuit.