Particle Tools Changelog

August 30th 2022: Device OS v4.0.0 (LTS)

Note: This is a Release and may be used for production.

This is the first Device OS Release in the 4.x LTS line, based on new Feature/Enhancements/Bugfixes and Breaking Changes from the 3.x release line.

Note: If you are upgrading from 2.x, please review the changelogs highlights for 3.0.0/3.1.0/3.2.0/3.3.0 below.

Note: Critical Bugfixes from 3.x will have already been backported in the latest 2.3.0, and some other Bugfixes may only apply to previous 3.x releases. Internal changes are omitted in the 3.x changelog list below, however the full changelog may be found at the Device OS repo.

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

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


4.0.0

Breaking changes

  • Deprecate/remove the PRODUCT_ID macro #2446. Users may now use the same binary for multiple Products that share the same device Platform and Functionality. Including this macro will cause a build error and show the following message:

    The PRODUCT_ID macro must be removed from your firmware source code.
    The same compiled firmware binary may be used in multiple products that share the same platform and functionality.

Highlights

  • [deprecation][Gen 2] Supply secure #2442
  • [deprecation] Adds warning to some deprecated API's that will be removed in Device OS 5.x #2445
  • [deprecation] Remove setup_done flag and add deprecation notice #2447
  • [E SoM X] Adds support for new platform E SoM X #2443 #2459
  • [Gen 3][Quectel] Adds support for BG95-M1, BG95-MF, BG77, and EG91-NAX #2458
  • [OTA] New API System.updateStatus() #2344
  • [Gen 3] wifi: add DHCP and DNS info to wifi config #2440
  • [OTA] Additional state for firmware update checks #2344
  • Use a custom content type with CID packets when resuming the session #2441
  • System.hardwareInfo() API #2526 #2529
  • Ensure that RTOS context switch is performed in tight delay(1) loops #2519 #2520 #2524

3.3.0

Highlights

  • [Gen3] BLE Provisioning Mode #2382 #2379 #2405
  • System.off() API support for unsubscribing from system events/handlers #2390
  • CoAP Blockwise transfer for Describe messages #2377 #2417
  • Enables stack overflow detection in all builds #2392
  • Adds LOG_C_VARG() logging macro to support vargs from user apps #2393
  • Adds os_thread_dump* introspection functions to wrap the FreeRTOS functions #2394
  • Adds ability to override the panic handler in user applications #2384
  • [gen3] SystemPowerConfiguration::socBitPrecision(uint8_t bits)) API added #2401

3.2.0

Highlights

  • acquireSerialXBuffer() API support for configuring custom buffer sizes for hardware UARTs (e.g. Serial1) #2375
  • [Boron / B SoM] Support for SARA R510 #2359 #2365
  • [Gen 3] BLE: extended advertisement support with Coded PHY #2331
  • [Argon / Tracker] Avoid power leakage through ESP32 ESPBOOT pin #2342
  • Fixes parsing of JSON strings with more than 127 tokens #2348
  • Reset scheduled module updates performed by the bootloader in case a second OTA update happens before they are applied (e.g. if System.disableReset() is used to postpone a pending device reset) #2346
  • Fix hardfault handler to SOS again #2381
  • [Gen 3] Fix LittleFS truncate causing file corruption #268 #2385
  • [Gen 3] HAL - Only skip modules that fail integrity check from module info #2387

3.1.0

Highlights

  • [Gen 3] (Argon, Boron, B SoM, B5 SoM, Tracker) maximum application size has been increased from 128KB to 256KB #2322. 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.
  • A compiler will trigger an error when a function does not return a value, but was declared with a non-void return type #2323
  • GCC 10 support #2288
  • [Gen 3] BLE LE Secure Connections support #2262
  • [Gen 3] BLE LE Long Range/Coded PHY support #2287 #2298 #2321
  • [Boron / B SoM / Electron] SARA R410 05.12 modem firmware support #2317 #2319 #2318
  • APIs to query maximum payload size for cloud primitives #2315
  • Improvements to Argon boot-up times #2327
  • Improvements to sleep behavior with Cellular specified as a wake-up source #2295 #2321

3.0.0

Breaking changes

  • [Cellular] Remove rssi and qual from Cellular.RSSI() #2212
  • [Gen 3] BLE API consistency enhancements #2222

Highlights

  • OTA protocol version 3 (OTAv3) on Gen 3 platforms
  • WiFi scanning support on Tracker
  • Charging management through higher level power management API
  • Increased maximum payload sizes for cloud primitives (publishes, variables, functions)
  • Network.isOn() and Network.isOff() APIs
  • BLE legacy pairing support and other BLE enhancements
  • New Tracker-specific wake-up options
  • More accurate cellular signal strength/quality percentage calculations
  • [Cellular] Battery presence detection when charging is disabled
  • Improved cold and warm boot behavior on B5 SoMs and Trackers
  • System power management subsystem improvements

... and other bugfixes and improvements!

:star2: Be sure to read the full collection of release notes Particle Device OS Updates Thread.