Update to 0.7.0 goes wrong

Can someone tell me if the 6.2 bootloader is supposed to be used with the 6.3 firmware? I tried downgrading from 7.0 to 6.2 and the Photon went into and endless loop of trying to OTA part 1.

Yes it is.
If you don’t have to do it OTA, do it via USB.

However if you need to do it OTA, you still have to flash an application firmware targeted at your intended system version.

1 Like

Thanks @ScruffR. I was able to downgrade using your sequence.

1 Like

I am having problems on 1 out of 4 Photons after upgrading to 0.7.0. Here is my Particle serial inspect output:

    Platform: 6 - Photon
    Modules
      Bootloader module #0 - version 11, main location, 16384 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #1 - version 207, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #2 - version 207, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: FAIL
      System module #1 - version 207
      Bootloader module #0 - version 101
  User module #1 - version 5, main location, 131072 bytes max size
    UUID: 9CA359C6C689D7ADBFBADDB87FF350F3F065CCADFA53356D7CA40A0E8562C492
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #2 - version 207
  User module #1 - version 4, factory location, 131072 bytes max size
    UUID: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #2 - version 21

Notice the FAIL under System module #2/ Dependencies.

I have tried downgrading the to 0.6.3 then back up to 0.7.0. Tried Particle doctor. Any thoughts? Thx! :grin:

The bootloader version is obviously wrong.
So the easiest to get out of that should be to download the bootloader binary and apply it via

particle flash --serial <yourDownloadedBootloader.bin>
1 Like

That did it. I lined up the bootloader with this table and all is well again.

I’m still a little perplexed as to how this portion of the update didn’t get pushed to the Photon… All I did was Particle update.

Thank you Scruff!

1 Like

The most common problem is that when you do particle update to 0.7.0, the update is done in DFU mode (blinking yellow). The bootloader cannot be updated in DFU mode.

In versions prior to 0.7.0, the bootloader upgrade was inserted into one of the system parts. The problem is that in 0.7.0, on Photon and P1, there wasn’t enough space to do that.

The updating of the bootloader should be done using safe mode healer (blinking magenta) OTA if needed. However, if you get into a case where this is impossible, such as a device that does not have Wi-Fi configured yet, that’s where you most commonly run into problems. If you’re upgrading blank devices, you’ll probably have to manually upgrade the bootloader in --serial mode.

There might be other cases where you can get into trouble, but that’s the most common.

1 Like

Sad to see that this is still an issue with 0.8.11RC.
Uploading firmware from 0.6.2 to 0.8.11 from the Particle IDE. And running serial inspect still shows broken parts.

Platform: 6 - Photon
Modules
  Bootloader module #0 - version 11, main location, 16384 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #1 - version 207, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #2 - version 207, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: FAIL
      System module #1 - version 207
      Bootloader module #0 - version 101
  User module #1 - version 5, main location, 131072 bytes max size
    UUID: EE8C54C63B97B2F8E62AB9F6BF331401726EA19C3A046299CC3C57F7121A0938
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: FAIL
      System module #2 - version 310
  empty - factory location, 131072 bytes max size

After particle update (luckily I have physical access):

Platform: 6 - Photon
Modules
  Bootloader module #0 - version 101, main location, 16384 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #1 - version 207, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #2 - version 207, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #1 - version 207
      Bootloader module #0 - version 7
  User module #1 - version 5, main location, 131072 bytes max size
    UUID: EE8C54C63B97B2F8E62AB9F6BF331401726EA19C3A046299CC3C57F7121A0938
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: FAIL
      System module #2 - version 310
  empty - factory location, 131072 bytes max size

After particle flash --usb tinker

Platform: 6 - Photon
Modules
  Bootloader module #0 - version 101, main location, 16384 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #1 - version 207, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #2 - version 207, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #1 - version 207
      Bootloader module #0 - version 7
  User module #1 - version 2, main location, 131072 bytes max size
    UUID: 2BA4E71E840F596B812003882AAE7CA6496F1590CA4A049310AF76EAF11C943A
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #2 - version 1
  empty - factory location, 131072 bytes max size

Then particle serial identify to find out that it’s on version 0.7.0 (instead of the expected 0.8.11RC). However I understand that partly because it’s the stable release.

Then particle setup to try to connect my device to the cloud again.

  • Find out that I can’t get it on my WiFi anymore (although it was before).
  • Setup a hotspot and configure that WiFi network.

Yes I’m connected to the cloud again (although not with my original network, now resetting the router to see if that works).

If your original WiFi creds got corrupted (somehow), you can clear them via holding SETUP for 10+seconds (rapid blue flashing) and apply them again, to be on the safe side.

Exactly! particle update only applies the most recent stable version of the time the respective CLI version was installed.
Hence it's always good to also update CLI before using that command.

It’s strange. I did the SETUP for 10+ seconds and got the rapid blue flashing.

I’ve restarted my router/modem.
I’ve set the credentials with the cli.
I’ve set the credentials with the newest app.
I’ve did all the particle doctor steps (including setting WiFi again (which show up in the scan).

Check, check double checked my wi-fi password.
Again tried setting the credentials with the app.

I keep getting the fast green blink…

To test my Photon I configure it with my mobile hotspot WiFi credentials
and it connects directly.

As a final try I decide to revert to 0.6.3:

particle flash --usb system-part1-0.6.3-photon.bin
particle flash --usb system-part2-0.6.3-photon.bin

And yes it directly connects to my WiFi network!

I think there is clearly something wrong with 0.7.0. I’ve started this topic in April and now half a year later still nothing was done with it.

It’s getting really frustrating because I just want to spend this time prototyping cool stuff.

0.7.0 is already finished and whatever bug fixes are made, won't go back into an already locked version. If they were "back ported" then into something like 0.7.1 but if you want to check whether your error reports were dealt with, you should probably check 0.8.0-rc.11

I understand this. However in order to go from 0.6.3 I have to go over 0.7.0 still (with all the problems). I tried 0.8.0.-rc11 from the IDE (so device was 0.6.2) I targeted a new project towards to 0.8.0-rc11 and then I got this whole break-up. So I think the issue is still in 0.8.0-rc11 (because I ended up on 0.7.0 because of particle update, but that was already when I needed to target the device).

OTA firmware updates all fail since the 0.7.0 release in my case.

Is anyone still seeing this issue when upgrading to 1.0.0 with the Particle CLI?

If so, would you please summarize your update from -> to process and what happens. If you can report your particle serial inspect details before and after that would be also be helpful. Also is your Wi-Fi access point configured for 802.11n only mode? (this is a known issue on >=0.7.0 that n-only does not connect).

1 Like

Didn’t had time yet to update a device. Try to do it the upcoming week and will let you know.

1 Like

Unfortunately the problem still persists. Device on 0.6.3 and new code targeted at 1.0.0 to trigger a firmware update.

particle serial inspect before:

Platform: 6 - Photon
Modules
  Bootloader module #0 - version 11, main location, 16384 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #1 - version 109, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #2 - version 109, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #1 - version 109
  User module #1 - version 3, main location, 131072 bytes max size
    UUID: B3A6DCD529BE70FBE24EE959C7305D58E3BC9A04ACDCE8F093C7A1F759097D09
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #2 - version 6
  empty - factory location, 131072 bytes max size

Flash ’ Blink an LED’ app through the Web IDE targeted at Default OS 1.0.0.
It starts updating the Firmware (pink blinks) and ends with fast flashing green led, without connecting to the cloud.

Events:

Serial inspect after

Platform: 6 - Photon
Modules
  Bootloader module #0 - version 11, main location, 16384 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #1 - version 207, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #2 - version 207, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: FAIL
      System module #1 - version 207
      Bootloader module #0 - version 101
  User module #1 - version 5, main location, 131072 bytes max size
    UUID: 6FB4745487CAFA78BA88381B6B0C57FEFE819E9CFDE5AE8EA43E4C7261055BF8
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: FAIL
      System module #2 - version 1000
  empty - factory location, 131072 bytes max size

I have another device flashed offline to 1.0.0. However this one blinks as well green on my WiFi, however serial inspect doesn't show failures.

It works on my mobile hotspot though.

Also is your Wi-Fi access point configured for 802.11n only mode? (this is a known issue on >=0.7.0 that n-only does not connect).

I have the idea that my access point is indeed 802.11n only.

Does this mean that firmware > 0.6.3 doesn't work at n-only networks? I don't know if that is a smart business decision, because I've read my router advices to do this.

Why is n-only removed from the firmware?

Serial inspect after Flashing 1.0.0 offline.

Platform: 6 - Photon
Modules
  Bootloader module #0 - version 201, main location, 16384 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #1 - version 1000, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #2 - version 204
  System module #2 - version 1000, main location, 262144 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #1 - version 1000
      Bootloader module #0 - version 7
  User module #1 - version 3, main location, 131072 bytes max size
    UUID: B3A6DCD529BE70FBE24EE959C7305D58E3BC9A04ACDCE8F093C7A1F759097D09
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #2 - version 6
  empty - factory location, 131072 bytes max size

I'd think when they categorise it as issue that it's not a business decision but something that still is on their ToDo-list.

https://github.com/particle-iot/device-os/issues/1556
You may give this issue a nudge :wink:

BTW, that would explain your troubles with your updates - once the part that is responsible for the WiFi connection gets updated any following modules won't be received anymore due to the broken WiFi connection.

2 Likes

@kasper Thank you for testing again and highlighting this issue. We will fix this in a future Device OS release candidate.

2 Likes

Thanks all. Yes, I just checked and my modem is indeed set to n-only.

For anyone looking to test this fix in PR 1755, which will be included in Device OS 1.1.0-rc.2, I just compiled some binaries for Photon and P1 for y’all to try. This is compatible with 1.1.0-rc.1 compiled apps, or you can just use the included tinker binary. You shouldn’t need the bootloader, but just in case it’s part of the natural build process so I zipped it all up.
https://www.dropbox.com/s/07rusi7uwe262wd/particle_device-os%401.1.0-rc.1-pr-1755.zip?dl=0