[SOLVED] Strange Particle Dev experience

I was getting a new Electron ready for deployment (Dev environment). When I first powered it up and did a particle identify it reported 0.4.8. So, I updated it to 0.5.3 and then to 0.6.0 via the respective updater programs. Everything seemed normal. I confirmed system firmware via particle identify.

When I tried to compile the application, Dev kept complaining the target device was at a version earlier than 0.5.3 and it would not compile. I double and triple checked via particle identify and confirmed it was up to snuff. I then went ahead and updated the system firmware to 0.6.1. Unfortunately, the problem persisted. I finally got the problem to go away by pointing to another device and doing a compile (via Build) and was then able to re-select the desired target device and successfully do a compile. FWIW, my CLI is/was up to date.

Just reporting it here in case it’s of value to someone who may be experiencing the same phenom.

Here’s a screen shot of the error I was getting.

[update] So now I’m home and trying to compile in Dev (mis-stated as Build earlier) and I keep getting the following error:

I’ve been away for a couple of weeks. Did I miss some major changes?

Hmm… Can you try again? If you look at the Web IDE, does it report the correct system firmware for the electron?

So…I’m a bit red-faced, since I already experienced this same type of issue. However, the error really should be a lot more descriptive. I’m pretty sure the error is due to a Particle.variable() having an initial string that’s too long. What a waste of time. Yes, I posted about this issue previously, but forgot, as it’s so not obvious. Seriously, the compiler error should be way more descriptive. As it stands, the error message is worthless.

@kennethlimcp, thanks for reaching out!

I am curious. Did that fixed the issue?

I would love to have it fixed since it doesn’t reflect the actual problem.

Changing the length of the Particle.variable() string fixed the obscure compiler error. This does need addressed. I’ve implemented a couple dozen Particle devices with dozens of applications and whereas I fully accept the fact I have tons to learn, I’m not a complete newbie. I wasted hours making changes on my system before I finally noticed the long Particle.variable() string.

I still haven’t a clue as to why Particle Dev was complaining about the device being < 0.5.3 when it was actually 0.6.0, then 0.6.1, as confirmed via particle identify multiple times. I got it to “settle down” by compiling against another device and then going back to the original. It’s almost as if Dev remembered the device, as unpacked, was 0.4.8, in spite of the fact I quit and re-started Dev, logged out of my MacBook Pro and even finally rebooted. Very strange–a new one for me.

Quite honestly, the two issues are separate, but I was pulling my hair out when I ran into the second issue right on the heels of the first one. I apologize for dumping them together.

It’s back…

I have an Electron that was on 0.5.2. I used particle udpate to bring it up to 0.6.2. However, when I go into Particle Dev, it still sees it as 0.5.2 and will not let me compile it the application code against 0.5.3 or anything newer. I’ve tried restarting Particle Dev and I’ve confirmed via particle identify (image attached) that the device is at 0.6.2. The only way I’ve been able to get newer application firmware on this device is to compile it with another device selected that’s 0.5.3 or newer and then flash the resulting code to the desired device via the CLI. This is the second device I’ve seen with this issue and I believe they were both <0.5.3. Thoughts to eliminate this issue?

Sorry if I missed it, but what does particle list tell about the device?

The device is acting normal with the exception of trying to compile code for it. Here’s the output from particle list:

It looks exactly as it should

Now that I’ve successfully flashed new application code to it via the above procedure, the issue appears to have been resolved. However, there is some unresolved issue with the platform not recognizing the current version of system firmware on the device.

We had this issue with Web IDE for some time, but that was fixed a while back.
It seems as if Dev also clings on to an old state in cache for some reason.

Next time you see this check what the cloud knows about the device via
https://api.particle.io/v1/devices/<deviceID>?access_token=<accessToken>

But with the latest version of Dev you should even be able to select the target version for any device.

In Web IDE you could force an update of the state via flashing a dummy sketch targeting the alegedly current system OTA.
Maybe this helps with Dev too.

I saw where I could select the target version, but it would not let me select anything 0.5.3 or greater and do a compile (see red pop-up above). I now know how to work around the issue, but imagine others may run into this same dilemma. Assuming it happens again for me, I’ll try to remember your suggestion to check via the API call and see what it says. Thanks!

1 Like