Particle Device OS Updates Thread

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.