How to downgrade a Particle Photon's Device OS version?

I’m trying to downgrade my Photon 0.5.5. I found the documentation on as well as the releases page, but I can’t find a bootloader file to flash. All I see is system-part1-0.5.5-photon.bin and system-part2-0.5.5-photon.bin. I flashed both with particle flash --usb system-part1-0.5.5-photon.bin and particle flash --usb system-part2-0.5.5-photon.bin, but the device kept blinking yellow, meaning it was still in DFU mode. If someone could tell me what I’m doing incorrectly or missing I’d really appreciate it.

The Photon bootloader for very old Device OS can be dowloaded here. When upgrading you don’t need it because it’s also embedded in one of the system parts but you might need it for downgrade.

Also, flashing system parts won’t ever exit DFU mode. It’s only flashing the user part that exits DFU, so you need to

particle flash --usb tinker

The bootloader cannot be flashed in DFU mode, so you need to let the device boot, put it in listening mode (blinking dark blue) by holding down SETUP, then:

particle flash --serial bootloader-photon.bin

It may be helpful to do the following in listening mode to make sure everything was flashed properly:

particle serial inspect

Okay, here’s what I did:
I put the device in DFU mode and then ran:
$ particle flash --usb system-part1-0.5.5-photon.bin
$ particle flash --usb system-part2-0.5.5-photon.bin
$ particle flash --usb tinker

The device then booted up and connected to my Wi-Fi network as it should.
I then put the device in listening mode (blinking dark blue as you said). Then I ran:
$ particle flash --serial bootloader-photon.bin

I ran $ particle serial inspect and the device had no issues.
I then pressed the reset button so the device would boot up again, which it did.
I then ran $ sudo dfu-util -d 2b04:d006 -a 0 -s 0x08020000 -D nuttx.bin, but it just kept blinking yellow, meaning it never left DFU mode and booted up. Pressing the reset button just caused both the status and D7 LED to go dark.

The device won’t reset when you use the DFU command to flash nuttx.bin, you’d need to manually reset the device, so that’s expected.

And are you sure nuttx isn’t running? Since it would need to manually control the status LED, it very well may not do that. And D7 doing off is a good sign. When the bootloader is running, the status LED is on dimly. It going off indicates that the bootloader exited and it probably jumped to the nuttx code.

Can you telnet/nc to it like the example?

I scanned my network and the device didn’t appear. It does when it’s running Tinker, but not after I’ve run the commands I posted.