Particle Device OS Updates Thread

Device OS 1.4.3 Default Release is out on the Web IDE for (Core/Photon/P1/Electron/Argon/Boron/Xenon/A SoM/B SoM/X SoM)

released on production servers November 25th, 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 a future version, (check Github issues). It is available by default for all devices. To use, select the 1.4.3 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 or release versions of 1.4.x on a device, please re-flash it with 1.4.3.

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.2.1 (if the current version is less than that)
  5. Then update to 1.4.3

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

  • You may update to 1.4.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: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM Bootloader
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 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.4.3

This release resolves a thread-safety issue on Gen 2 devices (Photon, P1, Electron), affecting non-reentrant C standard library functions requiring temporary non-stack storage. It is recommended to update any Gen 2 devices to this release.

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware via CLI with particle update. Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v501 bootloaders.

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 1.52.0.

Upgrading using particle update

  1. Put the device into DFU mode
  2. Run particle update

DeviceOS, bootloader and SoftDevice should get correctly updated.

Upgrading OTA

  1. Upgrade to 1.4.3
  2. Manually flash 1.4.3 bootloader: particle flash <deviceId> boron-bootloader@1.4.3.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.4.3.bin

Upgrading using YModem

  1. Upgrade to 1.4.3
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.4.3 bootloader: particle flash --serial boron-bootloader@1.4.3.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.4.3.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.4.3
  2. Update the bootloader to 1.4.3 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.4.3.bin

BUGFIXES

  • [Photon/P1/Electron] Fixes thread-safety issues with non-reentrant C standard library functions requiring temporary thread-local storage #1970

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.4.3/particle_device-os@1.4.3.zip


Programming and Debugging

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

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

Hello Friends!

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

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 Device OS Updates Thread

Device OS 1.4.4 Default Release is out on the Web IDE for (Core/Photon/P1/Electron/Argon/Boron/Xenon/A SoM/B SoM/X SoM)

released on production servers December 4th, 2019

:pencil2: Please read all notes below :tophat:

Note: This is a Release and may be used for production. Any known issues are likely slated for a future version, (check Github issues). It is available by default for all devices. To use, select the 1.4.4 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 or release versions of 1.4.x on a device, please re-flash it with 1.4.4.

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.2.1 (if the current version is less than that)
  5. Then update to 1.4.4

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

  • You may update to 1.4.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: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM Bootloader
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 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.4.4

This release resolves a bug in handling of incorrectly initialized WiFi credentials list, resulting in crashes on a number of Photons and P1s manufactured with DeviceOS 1.2.1 - 1.4.2. It is recommended to update Photons and P1s with factory 1.2.1 - 1.4.2 DeviceOS to this release.

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware via CLI with particle update. Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v501 bootloaders.

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 1.53.0.

Upgrading using particle update

  1. Put the device into DFU mode
  2. Run particle update

DeviceOS, bootloader and SoftDevice should get correctly updated.

Upgrading OTA

  1. Upgrade to 1.4.4
  2. Manually flash 1.4.4 bootloader: particle flash <deviceId> boron-bootloader@1.4.4.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.4.4.bin

Upgrading using YModem

  1. Upgrade to 1.4.4
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.4.4 bootloader: particle flash --serial boron-bootloader@1.4.4.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.4.4.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.4.4
  2. Update the bootloader to 1.4.4 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.4.4.bin

BUGFIXES

  • [Photon/P1] Fixes handling of invalid WiFi access point config entries in DCT #1976

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.4.4/particle_device-os@1.4.4.zip


Programming and Debugging

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

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

stable and master DeviceOS repository branches

DeviceOS repository branches release/stable and master have been updated to point to release/v1.4.4

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 Device OS Updates Thread - #37 by BDub

1 Like

Device OS 1.5.0-rc.1 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/Xenon/B SoM/B5 SoM)

released on February 6th, 2020


:white_check_mark: This 1.5.0-rc.1 Release Candidate will be defaulted to 1.5.0 on February 21st, 2020 unless there are regressions found that require further patches. :pencil2: Testing on your applications is encouraged and appreciated, thank you! :bowing_man:


Note: This is a Release Candidate (RC) and is not intended for production yet. We've tested this RC 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 RC, and be sure to upgrade to the final release when it's available. This RC 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 1.2.1 (if the current version is less than that)
  5. Then update to 1.5.0-rc.1

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

  • You may update to 1.5.0-rc.1 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: Argon/Boron/Xenon/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/B SoM/B5 SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 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.5.0-rc.1

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with particle flash --serial bootloader.bin (bootloaders found in Github release). Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v501 bootloaders.

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.0.1.

Upgrading OTA

  1. Upgrade to 1.5.0-rc.1
  2. Manually flash 1.5.0-rc.1 bootloader: particle flash <deviceId> boron-bootloader@1.5.0-rc.1.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.5.0-rc.1.bin

Upgrading using YModem

  1. Upgrade to 1.5.0-rc.1
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.5.0-rc.1 bootloader: particle flash --serial boron-bootloader@1.5.0-rc.1.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.5.0-rc.1.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.5.0-rc.1
  2. Update the bootloader to 1.5.0-rc.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.5.0-rc.1.bin

1.5.0-rc.1

DEPRECATION

  • Spark Core End-Of-Life. 1.5.x+ releases no longer support Spark Core #2003

FEATURES

  • Sleep 2.0 #1986
  • Enables C++14 chrono string literals for wiring APIs #1709
  • [Gen 3] Implements persistent antenna selection (Mesh.selectAntenna()) #1933
  • GCC 8 support #1971
  • [B5 SoM] B5 SoM platform support
  • [Boron/Electron/B5 SoM] Reverts default PMIC settings changes, adds higher level power configuration API #1992

ENHANCEMENTS

  • Enables Workbench DeviceOS local development (deviceOS@source) #1957
  • [Gen 3/Cellular] Enables logging of modem AT commands and data transmissions by default in modular builds #1994
  • [Gen 2] Removes write protection enforcement of system firmware on boot #2009
  • [Cellular] Adds SystemPowerFeature::DISABLE to disable system power management #2015

BUGFIXES

  • [Boron/BSoM] Enables advance SETUP/MODE button features (single click - RSSI, double click - soft poweroff) #1918
  • Fixes a call to objdump when the compiler is not in PATH #1961
  • [gcc] Ensure GPIO pinmap is initialized on first use #1963
  • [Gen 3] Fixes too many connection attempts with deactivated SIM #1969
  • [Gen 3] Fixes NCP issue with devices stuck in a seemingly connected state #1980
  • [Photon/P1] Fixes a hardfault when calling certain WiFI class methods with WICED networking stack uninitialized #1949
  • [Gen 3] Fixes .particle/toolchains/gcc-arm/5.3.1/bin/objdump: not found issues in Workbench #1996
  • [B5 SoM] Temporarily disables hardware flow control #1999
  • [Gen 3] Fixes retained variables first-time initialization #2001
  • [B5 SoM] Removes unsupported AT+CGDCONT call with CHAP:<APN> #2006
  • [Boron] Increases AT+COPS=0 timeout, lowers baudrate to 115200 #2008
  • Prevents expansion of EXTRA_CFLAGS variable #2012
  • [Gen 3] Workaround for QSPI/XIP nRF52840 hardware anomaly 215 #2010
  • Fixes a potential buffer overflow in Time.format() #1973
  • [Gen 2] Clear WLAN_WD when disconnect() is called #2016
  • [Gen 3] Fixes concurrency/thread-safety SPI issues with Ethernet Featherwing #1879

INTERNAL

  • Increase VitalsPublisher test coverage #1920
  • Adds missing platforms to manifest.json #1959
  • Add support for control requests sent by the test runner #1987
  • Add support for chunked transfer of USB request/reply data #1991
  • Implements EnumFlags class for bitwise operations on C++ enum classes #1978
  • Improves cellular test coverage #1930
  • [Gen 3] Frees up some flash space in system-part1 #2000
  • [Cellular] Internal function to modify cellular registration timeout #2007 #2014
  • Removes xsom and asom platforms #2011

DOCUMENTATION

  • Documents adding custom CFLAGS during DeviceOS application build #2004

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.5.0-rc.1/particle_device-os@1.5.0-rc.1.zip


Programming and Debugging

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

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

Device OS 1.5.0-rc.2 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/Xenon/B SoM/B5 SoM)

released on March 6th, 2020


:white_check_mark: This 1.5.0-rc.2 Release Candidate will be defaulted to 1.5.0 on March 20th, 2020 unless there are regressions found that require further patches. :pencil2: Testing on your applications is encouraged and appreciated, thank you! :bowing_man:


Note: This is a Release Candidate (RC) and is not intended for production yet. We've tested this RC 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 RC, and be sure to upgrade to the final release when it's available. This RC 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 1.2.1 (if the current version is less than that)
  5. Then update to 1.5.0-rc.2

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

  • You may update to 1.5.0-rc.2 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: Argon/Boron/Xenon/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/B SoM/B5 SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 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.5.0-rc.2

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with particle flash --serial bootloader.bin (bootloaders found in Github release). Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v501 bootloaders.

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.0.1.

Upgrading OTA

  1. Upgrade to 1.5.0-rc.2
  2. Manually flash 1.5.0-rc.2 bootloader: particle flash <deviceId> boron-bootloader@1.5.0-rc.2.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.5.0-rc.2.bin

Upgrading using YModem

  1. Upgrade to 1.5.0-rc.2
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.5.0-rc.2 bootloader: particle flash --serial boron-bootloader@1.5.0-rc.2.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.5.0-rc.2.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.5.0-rc.2
  2. Update the bootloader to 1.5.0-rc.2 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.5.0-rc.2.bin

FEATURES

  • Introduce configurable I2C buffer #2022
  • Support for > 255 I2C buffers and transfers, configurable timeouts #2035
  • Thread-safe cloud variables #1998

ENHANCEMENTS

  • [B5 SoM] Enable hardware flow control for Quectel modem during runtime and add support for EG91-EX #2042

BUGFIXES

  • [Workbench] Workaround for failing Device OS builds on Windows #2037
  • [Gen 2] platform: fix FLASH_Update() for unaligned writes #2036
  • Fixes the issue with SPI default SS pin being not configured #2039
  • [gcc] fixes builds on osx and enables usage of the latest gcc versions #2041
  • [Gen 3] Fixes renegotiation of options and adds IPCP packet parsing #2029
  • [Gen 3] Fix parsing of large AT command responses #2017
  • String::substring() unnecessarily modifies the source buffer #2026
  • [B5 SoM] Fix CGI for Quectel modems #2019
  • [Gen 2] Fixes socket leak in UDP.begin() #2031
  • [Gen 3] Fixes Serial.read() returning -1 instead of 0 when there's no data to read #2034
  • [Gen 3] Fixes BLE UUID conversion issue #1997
  • [wiring] Fixes a regression in SPI due to thread-safety additions from #1879 #2023

INTERNAL

  • [test] unit: fixes Print tests failing #2027
  • [B5 SoM] Change the prefix of BLE broadcasting name for B5SoM #2030
  • update workbench manifest with latest buildscripts dependency #2020

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.5.0-rc.2/particle_device-os@1.5.0-rc.2.zip


Programming and Debugging

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

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

Device OS 1.5.0 Default Release is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/Xenon/B SoM/B5 SoM)

released on production servers March 30th, 2020

: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 a future version, (check Github issues). It is available by default for all devices. To use, select the 1.5.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 or release versions of 1.5.x on a device, please re-flash it with 1.5.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.2.1 (if the current version is less than that)
  5. Then update to 1.5.0

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

  • You may update to 1.5.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: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM Bootloader
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 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.5.0

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware via CLI with particle update. Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v501 bootloaders.

DEPRECATION

  • Spark Core End-Of-Life. 1.5.x+ releases no longer support Spark Core #2003

FEATURES

  • Introduce configurable I2C buffer #2022
  • Support for > 255 I2C buffers and transfers, configurable timeouts #2035
  • Thread-safe cloud variables #1998
  • Sleep 2.0 #1986
  • Enables C++14 chrono string literals for wiring APIs #1709
  • [Gen 3] Implements persistent antenna selection (Mesh.selectAntenna()) #1933
  • GCC 8 support #1971
  • [B5 SoM] B5 SoM platform support
  • [Boron/Electron/B5 SoM] Reverts default PMIC settings changes, adds higher level power configuration API #1992

ENHANCEMENTS

  • Replace AT+CSQ usage on Quectel-based devices with AT+QCSQ 147f654
  • Replace AT+CSQ/CESQ usage on ublox-based LTE devices with AT+UCGED #2033 #2038
  • [wiring] Specify floating precision in JSON library #2054
  • Expose full concurrent HAL APIs to the application #2052
  • Close cloud socket on communication errors on all platforms except for Electron #2056
  • [B5 SoM] Enable hardware flow control for Quectel modem during runtime and add support for EG91-EX #2042
  • Enables Workbench DeviceOS local development (deviceOS@source) #1957
  • [Gen 3/Cellular] Enables logging of modem AT commands and data transmissions by default in modular builds #1994
  • [Gen 2] Removes write protection enforcement of system firmware on boot #2009
  • [Cellular] Adds SystemPowerFeature::DISABLE to disable system power management #2015

BUGFIXES

  • [Boron/B SoM/B5 SoM] Fix Cellular Global Identity generation #2062
  • [B5 SoM] Strip padding F from ICCID 4aa1746
  • Fix 3G signal strength calculation on ublox-based cellular devices 553af7b
  • Only increment unacknowledged counter for requests, not acknowledgements #2046
  • Fix YModem transfer regression introduced in 1.5.0-rc.2 #2051
  • [wiring] Fixes a memory leakage in Mutex and RecursiveMutex classes #2053
  • [B5 SoM] Fixes a hardfault when Ethernet is enabled #2057
  • [P1] Enable power save clock (32KHz) only if not disabled by feature flag #2058
  • [wiring] Fixes multiple conflicting candidates when calling Wire.requestFrom() #2059
  • [Gen 2] Fix SPI.beginTransaction() deadlocking #2060
  • [Gen 3] Fix a race condition in NCP client when the GSM0710 muxer connection to the NCP is abruptly broken #2049
  • [Workbench] Workaround for failing Device OS builds on Windows #2037
  • [Gen 2] platform: fix FLASH_Update() for unaligned writes #2036
  • Fixes the issue with SPI default SS pin being not configured #2039
  • [gcc] fixes builds on osx and enables usage of the latest gcc versions #2041
  • [Gen 3] Fixes renegotiation of options and adds IPCP packet parsing #2029
  • [Gen 3] Fix parsing of large AT command responses #2017
  • String::substring() unnecessarily modifies the source buffer #2026
  • [B5 SoM] Fix CGI for Quectel modems #2019
  • [Gen 2] Fixes socket leak in UDP.begin() #2031
  • [Gen 3] Fixes Serial.read() returning -1 instead of 0 when there's no data to read #2034
  • [Gen 3] Fixes BLE UUID conversion issue #1997
  • [wiring] Fixes a regression in SPI due to thread-safety additions from #1879 #2023
  • [Boron/BSoM] Enables advance SETUP/MODE button features (single click - RSSI, double click - soft poweroff) #1918
  • Fixes a call to objdump when the compiler is not in PATH #1961
  • [gcc] Ensure GPIO pinmap is initialized on first use #1963
  • [Gen 3] Fixes too many connection attempts with deactivated SIM #1969
  • [Gen 3] Fixes NCP issue with devices stuck in a seemingly connected state #1980
  • [Photon/P1] Fixes a hardfault when calling certain WiFI class methods with WICED networking stack uninitialized #1949
  • [Gen 3] Fixes .particle/toolchains/gcc-arm/5.3.1/bin/objdump: not found issues in Workbench #1996
  • [B5 SoM] Temporarily disables hardware flow control #1999
  • [Gen 3] Fixes retained variables first-time initialization #2001
  • [B5 SoM] Removes unsupported AT+CGDCONT call with CHAP:<APN> #2006
  • [Boron] Increases AT+COPS=0 timeout, lowers baudrate to 115200 #2008
  • Prevents expansion of EXTRA_CFLAGS variable #2012
  • [Gen 3] Workaround for QSPI/XIP nRF52840 hardware anomaly 215 #2010
  • Fixes a potential buffer overflow in Time.format() #1973
  • [Gen 2] Clear WLAN_WD when disconnect() is called #2016
  • [Gen 3] Fixes concurrency/thread-safety SPI issues with Ethernet Featherwing #1879

INTERNAL

  • [test] Removes A6 pin from PWM tests on B5 SoM d9c859c
  • Fix building of boost on macOS #2044
  • [ci] Workaround GitHub rate limiting by using github.com/xxx/yyy/tarball instead of api.github.com
  • [test] unit: fixes Print tests failing #2027
  • [B5 SoM] Change the prefix of BLE broadcasting name for B5SoM #2030
  • update workbench manifest with latest buildscripts dependency #2020
  • Increase VitalsPublisher test coverage #1920
  • Adds missing platforms to manifest.json #1959
  • Add support for control requests sent by the test runner #1987
  • Add support for chunked transfer of USB request/reply data #1991
  • Implements EnumFlags class for bitwise operations on C++ enum classes #1978
  • Improves cellular test coverage #1930
  • [Gen 3] Frees up some flash space in system-part1 #2000
  • [Cellular] Internal function to modify cellular registration timeout #2007 #2014
  • Removes xsom platform #2011

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.5.0/particle_device-os@1.5.0.zip

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.3.0.

Upgrading using particle update

  1. Put the device into DFU mode
  2. Run particle update

DeviceOS, bootloader and SoftDevice should get correctly updated.

Upgrading OTA

  1. Upgrade to 1.5.0
  2. Manually flash 1.5.0 bootloader: particle flash <deviceId> boron-bootloader@1.5.0.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.5.0.bin

Upgrading using YModem

  1. Upgrade to 1.5.0
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.5.0 bootloader: particle flash --serial boron-bootloader@1.5.0.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.5.0.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.5.0
  2. Update the bootloader to 1.5.0 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.5.0.bin

Programming and Debugging

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

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

3 Likes

Device OS 1.5.1-rc.1 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/Xenon/B SoM/B5 SoM)

released on April 29th, 2020


:white_check_mark: This 1.5.1-rc.1 Release Candidate will be defaulted to 1.5.1 on May 6th, 2020 unless there are regressions found that require further patches. :pencil2: Testing on your applications is encouraged and appreciated, thank you! :bowing_man:


Note: This is a Release Candidate (RC) and is not intended for production yet. We've tested this RC 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 RC, and be sure to upgrade to the final release when it's available. This RC 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 1.2.1 (if the current version is less than that)
  5. Then update to 1.5.1-rc.1

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

  • You may update to 1.5.1-rc.1 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: Argon/Boron/Xenon/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/B SoM/B5 SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 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.5.1-rc.1

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with particle flash --serial bootloader.bin (bootloaders found in Github release). Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v501 bootloaders.

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.0.1.

Upgrading OTA

  1. Upgrade to 1.5.1-rc.1
  2. Manually flash 1.5.1-rc.1 bootloader: particle flash <deviceId> boron-bootloader@1.5.1-rc.1.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.5.1-rc.1.bin

Upgrading using YModem

  1. Upgrade to 1.5.1-rc.1
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.5.1-rc.1 bootloader: particle flash --serial boron-bootloader@1.5.1-rc.1.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.5.1-rc.1.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.5.1-rc.1
  2. Update the bootloader to 1.5.1-rc.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.5.1-rc.1.bin

ENHANCEMENTS

  • [Argon] Increase the size of the ARP queue #2075
  • [Cellular] Increase registration timeout to 10 minutes #2072
  • [Electron / Boron] Make sure that SARA R4-based LTE devices report LTE Cat M1 access technology #2083
  • [B5 SoM] Enable hardware flow control on Quectel modems earlier in the initialization process #2069 #2071
  • [Vitals] Add CoAP transmitted, retransmitted counter diagnostics #2043
  • [Vitals] Add CoAP latency diagnostic #2050
  • [Cellular] Increase registration timeout to 10 minutes #2072
  • Remove locking in some of the SPI and I2C APIs. SPI perofrmance tests #2088
  • Particle.process() no-op when called from custom threads #2085
  • [Electron] Minor log message changes when the modem is not responsive #2087

BUGFIXES

  • [Cellular] Fixes an issue with CGI (Cellular Global Identity) not available on some devices #2067
  • [Electron] Compatibility CellularSignal rssi and qual values generation for LTE devices using AT+UCGED #2070
  • [B5 SoM / Asset Tracker] Zero RSRP/RSRQ values from AT+QCSQ treated as errors #2078
  • [wiring] BLE: use delete for objects allocated with new #2081
  • [Gen 3] I2C HAL recovers the I2C bus on transmission errors #2084
  • [Gen 3] Devices should be able to enter STANDBY / Hibernate sleep mode without specifying any wake-up sources #2086
  • [Gen 3] Fix an issue with platform_user_ram.ld generation when the application path contains 'data' #2090
  • [wiring] Fix SPI macros polluting global namespace #2089
  • [system] firmware_update_failed and firmware_update_complete are mixed up 71a8eb56f8d34efbda46f5d547c92e32a42a2148
  • [system] Do not propagate non-critical network errors to communication layer ba6c9d863ed79cd036848329c3b89b3c0e84dbd0
  • [Gen 3] Fix a crash in netif_ext_callback_handler() when parsing unset event fields dd01b12ea6166b6b175c46348a2b4c180d779ead

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.5.1-rc.1/particle_device-os@1.5.1-rc.1.zip


Programming and Debugging

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

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

Device OS 1.5.1 Default Release is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/Xenon/B SoM/B5 SoM)

released on production servers May 6th, 2020

: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 a future version, (check Github issues). It is available by default for all devices. To use, select the 1.5.1 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 or release versions of 1.5.x on a device, please re-flash it with 1.5.1.

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.2.1 (if the current version is less than that)
  5. Then update to 1.5.1

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

  • You may update to 1.5.1 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: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM Bootloader
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 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.5.1

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware via CLI with particle update. Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v501 bootloaders.

ENHANCEMENTS

  • [Argon] Increase the size of the ARP queue #2075
  • [Cellular] Increase registration timeout to 10 minutes #2072
  • [Electron / Boron] Make sure that SARA R4-based LTE devices report LTE Cat M1 access technology #2083
  • [B5 SoM] Enable hardware flow control on Quectel modems earlier in the initialization process #2069 #2071
  • [Vitals] Add CoAP transmitted, retransmitted counter diagnostics #2043
  • [Vitals] Add CoAP latency diagnostic #2050
  • [Cellular] Increase registration timeout to 10 minutes #2072
  • Remove locking in some of the SPI and I2C APIs. SPI perofrmance tests #2088
  • Particle.process() no-op when called from custom threads #2085
  • [Electron] Minor log message changes when the modem is not responsive #2087

BUGFIXES

  • [wiring] Resolves an incompatibility around usage of SPIClass #2095
  • [Cellular] Fixes an issue with CGI (Cellular Global Identity) not available on some devices #2067
  • [Electron] Compatibility CellularSignal rssi and qual values generation for LTE devices using AT+UCGED #2070
  • [B5 SoM / Asset Tracker] Zero RSRP/RSRQ values from AT+QCSQ treated as errors #2078
  • [wiring] BLE: use delete for objects allocated with new #2081
  • [Gen 3] I2C HAL recovers the I2C bus on transmission errors #2084
  • [Gen 3] Devices should be able to enter STANDBY / Hibernate sleep mode without specifying any wake-up sources #2086
  • [Gen 3] Fix an issue with platform_user_ram.ld generation when the application path contains 'data' #2090
  • [wiring] Fix SPI macros polluting global namespace #2089
  • [system] firmware_update_failed and firmware_update_complete are mixed up 71a8eb56f8d34efbda46f5d547c92e32a42a2148
  • [system] Do not propagate non-critical network errors to communication layer ba6c9d863ed79cd036848329c3b89b3c0e84dbd0
  • [Gen 3] Fix a crash in netif_ext_callback_handler() when parsing unset event fields dd01b12ea6166b6b175c46348a2b4c180d779ead

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.5.1/particle_device-os@1.5.1.zip

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.5.0.

Upgrading using particle update

  1. Put the device into DFU mode
  2. Run particle update

DeviceOS, bootloader and SoftDevice should get correctly updated.

Upgrading OTA

  1. Upgrade to 1.5.1
  2. Manually flash 1.5.1 bootloader: particle flash <deviceId> boron-bootloader@1.5.1.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.5.1.bin

Upgrading using YModem

  1. Upgrade to 1.5.1
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.5.1 bootloader: particle flash --serial boron-bootloader@1.5.1.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.5.1.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.5.1
  2. Update the bootloader to 1.5.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.5.1.bin

Programming and Debugging

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

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

Branches

release/stable and master branches have been updated to point to v1.5.1 tag.

Device OS 1.5.2 Default Release is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/Xenon/B SoM/B5 SoM)

released on production servers May 20th, 2020

: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 a future version, (check Github issues). It is available by default for all devices. To use, select the 1.5.2 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 or release versions of 1.5.x on a device, please re-flash it with 1.5.2.

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.2.1 (if the current version is less than that)
  5. Then update to 1.5.2

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

  • You may update to 1.5.2 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: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM Bootloader
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 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.5.2

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware via CLI with particle update. Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v502 bootloaders.

BUGFIXES

  • [Boron / B SoM] LTE-M1 (SARA R4) radio unresponsive when sending certain amount of data within a period of time #2100 #2105
  • [B5 SoM] Suspend program/erase opertion when QSPI flash init gives timeout error

ENHANCEMENTS

  • [Boron/B SoM] Forward compatibility with 460800 baudrate on SARA R4-based devices to support >= 2.x downgrades #2104
  • [Boron/B SoM] Enables hardware flow control on SARA R4-based devices with appropriate modem firmware version #2079 cc7adb7c46ea82383a5f948ea1dc898270a27a3c

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.5.2/particle_device-os@1.5.2.zip

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.6.0.

Upgrading using particle update

  1. Put the device into DFU mode
  2. Run particle update

DeviceOS, bootloader and SoftDevice should get correctly updated.

Upgrading OTA

  1. Upgrade to 1.5.2
  2. Manually flash 1.5.2 bootloader: particle flash <deviceId> boron-bootloader@1.5.2.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.5.2.bin

Upgrading using YModem

  1. Upgrade to 1.5.2
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.5.2 bootloader: particle flash --serial boron-bootloader@1.5.2.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.5.2.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.5.2
  2. Update the bootloader to 1.5.2 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.5.2.bin

Programming and Debugging

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

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

Branches

release/stable and master branches have been updated to point to v1.5.2 tag.

1 Like

Device OS 1.5.4-rc.1 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/Xenon/B SoM/B5 SoM/Tracker)

released on June 29th, 2020


:white_check_mark: This 1.5.4-rc.1 Release Candidate will be defaulted to 1.5.4 on July 10th, 2020 unless there are regressions found that require further patches. :pencil2: Testing on your applications is encouraged and appreciated, thank you! :bowing_man:


Note: This is a Release Candidate (RC) and is not intended for production yet. We've tested this RC 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 RC, and be sure to upgrade to the final release when it's available. This RC 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 1.2.1 (if the current version is less than that)
  5. Then update to 1.5.4-rc.1

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

  • You may update to 1.5.4-rc.1 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: Argon/Boron/Xenon/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/B SoM/B5 SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 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.5.4-rc.1

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with particle flash --serial bootloader.bin (bootloaders found in Github release). Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v502 bootloaders.

BUGFIXES

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.5.4-rc.1/particle_device-os@1.5.4-rc.1.zip


Programming and Debugging

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

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.6.0.

Upgrading OTA

  1. Upgrade to 1.5.4-rc.1
  2. Manually flash 1.5.4-rc.1 bootloader: particle flash <deviceId> boron-bootloader@1.5.4-rc.1.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.5.4-rc.1.bin

Upgrading using YModem

  1. Upgrade to 1.5.4-rc.1
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.5.4-rc.1 bootloader: particle flash --serial boron-bootloader@1.5.4-rc.1.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.5.4-rc.1.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.5.4-rc.1
  2. Update the bootloader to 1.5.4-rc.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.5.4-rc.1.bin

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

Device OS 2.0.0-rc.1 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM)

released on July 30th, 2020


:white_check_mark: This 2.0.0-rc.1 Release Candidate will be defaulted to 2.0.0 on August 15th, 2020 unless there are regressions found that require further patches. :pencil2: Testing on your applications is encouraged and appreciated, thank you! :bowing_man:

Note: This is a Release Candidate (RC) and is not intended for production yet. We've tested this RC 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 RC, and be sure to upgrade to the final release when it's available. This RC 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 1.2.1 (if the current version is less than that)
  5. Then update to 2.0.0-rc.1

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

  • You may update to 2.0.0-rc.1 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: Argon/Boron/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/B SoM/B5 SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

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


2.0.0-rc.1

BREAKING CHANGES

  • Mesh support removed. 2.x+ DeviceOS releases no longer have Mesh capabilities #2068
  • Xenon platform support removed. 2.x+ DeviceOS releases no longer support Xenons #2068
  • Minimum ARM GCC version required increased to 9.2.1 #2123
  • SPISettings class is always available even if compiling without Arduino compatibility #2138
  • Add deprecation notices for some of the renamed HAL APIs (with appropriate replacements) #2148
  • LTE Borons and BSoM will be unable to communicate with the cellular modem when downgrading from 2.x+ DeviceOS unless first downgraded to 1.5.2 and letting the device attempt a cellular network registration

FEATURES

  • [Gen 3] Wake up from STOP/ULP/Hibernate modes by analog pin #2163
  • [Gen 3] Wake up from STOP/ULP modes by WiFi/Cellular and UART #2162
  • [Gen 3] pinSetDriveStrength() API #2157
  • Add os_queue_peek() and make sure that queues and semaphores can be accessed from ISRs #2156 #2074
  • [Gen 3 / Cellular] Proactively attempt to recover from a number of failed cellular registration states #2150
  • [Gen 3 / Cellular] Reset cellular modem if failing to establish PPP session for over 5 minutes #2150
  • [Gen 2] Blocking UDP socket reads with a timeout #2150
  • Power-loss resistant bootloader updates through MBR #2151
  • Ultra low power sleep mode #2149 #2133 #2132 #2129 #2130 #2125 #2136
  • Additional APN settings based on ICCIDs #2144
  • NTP-based internet test #2118
  • [Gen 3] Warm bootup of cellular modems and cellular connectivity resumption #2102 #2146
  • Support for compressed / combined binaries in OTA updates #2097
  • ARM GCC 9 support #2103
  • Device-initiated describe messages #2024
  • Notify the cloud about planned disconnections #1899

ENHANCEMENTS

  • [Gen 3] Workaround when unable to obtain DNS servers from remote PPP peer #2165
  • System power manager blocks access to FuelGauge for 500ms in its own thread, instead of system when waking up from STOP/ULP sleep mode #2159
  • [wiring] Pin operations are not dependent on wiring C++ peripheral object initialization (e.g. SPI, Wire etc) #2157
  • [Gen 3] Default SPI pin drive strength changed to high #2157
  • [Gen 3] Restore original BASEPRI when exiting FreeRTOS critical section #2150
  • [Gen 3 / Cellular] Do not use packet buffers from pool in TX path #2150
  • [Gen 3 / Cellular] Reliable data mode entry when attempting to establish PPP connection #2150
  • [Gen 3] Changes the implementation of Nordic SDK critical sections to use BASEPRI #2101
  • Allow resetting the device and disconnecting from the cloud via low-level USB vendor requests #2142
  • [Cellular] When resuming cellular connection, do not run COPS=0 again to avoid triggering PLMN reselection #2139
  • Reduce runtime RAM usage by sharing newlib _impure_ptr between modules #2126
  • [Electron] Use snprintf() instead of sprintf() #2122
  • [Gen 3] System thread wakeup on cloud data #2113
  • [Argon] Hide unsupported WiFi wiring APIs #2120
  • [B5 SoM / Tracker] Disable 2G fallback for BG96-based devices #2112
  • [wiring] Changes default I2C timeouts when communicating with FuelGauge and PMIC to more manageable values #2096
  • [wiring] Propagate low-level I2C errors in FuelGauge methods #2094
  • [Gen 3] Network stack enhancements #2079
  • Send describe messages as confirmable CoAP messages #2024
  • [Argon] OTA adjustments #2045
  • Remove support for unused control requests #2064
  • RTC HAL refactoring to increase time-keeping precision #2123
  • Y2k38 time_t size change adjustments #2123
  • [wiring] Refactor wiring Time class to use reentrant versions of libc time functions #2123

BUGFIXES

  • [wiring] Servo object should deinit its pin when destructed #2150
  • Fix an issue with loop() not being executed in SEMI_AUTOMATIC modem when network interfaces are down #2150
  • [Gen 3] Fix cycle counter synchronization when processing RTC overflow events #2150
  • [Electron] Increase default AT command timeouts #2150
  • [Gen 3] Move PWM-capable pins from the PWM peripheral shared with RGB pins when possible #2150
  • [Gen 3 / Cellular] Call into LwIP PPP code to indicate PPP_IP protocol is finished #2150
  • [Gen 3] Fix BLE event processing while in STOP/ULP sleep mode #2155
  • [Gen 3] Cellular.command() should check NCP state before attempting to execute command #2110 #2153
  • [Gen 2] Fix RTC thread-safety issues when accessing RTC peripheral #2154
  • Workaround for Gen 3 devices not connecting to the cloud in non-automatic threaded mode #2152
  • Enable PMIC buck converter on boot by default #2147
  • [Gen 3] Reliably turn off the cellular modem when going into sleep mode to reduce current consumption #2110
  • [Gen 3] Fixes the behavior when the USB host puts the device into suspended state #2101
  • [Gen 3] Fixes potential deadlock in SPI HAL #2101 #2091
  • [Gen 3] Filter out non-vendor requests in USB control request handler #2101
  • [Gen 3] SOF-based USB Serial port state detection #2101
  • [Gen 3] Fixes an issue with devices not waking up by RTC from STOP sleep mode #2134
  • [Gen 3] Fix rename() filesystem call #2141
  • [Gen 3] Treat failure to open data channel as critical error #2139
  • [Photon] Fix WPA Enterprise X509 certificate parsing #2126
  • Use newlib-nano headers when compiling #2126
  • [Gen 2] Reset the device after applying an update while in listening mode #2127
  • [Electron] Process CEREG: 0 URCs on R4-based devices to detect loss of cellular connectivity #2119
  • [Cellular] Fixes the issue that FuelGauge doesn't work as expected after being woken up #2116
  • [Electron] Fixes buffer overrun in modem hal #2115
  • [WiFi] WiFiCredentials::setSecurity() should be taking wiring security type (e.g. WPA2 instead of WLAN_SEC_WPA2) #2098
  • [Boron] Fixes SARA R4 power on sequence where the default attempt should be made with runtime baudrate #2107
  • [Gen 2] Fixes an issue with I2C bus pins driven low if building with JTAG/SWD enabled #2080
  • [Boron] Fixes an issue with SARA R4 modems on LTE Borons becoming unresponsive when sending substantial amount of network data continuously #2100
  • Fix session resumption in AUTOMATIC system mode #2024

INTERNAL

  • Run on-device tests under the DeviceOS test runner #2140 #2150
  • Remove old deprecated platforms #2150
  • Addresses multiple issues in on-device no-fixture tests #2150

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v2.0.0-rc.1/particle_device-os@2.0.0-rc.1.zip


Programming and Debugging

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

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.7.2.

Upgrading OTA

  1. Upgrade to 2.0.0-rc.1
  2. Manually flash 2.0.-rc.1 bootloader: particle flash <deviceId> boron-bootloader@2.0.0-rc.1.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@2.0.0-rc.1.bin

Upgrading using YModem

  1. Upgrade to 2.0.0-rc.1
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 2.0.0-rc.1 bootloader: particle flash --serial boron-bootloader@2.0.0-rc.1.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@2.0.0-rc.1.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 2.0.0-rc.1
  2. Update the bootloader to 2.0.0-rc.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@2.0.0-rc.1.bin

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

We’ve updated a list of breaking changes for DeviceOS 2.0.0-rc.1 with an additional item:

  • LTE Borons and BSoM will be unable to communicate with the cellular modem when downgrading from 2.x+ DeviceOS unless first downgraded to 1.5.2 and letting the device attempt a cellular network registration
2 Likes

Device OS 2.0.0-rc.2 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM)

released on September 22nd, 2020

Notes about LTS releases

Device OS v2.x is Particle's first Long Term Support (LTS) release branch for Device OS.
Long Term Support (LTS) releases are independent branches of Device OS that are feature-frozen in time. Subsequent releases will contain focused bug fixes and security patches for the features included in the first GA release. LTS releases do not receive updates with new features, API changes, or improvements that change the function or standard behavior of the device. LTS releases are recommended for enterprise customers and customers who value reliability over access to the latest Device OS features and functionality.

You can learn more about LTS releases in our documentation, here.

v2.0.0-rc.2 is the second public prerelease for LTS 2.0.x
This release, v2.0.0-rc.2, is the second public prerelease and release candidate for Particle's 2.x LTS release line. This release includes all of the functionality that is planned to be included in the 2.x LTS release line. This release may still contain stability issues and be subject to subsequent improvements that will be identified and resolved throughout the prerelease testing periods prior to GA.

2.0.0 release is heavily tested and has higher level of reliability and stability than our previous releases. 2.0.0 branch will be developed into LTS. LTS GA release will be 2.0.x.

Standard release notes and information for this release candidate are included below.


Note: This is a Release Candidate (RC) and is not intended for production yet. We've tested this RC 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 RC, and be sure to upgrade to the final release when it's available. This RC 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 1.2.1 (if the current version is less than that)
  5. Then update to 2.0.0-rc.2

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

  • You may update to 2.0.0-rc.2 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: Argon/Boron/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/B SoM/B5 SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

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

Note: Downgrading [LTE Boron and BSoM]:
If you need to downgrade, you must downgrade to 1.5.2 first. and let the device attempt a cellular network registration.


2.0.0-rc.2

DEPRECATION

  • [Cellular] Mark CellularSignal::rssi and CellularSignal::qual as deprecated #2182

FEATURES

  • [Cellular] Read IMSI when multi-IMSI SIM performs the switch #2174 #2179
  • Allow UDP server public key to be set in DCT programmatically #2178
  • [Gen 2] Wake-up by analog value #2172
  • [Gen 2] Wake-up by USART #2173
  • [Gen 3] Add ftruncate() and truncate() APIs #2195
  • Expose functions to fetch serial / mobile secret from OTP-area #2190
  • [Electron] Wake-up by cellular #2186

ENHANCEMENTS

  • Clear OTA slots after updating firmware modules to improve reliability of OTA updates #2176
  • [Cellular] Replace AT+COPS=2 with AT+CFUN=0 or AT+CFUN=4 to prevent longer registration times #2177
  • [Cellular] IMSI-based operator lookup, operator-specific enhancements #2185
  • [Electron] Recovery mechanics for cases when the modem becomes unresponsive #2198
  • Add printf attributes to appopriate wiring functions to generate -Wformat warnings #2201
  • Change Time::now() return type to 32-bit time32_t to reduce potential issues with printf formatting of 64-bit time_t #2201

BUGFIXES

  • [Electron] Fix modem log timestamps starting with a high number on boot #2169
  • [Cellular] Make sure 2G fallback stays disabled on Quectel BG96-based platforms #2175
  • [Gen 3] Fix USART wake-up source configuration in Ultra Low Power mode, causing immediate sleep mode exit #2180
  • [Gen 3] Fix tone generation behavior with zero duration (infinite) #2183
  • Exclude printable objects from Print overload taking integral and unsigned integer convertible types #2181
  • [Boron / B SoM] Fix warm bootup on uBlox SARA R4-based devices #2188
  • [Gen 2] Support repeated-START between WRITE and READ operations in I2C Slave mode #2184 #2193
  • Fastpin functions should not depend on the object initialization order #2194
  • [Electron] Fix modem power leakage when the modem is in an unknown state when going into a sleep mode #2197
  • [BLE] Fix issue with .serviceUUID() not returning UUID when there is an array #2202
  • [Gen 3] Default SPI pin drive strength changed to high 7f2e8a711bd14abd1e094679f1cc6d26742cb6c9

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v2.0.0-rc.2/particle_device-os@2.0.0-rc.2.zip


Programming and Debugging

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

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.7.2.

Upgrading OTA

  1. Upgrade to 2.0.0-rc.2
  2. Manually flash 2.0.-rc.1 bootloader: particle flash <deviceId> boron-bootloader@2.0.0-rc.2.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@2.0.0-rc.2.bin

Upgrading using YModem

  1. Upgrade to 2.0.0-rc.2
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 2.0.0-rc.2 bootloader: particle flash --serial boron-bootloader@2.0.0-rc.2.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@2.0.0-rc.2.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 2.0.0-rc.2
  2. Update the bootloader to 2.0.0-rc.2 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@2.0.0-rc.2.bin

QA Report Summary for Particle Device OS

You can view results of tests run this release here.

Device OS 1.5.4-rc.2 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/Xenon/B SoM/B5 SoM/Tracker)

released on October 15th, 2020


Note: This is a Release Candidate (RC) and is not intended for production yet. We've tested this RC 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 RC, and be sure to upgrade to the final release when it's available. This RC 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 1.2.1 (if the current version is less than that)
  5. Then update to 1.5.4-rc.2

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

  • You may update to 1.5.4-rc.2 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: Argon/Boron/Xenon/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/B SoM/B5 SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 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.5.4-rc.2

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with particle flash --serial bootloader.bin (bootloaders found in Github release). Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v502 bootloaders.

BUGFIXES

  • Configure PMIC and FuelGauge interrupt pins as INPUT_PULLUP #2207
  • [Gen 3 / Cellular] Do not use packet buffers from pool in TX path #2150
  • [Gen 3 / Cellular] Call into LwIP PPP code to indicate PPP_IP protocol is finished #2150
  • [Gen 3] Workaround when unable to obtain DNS servers from remote PPP peer #2165
  • [Cellular] When resuming cellular connection, do not run COPS=0 again to avoid triggering PLMN reselection #2139

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.5.4-rc.2/particle_device-os@1.5.4-rc.2.zip


Programming and Debugging

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

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.8.1.

Upgrading OTA

  1. Upgrade to 1.5.4-rc.2
  2. Manually flash 1.5.4-rc.2 bootloader: particle flash <deviceId> boron-bootloader@1.5.4-rc.2.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.5.4-rc.2.bin

Upgrading using YModem

  1. Upgrade to 1.5.4-rc.2
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.5.4-rc.2 bootloader: particle flash --serial boron-bootloader@1.5.4-rc.2.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.5.4-rc.2.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.5.4-rc.2
  2. Update the bootloader to 1.5.4-rc.2 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.5.4-rc.2.bin

Device OS 2.0.0-rc.3 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)

released on October 21st, 2020

Notes about LTS releases

Device OS v2.x is Particle's first Long Term Support (LTS) release branch for Device OS.
Long Term Support (LTS) releases are independent branches of Device OS that are feature-frozen in time. Subsequent releases will contain focused bug fixes and security patches for the features included in the first GA release. LTS releases do not receive updates with new features, API changes, or improvements that change the function or standard behavior of the device. LTS releases are recommended for enterprise customers and customers who value reliability over access to the latest Device OS features and functionality.

You can learn more about LTS releases in our documentation, here.

v2.0.0-rc.3 is the third public prerelease for LTS 2.0.x
This release, v2.0.0-rc.3, is the second public prerelease and release candidate for Particle's 2.x LTS release line. This release includes all of the functionality that is planned to be included in the 2.x LTS release line. This release may still contain stability issues and be subject to subsequent improvements that will be identified and resolved throughout the prerelease testing periods prior to GA.

2.0.0 release is heavily tested and has higher level of reliability and stability than our previous releases. 2.0.0 branch will be developed into LTS. LTS GA release will be 2.0.x.

Standard release notes and information for this release candidate are included below.


Note: This is a Release Candidate (RC) and is not intended for production yet. We've tested this RC 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 RC, and be sure to upgrade to the final release when it's available. This RC 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 1.2.1 (if the current version is less than that)
  5. Then update to 2.0.0-rc.3

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

  • You may update to 2.0.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: Argon/Boron/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/B SoM/B5 SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

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

Note: Downgrading [LTE Boron and BSoM]:
If you need to downgrade, you must downgrade to 1.5.2 first. and let the device attempt a cellular network registration.


2.0.0-rc.3

BUGFIXES

  • [Cellular] Set INPUT_PULLUP pin mode for FuelGauge and PMIC interrupt pins #2207
  • Disconnect from the cloud before going into sleep #2206
  • Use always_inline attribute for deprecated HAL API #2204
  • [Gen 3] Set SPI MOSI drive strength as high by default #2214 nrf5_sdk#12
  • [Gen 3] Fix LED behavior in case of network loss before cloud connection is established #2210
  • [Gen 3 / Cellular] Allow Software Default MNO profile to be used when chosen by SIM ICCID-based selection #2211
  • [Cellular] Allow Software Default MNO profile to be used with certain version of SARA R410 modem firmware, where MNO profile 100 is not supported #2213
  • [Boron / B SoM] Workaround for SARA R410 PPP ConfReq behavior #2208 lwip#8
  • Fix CellularSignal deprecation messages #2221
  • [Cellular] Fix PMIC reducing current on warm boot and causing modem brownouts #2215
  • [Electron] Workaround for modem HAL relying on system networking code to re-attempt initialization #2218

ENHANCEMENTS

  • Remove warning for publish and subscribe scope deprecation #2209
  • Export some common standard C library functions through dynalib #2225
  • [Electron] Monitor cellular modem for brown-outs and resets/crashes and perform reinitialization when required #2219

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v2.0.0-rc.3/particle_device-os@2.0.0-rc.3.zip


Programming and Debugging

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

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.8.1.

Upgrading OTA

  1. Upgrade to 2.0.0-rc.3
  2. Manually flash 2.0.0-rc.3 bootloader: particle flash <deviceId> boron-bootloader@2.0.0-rc.3.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@2.0.0-rc.3.bin

Upgrading using YModem

  1. Upgrade to 2.0.0-rc.3
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 2.0.0-rc.3 bootloader: particle flash --serial boron-bootloader@2.0.0-rc.3.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@2.0.0-rc.3.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 2.0.0-rc.3
  2. Update the bootloader to 2.0.0-rc.3 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@2.0.0-rc.3.bin

Device OS 2.0.0-rc.4 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)

released on October 30th, 2020

Notes about LTS releases

Device OS v2.x is Particle's first Long Term Support (LTS) release branch for Device OS.
Long Term Support (LTS) releases are independent branches of Device OS that are feature-frozen in time. Subsequent releases will contain focused bug fixes and security patches for the features included in the first GA release. LTS releases do not receive updates with new features, API changes, or improvements that change the function or standard behavior of the device. LTS releases are recommended for enterprise customers and customers who value reliability over access to the latest Device OS features and functionality.

You can learn more about LTS releases in our documentation, here.

v2.0.0-rc.4 is the fourth public prerelease for LTS 2.0.x
This release, v2.0.0-rc.4, is the fourth public prerelease and release candidate for Particle's 2.x LTS release line. This release includes all of the functionality that is planned to be included in the 2.x LTS release line. This release may still contain stability issues and be subject to subsequent improvements that will be identified and resolved throughout the prerelease testing periods prior to GA.

2.0.0 release is heavily tested and has higher level of reliability and stability than our previous releases. 2.0.0 branch will be developed into LTS. LTS GA release will be 2.0.x.

Standard release notes and information for this release candidate are included below.


Note: This is a Release Candidate (RC) and is not intended for production yet. We've tested this RC 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 RC, and be sure to upgrade to the final release when it's available. This RC 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 1.2.1 (if the current version is less than that)
  5. Then update to 2.0.0-rc.4

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

  • You may update to 2.0.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: Argon/Boron/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/B SoM/B5 SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.

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

Note: Downgrading [LTE Boron and BSoM]:
If you need to downgrade, you must downgrade to 1.5.2 first. and let the device attempt a cellular network registration.


2.0.0-rc.4

ENHANCEMENTS

  • [Gen 3] Enable Network Diagnostics/Vitals #2230

BUGFIXES

  • [Gen 3] Fix a potential crash when using sleep with multiple pins specified as wake-up sources together with BLE #2227
  • [Electron] 2G Electrons with uBlox G350 should use AT+CPWROFF exclusively for powering off the modem #2229

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v2.0.0-rc.4/particle_device-os@2.0.0-rc.4.zip


Programming and Debugging

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

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.8.1.

Upgrading OTA

  1. Upgrade to 2.0.0-rc.4
  2. Manually flash 2.0.0-rc.4 bootloader: particle flash <deviceId> boron-bootloader@2.0.0-rc.4.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@2.0.0-rc.4.bin

Upgrading using YModem

  1. Upgrade to 2.0.0-rc.4
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 2.0.0-rc.4 bootloader: particle flash --serial boron-bootloader@2.0.0-rc.4.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@2.0.0-rc.4.bin

Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 2.0.0-rc.4
  2. Update the bootloader to 2.0.0-rc.4 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@2.0.0-rc.4.bin

Device OS 2.0.0 Default Release (LTS) is available in the Web IDE, Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).

released on December 3rd, 2020

Note: This is a Release and may be used for production. Any known issues are likely slated for a future version, see GitHub issues.

To learn more about our new LTS release line, read our latest blog post.

You can view information about Device OS versions, upgrades and downgrades here.


2.0.0

BREAKING CHANGES

  • Mesh support removed. 2.x+ DeviceOS releases no longer have Mesh capabilities #2068
  • Xenon platform support removed. 2.x+ DeviceOS releases no longer support Xenons #2068
  • Minimum ARM GCC version required increased to 9.2.1 #2123
  • SPISettings class is always available even if compiling without Arduino compatibility #2138
  • Add deprecation notices for some of the renamed HAL APIs (with appropriate replacements) #2148

DEPRECATION

  • [Cellular] Mark CellularSignal::rssi and CellularSignal::qual as deprecated #2182

FEATURES

  • [Cellular] Read IMSI when multi-IMSI SIM performs the switch #2174 #2179
  • Allow UDP server public key to be set in DCT programmatically #2178
  • [Gen 2] Wake-up by analog value #2172
  • [Gen 2] Wake-up by USART #2173
  • [Gen 3] Add ftruncate() and truncate() APIs #2195
  • Expose functions to fetch serial / mobile secret from OTP-area #2190
  • [Electron] Wake-up by cellular #2186
  • [Gen 3] Wake up from STOP/ULP/Hibernate modes by analog pin #2163
  • [Gen 3] Wake up from STOP/ULP modes by WiFi/Cellular and UART #2162
  • [Gen 3] pinSetDriveStrength() API #2157
  • Add os_queue_peek() and make sure that queues and semaphores can be accessed from ISRs #2156 #2074
  • [Gen 3 / Cellular] Proactively attempt to recover from a number of failed cellular registration states #2150
  • [Gen 3 / Cellular] Reset cellular modem if failing to establish PPP session for over 5 minutes #2150
  • [Gen 2] Blocking UDP socket reads with a timeout #2150
  • Power-loss resistant bootloader updates through MBR #2151
  • Ultra low power sleep mode #2149 #2133 #2132 #2129 #2130 #2125 #2136
  • Additional APN settings based on ICCIDs #2144
  • NTP-based internet test #2118
  • [Gen 3] Warm bootup of cellular modems and cellular connectivity resumption #2102 #2146
  • Support for compressed / combined binaries in OTA updates #2097
  • ARM GCC 9 support #2103
  • Device-initiated describe messages #2024
  • Notify the cloud about planned disconnections #1899

ENHANCEMENTS

  • [Gen 3] Enable Network Diagnostics/Vitals #2230
  • Remove warning for publish and subscribe scope deprecation #2209
  • Export some common standard C library functions through dynalib #2225
  • [Electron] Monitor cellular modem for brown-outs and resets/crashes and perform reinitialization when required #2219
  • Clear OTA slots after updating firmware modules to improve reliability of OTA updates #2176
  • [Cellular] Replace AT+COPS=2 with AT+CFUN=0 or AT+CFUN=4 to prevent longer registration times #2177
  • [Cellular] IMSI-based operator lookup, operator-specific enhancements #2185
  • [Electron] Recovery mechanics for cases when the modem becomes unresponsive #2198
  • Add printf attributes to appopriate wiring functions to generate -Wformat warnings #2201
  • Change Time::now() return type to 32-bit time32_t to reduce potential issues with printf formatting of 64-bit time_t #2201
  • [Gen 3] Workaround when unable to obtain DNS servers from remote PPP peer #2165
  • System power manager blocks access to FuelGauge for 500ms in its own thread, instead of system when waking up from STOP/ULP sleep mode #2159
  • [wiring] Pin operations are not dependent on wiring C++ peripheral object initialization (e.g. SPI, Wire etc) #2157
  • [Gen 3] Default SPI pin drive strength changed to high #2157
  • [Gen 3] Restore original BASEPRI when exiting FreeRTOS critical section #2150
  • [Gen 3 / Cellular] Do not use packet buffers from pool in TX path #2150
  • [Gen 3 / Cellular] Reliable data mode entry when attempting to establish PPP connection #2150
  • [Gen 3] Changes the implementation of Nordic SDK critical sections to use BASEPRI #2101
  • Allow resetting the device and disconnecting from the cloud via low-level USB vendor requests #2142
  • [Cellular] When resuming cellular connection, do not run COPS=0 again to avoid triggering PLMN reselection #2139
  • Reduce runtime RAM usage by sharing newlib _impure_ptr between modules #2126
  • [Electron] Use snprintf() instead of sprintf() #2122
  • [Gen 3] System thread wakeup on cloud data #2113
  • [Argon] Hide unsupported WiFi wiring APIs #2120
  • [B5 SoM / Tracker] Disable 2G fallback for BG96-based devices #2112
  • [wiring] Changes default I2C timeouts when communicating with FuelGauge and PMIC to more manageable values #2096
  • [wiring] Propagate low-level I2C errors in FuelGauge methods #2094
  • [Gen 3] Network stack enhancements #2079
  • Send describe messages as confirmable CoAP messages #2024
  • [Argon] OTA adjustments #2045
  • Remove support for unused control requests #2064
  • RTC HAL refactoring to increase time-keeping precision #2123
  • Y2k38 time_t size change adjustments #2123
  • [wiring] Refactor wiring Time class to use reentrant versions of libc time functions #2123

BUGFIXES

  • [Gen 2] Fix an issue in Sleep 2.0 API with STOP and ULP sleep modes potentially blocking user application on wake-up #2238
  • [Electron] Fix a regression in +C*REG URC parsing #2239
  • [Gen 3] Fix a potential crash when using sleep with multiple pins specified as wake-up sources together with BLE #2227
  • [Electron] 2G Electrons with uBlox G350 should use AT+CPWROFF exclusively for powering off the modem #2229
  • [Cellular] Set INPUT_PULLUP pin mode for FuelGauge and PMIC interrupt pins #2207
  • Disconnect from the cloud before going into sleep #2206
  • Use always_inline attribute for deprecated HAL API #2204
  • [Gen 3] Set SPI MOSI drive strength as high by default #2214 nrf5_sdk#12
  • [Gen 3] Fix LED behavior in case of network loss before cloud connection is established #2210
  • [Gen 3 / Cellular] Allow Software Default MNO profile to be used when chosen by SIM ICCID-based selection #2211
  • [Cellular] Allow Software Default MNO profile to be used with certain version of SARA R410 modem firmware, where MNO profile 100 is not supported #2213
  • [Boron / B SoM] Workaround for SARA R410 PPP ConfReq behavior #2208 lwip#8
  • Fix CellularSignal deprecation messages #2221
  • [Cellular] Fix PMIC reducing current on warm boot and causing modem brownouts #2215
  • [Electron] Workaround for modem HAL relying on system networking code to re-attempt initialization #2218
  • [Electron] Fix modem log timestamps starting with a high number on boot #2169
  • [Cellular] Make sure 2G fallback stays disabled on Quectel BG96-based platforms #2175
  • [Gen 3] Fix USART wake-up source configuration in Ultra Low Power mode, causing immediate sleep mode exit #2180
  • [Gen 3] Fix tone generation behavior with zero duration (infinite) #2183
  • Exclude printable objects from Print overload taking integral and unsigned integer convertible types #2181
  • [Boron / B SoM] Fix warm bootup on uBlox SARA R4-based devices #2188
  • [Gen 2] Support repeated-START between WRITE and READ operations in I2C Slave mode #2184 #2193
  • Fastpin functions should not depend on the object initialization order #2194
  • [Electron] Fix modem power leakage when the modem is in an unknown state when going into a sleep mode #2197
  • [BLE] Fix issue with .serviceUUID() not returning UUID when there is an array #2202
  • [Gen 3] Default SPI pin drive strength changed to high 7f2e8a711bd14abd1e094679f1cc6d26742cb6c9
  • [wiring] Servo object should deinit its pin when destructed #2150
  • Fix an issue with loop() not being executed in SEMI_AUTOMATIC modem when network interfaces are down #2150
  • [Gen 3] Fix cycle counter synchronization when processing RTC overflow events #2150
  • [Electron] Increase default AT command timeouts #2150
  • [Gen 3] Move PWM-capable pins from the PWM peripheral shared with RGB pins when possible #2150
  • [Gen 3 / Cellular] Call into LwIP PPP code to indicate PPP_IP protocol is finished #2150
  • [Gen 3] Fix BLE event processing while in STOP/ULP sleep mode #2155
  • [Gen 3] Cellular.command() should check NCP state before attempting to execute command #2110 #2153
  • [Gen 2] Fix RTC thread-safety issues when accessing RTC peripheral #2154
  • Workaround for Gen 3 devices not connecting to the cloud in non-automatic threaded mode #2152
  • Enable PMIC buck converter on boot by default #2147
  • [Gen 3] Reliably turn off the cellular modem when going into sleep mode to reduce current consumption #2110
  • [Gen 3] Fixes the behavior when the USB host puts the device into suspended state #2101
  • [Gen 3] Fixes potential deadlock in SPI HAL #2101 #2091
  • [Gen 3] Filter out non-vendor requests in USB control request handler #2101
  • [Gen 3] SOF-based USB Serial port state detection #2101
  • [Gen 3] Fixes an issue with devices not waking up by RTC from STOP sleep mode #2134
  • [Gen 3] Fix rename() filesystem call #2141
  • [Gen 3] Treat failure to open data channel as critical error #2139
  • [Photon] Fix WPA Enterprise X509 certificate parsing #2126
  • Use newlib-nano headers when compiling #2126
  • [Gen 2] Reset the device after applying an update while in listening mode #2127
  • [Electron] Process CEREG: 0 URCs on R4-based devices to detect loss of cellular connectivity #2119
  • [Cellular] Fixes the issue that FuelGauge doesn’t work as expected after being woken up #2116
  • [Electron] Fixes buffer overrun in modem hal #2115
  • [WiFi] WiFiCredentials::setSecurity() should be taking wiring security type (e.g. WPA2 instead of WLAN_SEC_WPA2) #2098
  • [Boron] Fixes SARA R4 power on sequence where the default attempt should be made with runtime baudrate #2107
  • [Gen 2] Fixes an issue with I2C bus pins driven low if building with JTAG/SWD enabled #2080
  • [Boron] Fixes an issue with SARA R4 modems on LTE Borons becoming unresponsive when sending substantial amount of network data continuously #2100
  • Fix session resumption in AUTOMATIC system mode #2024

INTERNAL

  • Run on-device tests under the DeviceOS test runner #2140 #2150
  • Remove old deprecated platforms #2150
  • Addresses multiple issues in on-device no-fixture tests #2150

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v2.0.0/particle_device-os@2.0.0.zip


Programming and Debugging

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

Branches

release/stable and master branches have been updated to point to v2.0.0 tag.

3 Likes

Device OS 2.0.1 Default Release (LTS) is available in the Web IDE, Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).

released on December 16th, 2020

Note: This is a Release and may be used for production. Any known issues are likely slated for a future version, see GitHub issues.

To learn more about our new LTS release line, read our blog post.

You can view information about Device OS versions, upgrades and downgrades here.

NOTE: This release enables a change in product firmware update process from earlier versions of Device OS: Electrons and Gen 3 devices will receive a bootloader update as a first step without triggering Safe Mode, to ensure that the rest of the update process can benefit from safety enhancements present in the LTS version of the bootloader (#2151 and #2176)


2.0.1

ENHANCEMENTS

  • [Gen 3] Remove incompatibility that required intermediate update through Device OS 1.1.0 #2254

BUGFIXES

  • [Gen 3] Fix processing of modules with MODULE_DROP_MODULE_INFO flag in the bootloader, when scheduled to be flashed by Device OS versions before 2.0.0-rc.1 #2246
  • Allow SystemSleepNetworkFlag::INACTIVE_STANDBY to be specified when entering HIBERNATE sleep mode to keep the network coprocessor in its current state #2248
  • Add inline optimization to speed up fast pin API calls #2251

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v2.0.1/particle_device-os@2.0.1.zip


Programming and Debugging

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

Branches

release/stable and master branches have been updated to point to v2.0.1 tag.

Device OS 3.0.0-beta.1 Beta Release is available in the Web IDE and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).

Please refer to Workbench FAQ on how to setup custom Device OS location and checkout v3.0.0-beta.1 tag from Device OS repository.

released on December 24th, 2020

Note: This is a Beta Pre-Release for testing only. API’s may change before a Release Candidate is created.

This is the first pre-release on non-LTS feature development branch (3.x). To learn more about our new LTS release line, read our blog post.

You can view information about Device OS versions, upgrades and downgrades here.


3.0.0-beta.1

BREAKING CHANGES

  • [Cellular] Remove rssi and qual from Cellular.RSSI() #2212

FEATURES

  • [Gen 3] OTAv3 protocol #2199
  • [Tracker] ESP32 WiFi scanning support #2250
  • [Cellular] SystemPowerFeature::DISABLE_CHARGING configuration option to enable or disable charging #2257
  • Network.isOn() and Network.isOff() APIs to query the network interface power state #2205
  • [Gen 3] BLE legacy pairing #2237
  • [Cellular] Query cellular signal while trying to register on a network #2232
  • [Tracker] WiFi/GNSS/FuelGauge sleep wake-up sources #2200
  • Configure multiple pins as wakeup source at a time #2228 #2231

ENHANCEMENTS

  • [Gen 3] Network interface management improvements #2217
  • [Gen 3] SPI.transfer() support for constant buffers residing in flash #2196
  • [Gen 3] Add characteristic discovery to BleService #2203
  • [Gen 3] BLE Scanned/Connected/Disconnected/Data Received callbacks in C++ style #2224
  • [Gen 3] BLE scanning filter #2223
  • [Gen 3] BLE API consistency enhancements #2222
  • [Electron] Build system parts with LTO enabled #2235
  • Add more operators for BleAddress, BleUuid and IPAddress#2216
  • Upate MbedTLS to 2.22.0 #2117
  • [Tracker] ESP32 NCP firmware updated to version 0.0.7
  • Use PARTICLE_ prefix for LED defines in order not to pollute global namespace #2247
  • [Gen 3] Ethernet FeatherWing power state management #2258
  • [Cellular] Changes how signal strength and quality percentages are calculated to provide a more accurate representation of signal conditions #2236

BUGFIXES

  • [Gen 2] Fix D0 alternate-function being unconditionally reset when calling Serial1.end() #2256
  • [Gen 3] Fix an issue with BLE.scan() deadlocking #2220
    /2251)

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v3.0.0-beta.1/particle_device-os@3.0.0-beta.1.zip


Programming and Debugging

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

1 Like

Device OS 3.0.0-rc.1 Release Candidate is available in the Web IDE, Particle CLI and Workbench for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).

Released on January 22nd, 2021

Note: This is a Release Candidate and is not intended for production yet.

This is the first release candidate (RC) on non-LTS feature development branch (3.x). To learn more about our new LTS release line, read our blog post.

You can view information about Device OS versions, upgrades and downgrades here.


3.0.0-rc.1

FEATURES

  • [Cellular] Send modem firmware version to the cloud as part of the system describe message #2265

ENHANCEMENTS

  • [Gen 3] Custom logging categories for AT parser and GSM 07.10 multiplexer to differentiate between cellular modem and ESP32 on Tracker platforms #2267
  • [Tracker] Reduce code size of GSM 07.10 multiplexer implementation making sure that ESP32 and cellular NCP client use the same template variant of it #2267
  • [Electron] Speed up modem power-on #2268
  • [Tracker] Cache ESP32 NCP firmware version in non-volatile memory #2269

BUGFIXES

  • [Boron / B SoM] Fix external SIM getting stuck in initialization #2263
  • [BLE] Return false in BlePeerDevice::getCharacteristicByDescription() if expected characteristic was not found #2266
  • [Gen 3] Fix UART DMA RX transfer size issues causing DMA writes outside of the RX buffer #2264
  • [Gen 3] Fix ChannelStream::waitEvent() timeout calculation #2267
  • [Gen 3] Fix warm boot feature regression introduced in 3.0.0-beta.1 #2269
  • [Gen 3] Disconnect from the server on OTAv3 update errors #2270

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v3.0.0-rc.1/particle_device-os@3.0.0-rc.1.zip


Programming and Debugging

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