How to downgrade firmware

How can I downgrade firmware?

Can you narrow down the situation a bit more?

What device (Photon, Electron, etc.) and what version are you going from and to?

And over-the-air or USB?

Thank you @rickkas7

Photon. Wanting to go back to 0.7.0 from 0.8.0-rc.4. Using OTA.

@Jimmie, have you tried to search the forum for “downgrade”?
The essence is: “Download the system binaries and flash them in reverse order”.

But if you can I’d rather do it via USB.

1 Like

What ScruffR said.

Go to the release site and download:

Flash them in the reverse order using the CLI:

particle flash DEVICE_NAME_OR_ID system-part2-0.7.0-photon.bin
particle flash DEVICE_NAME_OR_ID system-part1-0.7.0-photon.bin

Note that you must flash part 2, then part 1 when downgrading.

3 Likes

I don’t know why this happens. I would like to downgrade.
I am also using 080 RC4.

I also find it strange that it talks about downgrading OTA in the Particle Updates thread.

Any possibility to also share how to downgrade the Boron Firmware from 1.1.0 back to 0.8.0-rc25 or 0.9.0?

The Particle documentation Firmware Upgrade shows only one file needed for Boron, while the electron/photon apparently need part 2 and then part 1 flashed in reverse order to perform a firmware downgrade. Does this look correct for a firmware downgrade? (particle flash --usb hybrid-0.8.0-rc.25-boron.bin)

Sadly, when I flash the old 0.8.0-rc25 firmware and then flash with tinker (particle flash --usb tinker-0.8.0-rc.25-boron.bin) in DFU mode, I get a red SOS with error code #10 Assertion LED Codes and no additional troubleshooting suggestions.

Why would I want to downgrade? I inserted a 3rd party SIM into a brand new Boron flashed with the recommended 3rd Party SIM method 3rd Party SIM , including flashing with the correct APN and then Tinker app and it worked with a nice Cyan pulse using a 3rd party SIM. :slight_smile:

I then performed a particle upgrade using (particle update) and the Boron OS upgraded to version 1.1.0 and then stayed green blinking and refuses to connect using a 3rd party SIM anymore. Now, I can’t seem to get the Boron back to firmware version 0.8.0 rc-25 to test if this is an issue with only 1.1.0 firmware. Thanks

As a side note, the SOS red led also gets triggered using the Particle embedded SIM with nice Cyan cloud connecting in OS 1.1.0 and then attempting to flash back to version 0.8.0-rc25

Same problem here.
Boron 3G (same result with LTE) currently running Device OS 1.1.0

Trying to flash Boron Cloud Debug as per https://github.com/rickkas7/boron-clouddebug and I get the SOS 10x RED.

Thought maybe because it needs to be in 0.9.0 so trying to downgrade ( system-part1-0.9.0-boron.bin ) and get the SOS 10x RED.

Restored back to 1.1.0 and flashed Tinker for Boron_0.9.0 ==> Breathing blue, connected, signal via Web IDE. GTG.

Again try to downgraded to 0.9.0… get the SOS 10x RED.

What to do next?

Thanks!

When OS v0.8.0.rc27 came out we were experiencing some SOS+10 faults which were caused by calling mesh functions without the mesh network being ready. Maybe this thread will help:

Can you run particle serial inspect (in Listening Mode)?

I can’t get the device into listening mode once it is flashing red SOS. Flashing the 1.1.0 Device OS and Tinker for 1.1.0 I can get in to listening mode but my computer does not recognize the device. It’s like it doesn’t exist. Work just fine in DFU mode… ???

Long story to say I can’t run particle serial inspect

Try putting the device in Safe Mode first (no need to wait for it to reach breathing magenta tho’), then start Listening Mode - that’s what we call Safe Listening Mode.

If you are on Windows check whether the device is listed in Device Manager.
If not, you need to deinstall the drivers and reinstall them.

Had to update the drivers. Thanks.

Output:

Platform: 13 - Boron
Modules
  Bootloader module #0 - version 301, main location, 49152 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #1 - version 1102, main location, 671744 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      Bootloader module #0 - version 201
  User module #1 - version 6, main location, 131072 bytes max size
    UUID: BF43E3551CEB38EAE8E3649AC37D224AB29490C86B9D80F3664659F9DF56A141
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #1 - version 1102

This is on Device OS 1.1.0

Trying to put the device in safe mode while SOS give me a super squirley looking fast blink of the RGB

How would you put the device into Safe Mode while SOSing?
To engage Safe Mode you press/hold RESET and SETUP then let go of RESET while still holding SETUP - there is no way an SOS could happen in between (unless some hardware issue).

That would better work with showing a video than verbally describing it :wink:

After attempting to flash

particle flash --usb system-part1-0.9.0-boron.bin 

I get the SOS.

Hitting reset/mode, let go reset until magenta, let go mode, I get a super fast flashing light green. After a little while (~30 sec) it goes back into SOS.

I’ve also tried

particle flash --usb hybrid-0.9.0-boron.bin

You should first downgrade the application firmware.
Your inspect log shows that the currently installed application requires 1.1.0 so the device would immediately try to update the system module to match that.

Try this

particle flash --usb tinker -v
particle flash --usb system-part1-0.9.0-boron.bin -v
particle flash --usb tinker -v

Just to make sure, your Boron is not connected to anything else but USB and also doesn’t sit in the anti-static sponge it came in, right?

Same result. SOS mode.

It is not connected to anything and not in the black sponge.

C:\Users\roger\Desktop>particle flash --usb tinker -v
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Opening DFU capable USB device...
ID 2b04:d00d
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x000d4000, size = 11412
Download        [=========================] 100%        11412 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!

Flash success!
C:\Users\roger\Desktop>particle flash --usb system-part1-0.9.0-boron.bin -v
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Opening DFU capable USB device...
ID 2b04:d00d
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x00030000, size = 661488
Download        [=========================] 100%       661488 bytes
Download done.
File downloaded successfully
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!

Flash success!

C:\Users\roger\Desktop>particle flash --usb tinker -v
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Opening DFU capable USB device...
ID 2b04:d00d
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x000d4000, size = 11412
Download        [=========================] 100%        11412 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!

Flash success!

You may have fallen victim to this issue (actually a PR)

You can try upgrading to 1.2.1-rc.2 which could help with subsequent downgrades too.

Download binaries from here

1 Like

Upgrade to 1.2.1-rc.2 then downgrade back to 0.9.0 then run Boron Cloud Debug worked!

I was avoiding the rc’s for my field deployed devices because the 1.1.0 was supposed to be stable…

Thanks @ScruffR

ps. Whats a PR?

1 Like