Particle Device OS Updates Thread

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

Released on July 13th, 2021

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

This is a 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.

Gen 3 256KB application binary support

Device OS 3.1 brings support for 256KB application binaries to all Gen 3 platforms (Argon, Boron, B SoM, B5 SoM, Tracker). A few important aspects of this change:

  1. Compatibility with 128KB applications built with < Device OS 3.1 versions is maintained. Devices can still run them even if other parts have been upgraded to Device OS 3.1+.
  2. Upgrade process OTA (including product-based upgrades) is transparent.
  3. When upgrading locally (using DFU or Serial), make sure to update the bootloader first, as it has some logic managing compatibility between 128KB and 256KB application types. See this page on steps how to perform the update.
  4. If using standalone Particle CLI installation, make sure it’s updated to >= 2.12.0 version, which includes support for 256KB applications.

3.1.0

FEATURES

  • [Gen 3] 256KB application support #2322
  • Support for DTLS connection IDs #2249
  • GCC 10 support #2288
  • [Gen 3] BLE LESC support #2262
  • [Gen 3] BLE 5 PHY_CODED (long range) scanning and advertising support #2287 #2298 #2321
  • [Tracker] AB1805 native watchdog support #2316
  • [Boron / B SoM / Electron] Support for SARA R410 05.12 modem firmware #2317 #2319 #2318
  • Add an API to get the maximum supported size of event data #2315

ENHANCEMENTS

  • [Argon] Cache ESP32 MAC address in persistent storage to improve boot-up times #2327
  • [Cellular] Inhibit Cellular URCs before going into sleep to prevent them from triggering wake-up #2295 #2321
  • [Gen 3] Remove XIP support for accessing the external flash #2302 #2321
  • [Photon / P1] Enable LTO #2288
  • Trigger a compiler error when a function returning a value does not do so #2323
  • [Gen 3] Fix non-MBR-based bootloader updates #2327

BUGFIXES

  • Do not reset the DTLS session on socket errors #2335 #2337
  • [Cellular] Prevent ICCID querying errors when not connected to a cellular network by using airplane mode CFUN=4 #2328
  • [Photon / P1] Make sure to close all sockets when deinitializing WICED WLAN connectivity subsystem #2313 #2321
  • [Gen 2] Fix unexpected network connection establishment after exiting sleep mode when only Network.on() was called #2309
  • [Gen 2] Fix unexpected network connection establishment when the modem or WiFi initialization failes, but only Network.on() was called #2309
  • Correctly restore network interface power state after waking up from STOP or ULTRA_LOW_POWER sleep modes #2308
  • Fix the issue that the Particle.disconnect() doesn’t clear the auto-connect flag #2306
  • [Electron] Fix unintended modem reset after an ongoing network registartion attempt is actively cancelled by the application #2307
  • Fix Particle.unsubscribe() not preserving system subscriptions #2293
  • Querying the value of an empty string variable causes an error #2297

INTERNAL

  • [ci] Remove build directory after finishing the build job #2311
  • [ci] Fix MarkupSafe weirdness #2314
  • Add an integration test to validate network/cloud connection time SLOs #2312 #2320 #2321
  • Allow clearing session data and running custom setup code in integration tests #2280
  • Add .bundleignore for Workbench Device OS source code bundles #2326
  • Manage GCC dependencies with .workbench/manifest.json d94f08030

Programming and Debugging

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