Particle Device OS Updates Thread

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.