Particle Firmware Updates Thread


#50

##Firmware 0.5.4 release is out on the Web IDE for Core/Photon/P1/Electron
released on production servers September 28th, 2017

Note: This release is primarily for MFG. It is not necessary to upgrade to this version from 0.5.3 unless you would like the Firmware Reset feature, which is also available in >=0.6.0. Most devices are on >=0.6.2 with all platforms, so this is mostly a silent release. If you would like see the release, it is here: https://github.com/spark/firmware/releases/tag/v0.5.4


0.5.4 release vs 0.6.2
#51

Firmware 0.5.5 release is out on the Web IDE for Photon/P1/Electron. (None of the changes affect the Core.)

released on production servers November 7th, 2017

Note: This is a Release and may be used for production. It is available for all devices. To use, select the 0.5.5 version dropdown from the devices drawer.

ENHANCEMENTS

  • Downgrade bootloader when downgrading from 0.7.0 or newer. #1417

BUGFIXES


KRACK Patch ETA
Particle Tools Changelog
#52

Firmware 0.6.3 release is out on the Web IDE for Photon/P1/Electron. (None of the changes affect the Core.)

released on production servers November 7th, 2017

Note: This is a Release and may be used for production. It is available for all devices. To use, select the 0.6.3 version dropdown from the devices drawer.

image

ENHANCEMENTS

  • Downgrade bootloader when downgrading from 0.7.0 or newer. #1416

BUGFIXES


KRACK Patch ETA
Particle Tools Changelog
#53

Firmware 0.6.4 release is out on the Web IDE for Electron. (None of the changes affect the Core/P1 or Photon.)

released on production servers December 2nd, 2017

Note: This is a Release and may be used for production. It is available for all devices. To use, select the 0.6.4 version dropdown from the devices drawer.

image

BUGFIXES

  • Downgrade bootloader functionality in 0.6.3 would enter an infinite loop after flashing system part 1 0.7.0-rc.X using OTA/serial. particle flash --usb/DFU was not affected.

Remote Firmware Upgrade for Electron
#54

Firmware 0.7.0-rc.6 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

image

released on production servers December 12th, 2017

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

OTA or YModem transfer on Electron

  • update to 0.5.3 (if the current version is less than that)
  • then update to 0.6.4 if the current version is less than that)
  • then update to 0.7.0-rc.6.

Note that the upgrade sequences are only needed when updating with Over-the-Air updates or using YModem or particle flash --serial.

If you use DFU over USB (particle flash --usb), you can update to 0.7.0-rc.6 directly.

Note about Downgrading [Electron/Photon/P1] OTA or YModem transfer: You should downgrade to 0.6.4 to ensure that the bootloader downgrades automatically. When downgrading to other versions, you will have to manually downgrade the bootloader as well (see release notes in previous 0.7.0-rc.3 release)

0.7.0-rc.6 Changelog

BUGFIX

  • [Electron] Add dependency in system-part-1 on 0.6.4 system-part-3 to prevent upgrades from 0.6.3 or earlier to avoid incompatibilities with these releases.
  • The device ID is output in lowercase in DFU mode. #1432
  • increase the DTLS buffer from 768 to 800 bytes, so that the system describe message is sent.
  • remove rigid dependency check in bootloader that was causing DCT functions to not load in 0.8.0-rc.1 #1436

System Binaries (all devices)


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


#55

Firmware 0.8.0-rc.1 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

image

Upgrading via particle flash --usb or Web IDE (OTA)

No special steps are necessary to upgrade to this release.

Upgrading via particle flash --serial or particle flash <device-id>

When you use YModem or OTA updates to update the device by hand, it’s necessary to follow an upgrade sequence so that the upgrade is successful. If the sequence is not followed, the upgrade will not happen and the version of system firmware will remain unchanged.

Electron

  • first, update to 0.5.3 (if the current version is less than that)
  • then update to 0.6.4 if the current version is less than that)
  • then update to this release, 0.8.0-rc.1.

Photon/P1

  • first, update to 0.7.0-rc.6 first
  • then update to this release, 0.8.0-rc.1

Note about Downgrading [Electron/Photon/P1] OTA or YModem transfer: You should downgrade to 0.6.4 to ensure that the bootloader downgrades automatically. When downgrading to other versions, you will have to manually downgrade the bootloader as well (see release notes in previous 0.7.0-rc.3 release)

0.8.0-rc.1 Changelog

FEATURES

  • Low-latency interrupt handlers [#1394] (https://github.com/spark/firmware/pull/1394)
  • [Electron] Reworked power management #1412
  • Battery State diagnostics #1398
  • Battery charge diagnostics #1395
  • RAM usage diagnostic sources data #1411
  • Network Signal Quality/Strength rework and diagnostics #1423
  • System uptime diagnoatics #1393
  • Diagnostics for unacked messages and rate limited events #1391
  • Network and Cloud diagnostics #1424
  • Diagnostics service #1390

ENHANCEMENTS

  • [Photon/P1] Wi-FI firmware compression #1421
  • [Photon/P1] Moves Wi-Fi tester into application module #1378

BUGFIXES

  • Cloud random seed not working #1312
  • [Electron] Error handling in the data usage API #1435

System Binaries (all devices)

Available on the GitHub release page



Photon - Firmware After 0.6.3?
TlsTcpClient library 0.2.6 update
Particle Tools Changelog
#56

Firmware 0.7.0-rc.7 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

image

released on production servers February 7th, 2018

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

OTA or YModem transfer on Electron

  • update to 0.5.3 (if the current version is less than that)
  • then update to 0.6.4 if the current version is less than that)
  • then update to 0.7.0-rc.7.

Note that the upgrade sequences are only needed when updating with Over-the-Air updates or using YModem particle flash --serial.

If you use DFU over USB (particle flash --usb), you can update to 0.7.0-rc.7 directly.

P1/Photon Bootloader

The cloud will automatically update the bootloader on P1/Photon devices. If your device does not connect to the cloud, you should flash the bootloader to the device using particle flash --serial. This should be done after upgrading system firmware.

Note about Downgrading [Electron/Photon/P1] OTA or YModem transfer: You should downgrade to 0.6.4 to ensure that the bootloader downgrades automatically. When downgrading to other versions, you will have to manually downgrade the bootloader as well (see release notes in previous 0.7.0-rc.3 release)

0.7.0-rc.7 Changelog

BUGFIX

  • [Photon] Regression with SoftAP and URL-encoded form query #1432
  • Particle.connect() hard blocking since 0.6.1-rc.1 #1399
  • [Electron] Cellular resolve does not return 0 / false when it receives bad DNS resolution related to bad cell service #1304
  • [Core] Use the device ID as the USB serial number #1367
  • [Electron] Fix heap bounds for system part 1 #1478
  • [Electron] connect_cancel() fix #1464
  • Fixed shadowing of write(const unint_8_t*, sizte_t) in USBKeyboard #1372

Photon stuck in safe mode while upgrading to 0.7.0
Particle Tools Changelog
#57

Firmware 0.8.0-rc.2 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

image

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Upgrading via particle flash --usb or Web IDE (OTA)

No special steps are necessary to upgrade to this release. When using the command-line, simply run the update commands in the correct order, updating system-part1, then system-part2 etc.

From the WebIDE, select the version of system firmware in the devices drawer for your selected device and flash an app to the device. The system firmware will be updated automatically.

Note: P1/Photon: the bootloader must be upgraded using either Serial or OTA update.

Upgrading via particle flash --serial or particle flash <device-id>

When you use YModem or OTA updates to update the device by hand, it’s necessary to follow an upgrade sequence so that the upgrade is successful. If the sequence is not followed, the upgrade will not happen and the version of system firmware will remain unchanged.

Electron

  • first, update to 0.5.3 (if the current version is less than that)
  • then update to 0.6.4 if the current version is less than that)
  • then update to this release, 0.8.0-rc.1.

Photon/P1

  • first, update to 0.7.0-rc.6 first
  • then update to this release, 0.8.0-rc.1

Note about Downgrading [Electron/Photon/P1] OTA or YModem transfer: You should downgrade to 0.6.4 to ensure that the bootloader downgrades automatically. When downgrading to other versions, you will have to manually downgrade the bootloader as well (see release notes in previous 0.7.0-rc.3 release)

0.8.0-rc.2 Changelog

FEATURES

  • USB request handlers #1444
  • Out of heap system event and heap fragmentation detection #1452
  • Network and cloud diagnostics #1424
  • [Photon/P1] TCPClient: non-blocking, blocking, blocking with timeout writes support #1485
  • [Electron] adds UPSV handling to cellular_hal #1480

ENHANCEMENTS

  • Serialize access to the CRC peripheral (STM32F2xx) #1465
  • System.sleep() wake up reason #1410
  • System.sleep(): support for multiple wake up pins #1405
  • Disable WKP pin waking device up from SLEEP_MODE_DEEP #1409
  • [Photon/P1] Increase maximum supported number of simultaneously active TCP connections #1350
  • [Photon/P1] WiFi.dnsServerIP()/WiFi.dhcpServerIP() support #1386
  • Generalize FuelGauge to also use alternative I2C interfaces. #1443
  • Firmware update and access to internal flash via USB requests #1456
  • Added docs on local build setup #1374
  • Use ‘using std::**’ instead of define * std::* #1258
  • Only remake $(TARGET_BASE).elf el al. if necessary #1223

BUGFIXES

  • [Electron] Fix heap bounds build for system part1 #1478
  • [Electron] Guard cellular_command() with a global lock #1415
  • [Electron] Fix caching of the description CRCs in the backup RAM #1413
  • [Electron] connect_cancel() fix #1464
  • [Electron] DCD fixes #1454
  • [Electron] moves some newlib functions into part1 #1471
  • [Core] Fixes I2C slave mode #1309
  • [Virtual] Fixes virtual device running with UDP protocol #1462
  • Fix usage of an incorrect prerequisite name in program-* targets #1463
  • Fixed shadowing of write(const unint_8_t*, sizte_t) in USBKeyboard #1372

INTERNAL

  • Fixes some 0.8.0-rc.2 tests #1476
  • fixes the unit test build #1474
  • IS_CLAIMED request fixes #1472
  • Documents low level USB request completion notifications #1475
  • [Electron] Flash size optimizations #1469
  • Minor refactoring of the USB protocol implementation #1473

System and bootloader binaries


Help choosing correct SLEEP mode w/ Asset Tracker v2
Was 0.7.0 ever released?
How to tell deep sleep wake up reason between rising signal on wake up pin and RTC clock time out?
#58

Firmware 0.7.0 release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers March 26th, 2018

Note: This is a Release and may be used for production. Any known issues are likely slated for 0.8.0-rc.3 (check Github issues). It is available by default for all devices. To use, select the 0.7.0 version dropdown from the devices drawer. Downgrading back to a previous release info is at the bottom of this post.

Note: If you have previously last used one of the prerelease versions of 0.7.0 on a Core/Photon/P1 device, please re-flash it with 0.7.0. You must upgrade (locally preferred) the Electron system firmware to 0.7.0 first before you can OTA new user apps.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.3 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0.

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.7.0 directly, but make sure you have installed v1.30.0 of the CLI (check with particle --version) then run particle update.

Note: P1/Photon Bootloader
The cloud will automatically update the bootloader on P1/Photon devices. If your device does not connect to the cloud, you should flash the bootloader to the device using particle flash --serial. This should be done after upgrading system firmware.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.6.3(Photon/P1), 0.6.4(Electron) first, then to an older version such as 0.5.3. You will have to manually downgrade the bootloader as well (see release notes in previous 0.7.0-rc.3 release)

070

0.7.0 (see additional changelog 0.7.0-rc.1 ~ 0.7.0-rc.7)

BUGFIX

  • [Photon/Electron] WKP pin needs to be disabled as a wakeup source on boot to allow its normal operation #1496

0.7.0-rc.7 Changelog
0.7.0-rc.6 Changelog
0.7.0-rc.5 Changelog
0.7.0-rc.4 Changelog
0.7.0-rc.3 Changelog
0.7.0-rc.2 Changelog
0.7.0-rc.1 Changelog


System Binaries (all devices) & Device Upgrader (Photon & Electron)

https://github.com/particle-iot/firmware/releases/tag/v0.7.0


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Update to 0.7.0 goes wrong
0.7.0 Release Changelog, Please?
Photon stuck in safe mode while upgrading to 0.7.0
Particle Tools Changelog
Upgraded to 0.7.0, WiFi does not come on in SEMI_AUTOMATIC mode
#59

Hello Friends!

Just a quick update that firmware repo branches release/stable and master have been updated to point to release/v0.7.0

You can update your local versions with either of these commands:

git checkout release/stable && git pull
git checkout master && git pull

If you have any trouble with this, please reference this previous post Particle Firmware Updates Thread


#60

Firmware 0.8.0-rc.3 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers April 10th, 2018

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 0.8.0-rc.3

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.8.0-rc.3 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

080rc3

0.8.0-rc.3 Changelog

ENHANCEMENTS

  • [Photon/P1] A number of networking-related fixes v2 #1500
  • [Photon/P1] Enables support for SHA384/SHA512 certificates for WPA Enterprise #1501

BUGFIXES

  • [Photon/P1] A number of networking-related fixes #1492
  • [Photon/P1] A number of networking-related fixes v2 #1500
  • [Photon/Electron] WKP pin needs to be disabled as a wakeup source on boot to allow its normal operation #1496
  • [Photon/P1/Electron] Recursive logging freezes the application thread while the LogHandler is trying to acquire a lock on the resource #1517

System Binaries (all devices)

https://github.com/particle-iot/firmware/releases/tag/v0.8.0-rc.3


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


PaperTrail for electron
New library - Papertrail
Help!? UDP send in LogHandler hangs electron w/ 0.6.1
Particle Tools Changelog
#61

Firmware 0.8.0-rc.4 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers May 4th, 2018

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 0.8.0-rc.4

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.8.0-rc.4 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

080rc4

0.8.0-rc.4

ENHANCEMENTS

  • [Electron/Photon/P1] Increase Device OS API argument lengths. More data in Functions, Variables, Publish, Subscribe… oh my! #1537

BUGFIXES

  • [Electron] Particle.keepAlive() API was broken since v0.6.2-rc.2 firmware on Electron where the System would override an early set User ping interval. This required a workaround of updating the keepAlive after the System made a connection to the Cloud. See issue #1482 for workaround. #1536
  • [Electron] Fixes missing URCs for received data during TX or RX socket operations. This caused the modem not to be able to receive further data properly until it re-connected to the Cloud which it would do automatically but usually after a short or longer period of time. #1530

System Binaries (all devices)

https://github.com/particle-iot/firmware/releases/tag/v0.8.0-rc.4


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Particle Tools Changelog
Connect and add new wifi via Particle.function
How to downgrade firmware
#62

Firmware 0.8.0-rc.8 Pre-release for Core/Photon/P1/Electron

released on production servers June 26th, 2018

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is primarily a MFG. release for SARA-R410 LTE modules. The changes do touch code used on other Electron based platforms, but no other features or fixes are relevant for U260, U270, U201, or G350 modems. This code has been tested on-device for all mentioned modem types with passing results. Please let us know if you find any issues. That said, this is a release candidate for 0.8.0 default so please do test on your systems.

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 0.8.0-rc.8

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.8.0-rc.8 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

0.8.0-rc.8

Note: This is primarily a MFG. release for SARA-R410 LTE modules. The changes do touch code used on other Electron based platforms, but no other features or fixes are relevant for U260, U270, U201, or G350 modems. This code has been tested on-device for all mentioned modem types with passing results. Please let us know if you find any issues.

BUGFIXES

  • [Electron] Disables 30 second ping for Kore SIMs on SARA_R410 (default 23 minute ping re-applied)

System Binaries (all devices)

https://github.com/particle-iot/firmware/releases/tag/v0.8.0-rc.8


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


How to read firmware improvements from Electron 6.4 to 7.0
How to read firmware improvements from Electron 6.4 to 7.0
Particle Tools Changelog
#63

Firmware 0.8.0-rc.9 Pre-release for Core/Photon/P1/Electron

released on July 30th, 2018

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a release candidate for 0.8.0 default so please do test on your systems.

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 0.8.0-rc.9

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.8.0-rc.9 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

0.8.0-rc.9

BUGFIXES

  • [Electron/LTE] Fast OTA Fixes #1558

System Binaries (all devices)

https://github.com/particle-iot/firmware/releases/tag/v0.8.0-rc.9


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Particle Tools Changelog
#64

Firmware 0.8.0-rc.10 Pre-release for Core/Photon/P1/Electron

released on August 17th, 2018

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a release candidate for 0.8.0 default so please do test on your systems.

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 0.8.0-rc.10

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.8.0-rc.10 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

0.8.0-rc.10

BUGFIXES

  • [Electron/LTE] eDRX & Power Saving mode disabled by default #1567

System Binaries (all devices)

https://github.com/particle-iot/firmware/releases/tag/v0.8.0-rc.10


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Particle Tools Changelog
#65

Firmware 0.8.0-rc.11 Pre-release for Core/Photon/P1/Electron

released on September 29th, 2018

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a release candidate for 0.8.0 default so please do test on your systems.

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 0.8.0-rc.10

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.8.0-rc.11 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

0.8.0-rc.11

ENHANCEMENTS

  • [Electron/Photon/P1] Do not check and lock bootloader sector write protection on every boot [ch17416] #1578

BUGFIXES

  • [Electron/LTE] adds 1 retry for UDP/TCP socket send in case of error [ch18789] #1576
  • [Electron/Photon/P1] Fixes recursive semaphore lock timeout [ch21928] #1577

System Binaries (all devices)

https://github.com/particle-iot/firmware/releases/tag/v0.8.0-rc.11


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Putting back in box (update: took back out of box...)
Particle Tools Changelog
#66

Firmware 0.8.0-rc.12 Pre-release for Core/Photon/P1/Electron

released on December 20th, 2018 :santa: :mrs_claus:

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a release candidate for 0.8.0 default so please do test on your systems.

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 0.8.0-rc.12

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.8.0-rc.12 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

0.8.0-rc.12

ENHANCEMENTS

  • [Electron/Photon/P1] Cache persistent feature flags (#1640)
  • [Photon/P1] Memory usage optimizations (#1635)

BUGFIXES

  • [Electron/Photon/P1] Fixes SOS in 0.8.0-rc.11 and also ensures button and OOM events are handled synchronously. Previously in multi-threaded applications the button handling may have been delayed to run within the application thread. Now it is always handled immediately and should be noted that it is called from an ISR, so it is not advised to dynamically allocate memory in button event handlers. (#1600) (#1650)
  • [Electron/Photon/P1] Do not disable interrupts on every system loop iteration (#1622)
  • [Electron/Photon/P1] Wait for Wiring Thread to start (#1528)
  • [Electron/LTE] Power Manager Watchdog Timer Fix (#1581)
  • [Electron/LTE] AT+CNUM command causing registration failure on LTE devices (#1627)
  • [Electron] PMIC::getInputCurrentLimit() cannot report values higher than 900mA (#1581)
  • [Electron] Do not set the sticky skip hello after handshake (#1624)
  • [Photon/P1] Invalidate sockets when turning WiFi off (#1639)

System Binaries (all devices)

https://github.com/particle-iot/firmware/releases/tag/v0.8.0-rc.12


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Particle Tools Changelog
#67

Firmware 0.8.0-rc.14 Pre-release for Core/Photon/P1/Electron

released on January 4th, 2019

:pencil: Please read all notes in the Notes Festival :tada: below

Note: This is a release candidate for 0.8.0 default so please do test on your systems.

Note: This is a pre-release and is not intended for production yet. We’ve tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it’s available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 0.8.0-rc.14

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.8.0-rc.14 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

0.8.0-rc.14

BUGFIXES

  • [Electron/LTE] Fixes unique stale socket issue with LTE devices (#1666)

System Binaries (all devices)

https://github.com/particle-iot/firmware/releases/tag/v0.8.0-rc.14


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Particle Tools Changelog
#68

Firmware 1.0.0 release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers January 10th, 2019

:pencil2: Please read all notes below :bowtie:

Note: This is a Release and may be used for production. Any known issues are likely slated for 1.0.1-rc.1 (check Github issues). It is available by default for all devices. To use, select the 1.0.0 version dropdown from the devices drawer.
Downgrading back to a previous release info is at the bottom of this post.

Note: If you have previously last used one of the prerelease versions of 0.8.0-rc.x on a Core/Photon/P1 device, please re-flash it with 1.0.0.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.0.0

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.0.0 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

1.0.0

BREAKING CHANGES

  • Beginning with 1.0.0 release, Particle.publish() and Particle.subscribe() methods will require event scope to be specified explicitly. This means using PRIVATE or PUBLIC for Particle.publish() and MY_DEVICES or ALL_DEVICES for Particle.subscribe(). Please update your apps to include the event scope to avoid compilation errors in firmware >0.7.0. Deprecation warnings for this change began with 0.7.0-rc.3. #1365
  • [Core/Photon/P1] WiFi.RSSI() must be cast to int8_t when used inline with Serial.print() to produce correct results. E.g. Serial.printlnf("%d", (int8_t) WiFi.RSSI() ); Electron is not affected. #1423

FEATURES

  • Diagnostics service #1390
  • Network and Cloud diagnostics #1424
  • Diagnostics for unacked messages and rate limited events #1391
  • System uptime diagnoatics #1393
  • Network Signal Quality/Strength rework and diagnostics #1423
  • RAM usage diagnostic sources data #1411
  • Battery charge diagnostics #1395
  • Battery State diagnostics #1398
  • [Electron] Reworked power management #1412
  • Low-latency interrupt handlers #1394
  • [Electron] adds UPSV handling to cellular_hal #1480
  • [Photon/P1] TCPClient: non-blocking, blocking, blocking with timeout writes support #1485
  • Network and cloud diagnostics #1424
  • Out of heap system event and heap fragmentation detection #1452
  • USB request handlers #1444

ENHANCEMENTS

  • [Photon/P1] Moves Wi-Fi tester into application module #1378
  • [Photon/P1] Wi-FI firmware compression #1421
  • Only remake $(TARGET_BASE).elf el al. if necessary #1223
  • Use ‘using std::**’ instead of define * std::* #1258
  • Added docs on local build setup #1374
  • Firmware update and access to internal flash via USB requests #1456
  • Generalize FuelGauge to also use alternative I2C interfaces. #1443
  • [Photon/P1] WiFi.dnsServerIP()/WiFi.dhcpServerIP() support #1386
  • [Photon/P1] Increase maximum supported number of simultaneously active TCP connections #1350
  • Disable WKP pin waking device up from SLEEP_MODE_DEEP #1409
  • System.sleep(): support for multiple wake up pins #1405
  • System.sleep() wake up reason #1410
  • Serialize access to the CRC peripheral (STM32F2xx) #1465
  • [Photon/P1] Enables support for SHA384/SHA512 certificates for WPA Enterprise #1501
  • [Photon/P1] A number of networking-related fixes v2 #1500
  • [Electron/Photon/P1] Increase Device OS API argument lengths. More data in Functions, Variables, Publish, Subscribe… oh my! #1537
  • [Electron] Adds support for SARA-R410 to the Cellular HAL #1532
  • [Electron/Photon/P1] Do not check and lock bootloader sector write protection on every boot [ch17416] #1578
  • [Photon/P1] Memory usage optimizations (#1635)
  • [Electron/Photon/P1] Cache persistent feature flags (#1640)

BUGFIXES

  • [Electron] Error handling in the data usage API #1435
  • Cloud random seed not working #1312
  • Fixed shadowing of write(const unint_8_t*, sizte_t) in USBKeyboard #1372
  • Fix usage of an incorrect prerequisite name in program-* targets #1463
  • [Virtual] Fixes virtual device running with UDP protocol #1462
  • [Core] Fixes I2C slave mode #1309
  • [Electron] moves some newlib functions into part1 #1471
  • [Electron] DCD fixes #1454
  • [Electron] connect_cancel() fix #1464
  • [Electron] Fix caching of the description CRCs in the backup RAM #1413
  • [Electron] Guard cellular_command() with a global lock #1415
  • [Electron] Fix heap bounds build for system part1 #1478
  • [Photon/P1/Electron] Recursive logging freezes the application thread while the LogHandler is trying to acquire a lock on the resource #1517
  • [Photon/Electron] WKP pin needs to be disabled as a wakeup source on boot to allow its normal operation #1496
  • [Photon/P1] A number of networking-related fixes v2 #1500
  • [Photon/P1] A number of networking-related fixes #1492
  • [Electron] Fixes missing URCs for received data during TX or RX socket operations. This caused the modem not to be able to receive further data properly until it re-connected to the Cloud which it would do automatically but usually after a short or longer period of time. #1530
  • [Electron] Particle.keepAlive() API was broken since v0.6.2-rc.2 firmware on Electron where the System would override an early set User ping interval. This required a workaround of updating the keepAlive after the System made a connection to the Cloud. See issue #1482 for workaround. #1536
  • [Electron] Bug fixes for SARA-R410 LTE E Series #1547
  • [Electron] Disables 30 second ping for Kore SIMs on SARA_R410 (default 23 minute ping re-applied)
  • [Electron/LTE] Fast OTA Fixes #1558
  • [Electron/LTE] eDRX & Power Saving mode disabled by default #1567
  • [Electron/Photon/P1] Fixes recursive semaphore lock timeout [ch21928] #1577
  • [Electron/LTE] adds 1 retry for UDP/TCP socket send in case of error [ch18789] #1576
  • [Photon/P1] Invalidate sockets when turning WiFi off (#1639)
  • [Electron] Do not set the sticky skip hello after handshake (#1624)
  • [Electron] PMIC::getInputCurrentLimit() cannot report values higher than 900mA (#1581)
  • [Electron/LTE] AT+CNUM command causing registration failure on LTE devices (#1627)
  • [Electron/LTE] Power Manager Watchdog Timer Fix (#1581)
  • [Electron/Photon/P1] Wait for Wiring Thread to start (#1528)
  • [Electron/Photon/P1] Do not disable interrupts on every system loop iteration (#1622)
  • [Electron/Photon/P1] Fixes SOS in 0.8.0-rc.11 and also ensures button and OOM events are handled synchronously. Previously in multi-threaded applications the button handling may have been delayed to run within the application thread. Now it is always handled immediately and should be noted that it is called from an ISR, so it is not advised to dynamically allocate memory in button event handlers. (#1600) (#1650)
  • [Electron/LTE] Fixes unique stale socket issue with LTE devices (#1666)

INTERNAL

  • Minor refactoring of the USB protocol implementation #1473
  • [Electron] Flash size optimizations #1469
  • Documents low level USB request completion notifications #1475
  • IS_CLAIMED request fixes #1472
  • fixes the unit test build #1474
  • Fixes some 0.8.0-rc.2 tests #1476
  • [Electron] fixes sticker-rig issue with POWER_ON command #1544
  • [Electron] Fixes monolithic build #1543

System Binaries (all devices) & Device Upgrader (Photon & Electron)

https://github.com/particle-iot/firmware/releases/tag/v1.0.0


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Issues with cloud connection in 1.0.0
Po-util: The Ultimate Local Particle Experience for Linux and macOS
Particle Tools Changelog
#69

Hi friends!

We just updated release/stable and master branches of the device-os repo to be current with release/v1.0.0.

Because we had to force push these changes, you’ll likely have merge conflicts if you git pull the latest changes for those branches. Because of this you will need to hard reset your local copy of each branch to match the remote.

:warning: Before doing this, make sure you save any changes you have been making in your local copy of release/stable or master (hopefully you are not doing that though and using a feature/branch based on these :wink: )

Hard Reset release/stable

git checkout release/stable && git fetch origin && git reset --hard origin/release/stable

Hard Reset master

git checkout master && git fetch origin && git reset --hard origin/master

You should now be sync’d up again with the most recent release/stable and master

Rename the repo to device-os

We also renamed the repo from firmware to device-os and you may update your local clone as follows:

git remote set-url origin git@github.com:particle-iot/device-os.git

Read more about 1.0.0 on our blog

Announcing Device OS 1.0 and Release Guidelines for Product Creators