Particle Device OS Updates Thread

Device OS 3.3.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 March 18th, 2022

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

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

Gen 3 256KB application binary support

Device OS 3.1 and further releases bring 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.3.0-rc.1

FEATURES

  • [Gen3] BLE Provisioning Mode #2382 #2379 #2405
  • System.off() API support for unsubscribing from system events/handlers #2390

ENHANCEMENTS

  • 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
  • [ci] Migration to CircleCI #2395
  • Adds ability to override the panic handler in user applications #2384
  • [gen3] SystemPowerConfiguration::socBitPrecision(uint8_t bits)) API added #2401

BUGFIXES

  • Thread/interrupt safety for system_event_t subscriptions #2390

INTERNAL

  • Removes WiFiTesting mode and Setup over Serial1 #2386
  • [gen3] Add GCC feature ‘build-id’ into the system part1, monolithic and user apps #2391 #2400
  • Moves legacy makefile-based unit tests to CMake #2396
  • Makes system_version.h compliant with C; Coalesce FreeRTOS task list internals into single location #2399
  • Improves reliability of a few tests #2406

System Binaries (all devices)

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


Programming and Debugging

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

Device OS 3.3.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 April 4th, 2022

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

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.


3.3.0

FEATURES

  • [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

ENHANCEMENTS

  • 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
  • [ci] Migration to CircleCI #2395
  • Adds ability to override the panic handler in user applications #2384
  • [gen3] SystemPowerConfiguration::socBitPrecision(uint8_t bits)) API added #2401

BUGFIXES

  • Thread/interrupt safety for system_event_t subscriptions #2390
  • [gen3] BLE: introduce wiring APIs to change ATT MTU #2398
  • [gen3] Dummy setup code should not return error #2411

INTERNAL

  • Removes WiFiTesting mode and Setup over Serial1 #2386
  • [gen3] Add GCC feature ‘build-id’ into the system part1, monolithic and user apps #2391 #2400
  • Moves legacy makefile-based unit tests to CMake #2396
  • Makes system_version.h compliant with C; Coalesce FreeRTOS task list internals into single location #2399
  • Improves reliability of a few tests #2406
  • [test] fixes integration slo/connect_time #2412
  • [ci] fixes gcovr report generation #2409
  • Updates C++ standard version to C++17 (gnu variant) #2414
  • [test] improves wiring/no_fixture_long_running NETWORK_XX test timing #2415
  • [test] improves wiring/no_fixture LISTENING & NETWORK test timing #2416

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v3.3.0/particle_device-os@3.3.0.zip


Programming and Debugging

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

Device OS 4.0.0-beta.1 Beta Pre-Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).

Released on July 28th, 2022

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

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

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

Note: Critical Bugfixes from 3.x will already be 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.

Gen 3 256KB application binary support

Device OS v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

4.0.0-beta.1

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.

DEPRECATION

  • [deprecation][gen2] 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

FEATURES

  • [esomx] Adds support for new platform esomx #2443 #2459
  • [esomx] Determine flash part at runtime #2456
  • [gen3][quectel] Adds support for BG95-M1, BG95-MF, BG77, and EG91-NAX #2458
  • [ota] new API System.updateStatus() #2344

ENHANCEMENTS

  • [gen3] wifi: add dhcp 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

BUGFIXES

  • [gen3] port newlib stdin/stdout/stderr memory leak workaround #2467
  • [esomx] map ADC channels to the correct pins #2495
  • [gen3] hal: fix power leak on Boron #2452
  • [gen3] fixes hardfault during low level USB peripheral initialization under an atomic section #2448
  • [gen3] Device unable to enter listening mode with button press #2451
  • Return relevant error from control request to enter listening mode #2419

INTERNAL

  • [gcc] Allow overriding the platform ID on the GCC platform #2462
  • [gcc] Enable OTA updates on the GCC platform #2464
  • [gcc] Fix GCC platform on some versions of GCC; Fix building of wiring/api tests on CI #2483
  • [workbench] Update workbench buildscripts to 1.11.0 #2465
  • [workbench] Stop ignoring device os scripts directory #2471
  • [workbench] Remove redundant toolchain overrides #2489
  • [workbench] update-device-os-workbench-manifest-json #2457
  • [wifi] Add stubs to allow setting common country code and channel plan in P2 #2473 #2485
  • [tests] Change PWM pins to better match e-series pinout for E SoM X. Fix other tests #2463
  • [tests] Misc changes to tests from 5.x #2466
  • [tests][esomx] disable RGB pwm channel(s) when running pwm tests #2494
  • [tests] Wi-Fi resolve test improvements #2454
  • [ci] test-build-system-tune-timeouts #2455
  • [ci] minor update sc-101315/device-os-manifest #2449
  • [ci] chore/ci-less-frequent-cross-platform-build-checks #2434
  • [ci] feature/sc-100324/ci-build-cross-platform #2418
  • [docs] Update dependencies for ARM GCC 10.2.1 #2431
  • [gen3] suppress certain reviewed GCC warnings [sc-100940] #2420

3.3.0

FEATURES

  • [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

ENHANCEMENTS

  • 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
  • [ci] Migration to CircleCI #2395
  • Adds ability to override the panic handler in user applications #2384
  • [gen3] SystemPowerConfiguration::socBitPrecision(uint8_t bits)) API added #2401

BUGFIXES

  • Thread/interrupt safety for system_event_t subscriptions #2390
  • [gen3] BLE: introduce wiring APIs to change ATT MTU #2398
  • [gen3] Dummy setup code should not return error #2411

3.2.0

FEATURES

  • [wiring] acquireSerialXBuffer() API support for UART #2375
  • [Boron / B SoM ] Support for SARA R510 #2359 #2365
  • [Electron] Optional feature to use HSE/LSI as RTC clock source instead of LSE (external 32KHz XTAL) #2354
  • [Gen 3] BLE: Add ability to set and scan extended advertisement size (when using Coded PHY) #2331

ENHANCEMENTS

  • Enable GCC -Wextra when building Device OS to enable additional diagnostics provided by GCC. Fix issues uncovered #2340
  • Refactor system describe/info JSON generation to reduce size and remove invalid modules from it #2347 #2349
  • [Boron / B SoM / R510] Add additional modem responsiveness check on warm boot to avoid triggering R510-specific initialization issue #2373

BUGFIXES

  • [Gen 3] BLE: fix unintialized scan_phys in default scan parameters, preventing scanning from working unless BLE.setScanPhy() is manually set #2338 #2345
  • [Argon / Tracker] Avoid power leakage through ESP32 ESPBOOT pin #2342
  • Fix parsing of JSON strings with more than 127 tokens #2348
  • Clear module slots in DCT when preparing for an OTA update #2346
  • [Gen 3] Increase BLE operation timeout to ensure that BLE events are correctly handled and do not trigger an assertion #2371
  • [Argon] Fix occasional WiFI setup issue over BLE #2372
  • [Gen 3] Ensure that invalid modules are not presented to the cloud in System Describe message #2374
  • [Gen 3] BLE: Fix copy-constructor and assignment operator issues in wiring APIs #2376
  • 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

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

3.0.0

BREAKING CHANGES

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

FEATURES

  • [Electron] Proactively attempt to recover from a number of failed cellular registration states #2301
  • [Cellular] Battery presence detection when charging is disabled #2272
  • Increase the maximum DTLS packet size and payload of the cloud primitives #2260
  • [Cellular] Send modem firmware version to the cloud as part of the system describe message #2265
  • [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

  • [Argon] Reduce cloud keep-alive timeout to 25 seconds from 30 seconds #2304
  • Improve I2C reset procedure to be less destructive and issue STOP condition as soon as possible #2303
  • [Cellular] Perform PMIC/FuelGauge/RTC I2C bus reset on boot to avoid accidental writes after a non-graceful reset #2303
  • [Cellular] System power management improvements #2272 #2290
  • [Cellular] Update ICCID/IMSI to APN map with a new Kore ICCID prefix #2276
  • Disable some of the elliptic-curves not in use to save flash space #2273
  • [Cellular] Update LTE signal strength/quality parameters (RSRP/RSRQ) mapping to percentages #2285
  • [B5 SoM / Quectel] Improve warm and cold boot behavior #2300
  • [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
  • [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
  • [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 3] Add workaround for Nordic nRF52840 anomaly 219 (TWIM: I2C timing spec is violated at 400 kHz) #2303
  • [Gen 3] Fix micros/millis/unixtime becoming non-monotonic 2a4fcb82b #2303
  • [Gen 3] Use PIN_INVALID when initializing SPI peripheral to avoid overriding the pin mode of the default CS pin on reinitialization #2275
  • [Argon / Tracker] Make sure that ESP32 NCP power state is correctly initialized on boot #2279
  • [Electron] Increase AT+COPS timeout to 5 minutes #2281
  • [Electron] Fix Sleep 2.0 APIs taking up to 10 minutes to power-off the cellular modem while it's attempting network registration #2284
  • [B5 SoM / Tracker] Fix warm boot sometimes requiring modem reset #2289
  • [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
  • [Gen 2] Fix D0 alternate-function being unconditionally reset when calling Serial1.end() #2256
  • [Gen 3] Fix an issue with BLE.scan() deadlocking #2220

System Binaries (all devices)

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


Programming and Debugging

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

Device OS 5.0.0 Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).

Released on August 19th, 2022

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

This is a release on non-LTS feature development branch (5.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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

5.0.0

BREAKING CHANGE

  • [esomx] Remove undefined pins from esomx pinmap #2505

FEATURES

  • P2 Support #2466
  • Tracker M Support #2492 #2518 #2522
  • [p2] Allow setting WiFi country code and channel plan #2485 #2473
  • [rtl872x] Implement HAL event group for UART #2493
  • [rtl872x] Implement APIs to set/get BLE address #2508

ENHANCEMENTS

  • [p2][wifi] Add more complete WiFi network configuration information for P2 #2474
  • [p2][photon2] Add VBAT_MEAS pin and charging indication pin for Photon2 #2482
  • [ethernet][p2] Allow ethernet detection on P2 #2478
  • Register without waiting for CSD connections #2404

BUGFIXES

  • [p2] usart: flush DMA FIFO data when required #2477
  • [gen3] port newlib stdin/stdout/stderr memory leak workaround #2467
  • [p2] Flash supports page write and other fixes #2470
  • [esomx] map ADC channels to the correct pins #2495
  • [rtl872x] Fix millis() rollover #2501
  • [p2][gen3] fixes for attachInterrupt() / noInterrupts() / interrupts() APIs #2503
  • [rtl872x] hal: fix issue that uart rx dma may hang up. #2502
  • [rtl872x] hal: implement i2c sleep and fix the reset APIs #2497
  • [p2] attachInterrupt() should not configure input pullup/pulldown/nopull #2507
  • [p2] PWM HAL fixes #2511
  • Disable direct logging in listening mode #2512
  • Ensure task yield and system thread pump in system_delay_pump #2519 #2521

INTERNAL

  • [p2] deprecate tinker-fqc app #2479 #2480 #2481
  • Update devtools .bundleignore for P2 SDK files #2475
  • Fix GCC platform on some versions of GCC; Fix wiring/api tests for P2; Fix building of wiring/api tests on CI #2483
  • [p2] Fix DCache alignment #2476
  • [p2] fixes INTERRUPTS_01_isisr_willpreempt_servicedirqn test #2486
  • Remove redundant toolchain overrides #2489
  • Enable OTA updates on the GCC platform #2464
  • Allow overriding the platform ID on the GCC platform #2462
  • [workbench] Update workbench buildscripts to 1.11.0 #2465
  • [tests] Change PWM pins to better match e-series pinout for E SoM X. Fix other tests #2463
  • [tests] Fix broken tone and servo tests for p2 platform, also EEPROM_03 for all. #2469
  • [workbench] Stop ignoring device os scripts directory #2471
  • [p2] Simplify burn in LED blink, work around System.millis() reset #2491
  • [tests][esomx] disable RGB pwm channel(s) when running pwm tests #2494
  • [rtl872x] Poll micros instead of rom DelayUs function. Tweak 1ms test #2499
  • [ci] branch pattern changes for test-build-system #2509
  • [p2] PWM fixture tests #2511
  • [test] fixes race condition with wiring/no_fixture TIME_17 #2513
  • [services] device tree stubs #2515
  • [tests] integration: bump binary-version-reader and device-constants dependency for P2-related module manipulation fixes #2516

System Binaries (all devices)

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


Programming and Debugging

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

1 Like

Device OS 4.0.0 LTS Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).

Released on August 30th, 2022

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

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

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

Note: Critical Bugfixes from 3.x will already be 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.

Gen 3 256KB application binary support

Device OS v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

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.

DEPRECATION

  • [deprecation][gen2] supply secure #2442
  • [deprecation] Adds warning to some deprecated API's that will be removed in Device OS 5.x #2445
  • [deprecation] PRODUCT_ID macro #2446
  • [deprecation] remove setup_done flag and add deprecation notice #2447

FEATURES

  • [ota] new API System.updateStatus() #2344
  • [esomx] Adds support for new platform esomx #2443 #2459 #2505 #2495
  • [gen3] Determine flash part at runtime #2456
  • [gen3][quectel] Adds support for BG95-M1, BG95-MF, BG77, and EG91-NAX #2458
  • System.hardwareInfo() API #2526 #2529

ENHANCEMENTS

  • [gen3] wifi: add dhcp 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

BUGFIXES

  • [gen3] fixes hardfault during low level USB peripheral initialization under an atomic section #2448
  • [gen3] Device unable to enter listening mode with button press #2451
  • Return relevant error from control request to enter listening mode #2419
  • [gen3] hal: fix power leak on Boron #2452
  • [gen3] port newlib stdin/stdout/stderr memory leak workaround #2467
  • [gen3] fixes interrupts() API: should not clear pending interrupts #2504
  • Ensure that RTOS context switch is performed in tight delay(1) loops #2519 #2520 #2524

INTERNAL

  • [ci] minor update sc-101315/device-os-manifest #2449
  • [ci] chore/ci-less-frequent-cross-platform-build-checks #2434
  • [docs] Update dependencies for ARM GCC 10.2.1 #2431
  • [gen3] suppress certain reviewed GCC warnings [sc-100940] #2420
  • [ci] feature/sc-100324/ci-build-cross-platform #2418
  • [test] Wi-Fi resolve test improvements #2454
  • [workbench] update-device-os-workbench-manifest-json #2457
  • [ci] test-build-system-tune-timeouts #2455
  • Allow overriding the platform ID on the GCC platform #2462
  • Enable OTA updates on the GCC platform #2464
  • Fix GCC platform on some versions of GCC; Fix building of wiring/api tests on CI #2483
  • [workbench] Update workbench buildscripts to 1.11.0 #2465
  • [workbench] Stop ignoring device os scripts directory #2471
  • [workbench] Remove redundant toolchain overrides #2489
  • [wifi] Add stubs to allow setting common country code and channel plan in P2 #2473 #2485
  • [tests] Change PWM pins to better match e-series pinout for E SoM X. Fix other tests #2463
  • [tests] Misc changes to tests from 5.x #2466
  • [tests][esomx] disable RGB pwm channel(s) when running pwm tests #2494
  • Streamline .bundleignore between 5.x and 4.x codebases #2496
  • branch pattern changes for test-build-system #2510
  • [test] fixes race condition with wiring/no_fixture TIME_17 #2514

3.3.0

FEATURES

  • [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

ENHANCEMENTS

  • 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
  • [ci] Migration to CircleCI #2395
  • Adds ability to override the panic handler in user applications #2384
  • [gen3] SystemPowerConfiguration::socBitPrecision(uint8_t bits)) API added #2401

BUGFIXES

  • Thread/interrupt safety for system_event_t subscriptions #2390
  • [gen3] BLE: introduce wiring APIs to change ATT MTU #2398
  • [gen3] Dummy setup code should not return error #2411

3.2.0

FEATURES

  • [wiring] acquireSerialXBuffer() API support for UART #2375
  • [Boron / B SoM ] Support for SARA R510 #2359 #2365
  • [Electron] Optional feature to use HSE/LSI as RTC clock source instead of LSE (external 32KHz XTAL) #2354
  • [Gen 3] BLE: Add ability to set and scan extended advertisement size (when using Coded PHY) #2331

ENHANCEMENTS

  • Enable GCC -Wextra when building Device OS to enable additional diagnostics provided by GCC. Fix issues uncovered #2340
  • Refactor system describe/info JSON generation to reduce size and remove invalid modules from it #2347 #2349
  • [Boron / B SoM / R510] Add additional modem responsiveness check on warm boot to avoid triggering R510-specific initialization issue #2373

BUGFIXES

  • [Gen 3] BLE: fix unintialized scan_phys in default scan parameters, preventing scanning from working unless BLE.setScanPhy() is manually set #2338 #2345
  • [Argon / Tracker] Avoid power leakage through ESP32 ESPBOOT pin #2342
  • Fix parsing of JSON strings with more than 127 tokens #2348
  • Clear module slots in DCT when preparing for an OTA update #2346
  • [Gen 3] Increase BLE operation timeout to ensure that BLE events are correctly handled and do not trigger an assertion #2371
  • [Argon] Fix occasional WiFI setup issue over BLE #2372
  • [Gen 3] Ensure that invalid modules are not presented to the cloud in System Describe message #2374
  • [Gen 3] BLE: Fix copy-constructor and assignment operator issues in wiring APIs #2376
  • 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

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

3.0.0

BREAKING CHANGES

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

FEATURES

  • [Electron] Proactively attempt to recover from a number of failed cellular registration states #2301
  • [Cellular] Battery presence detection when charging is disabled #2272
  • Increase the maximum DTLS packet size and payload of the cloud primitives #2260
  • [Cellular] Send modem firmware version to the cloud as part of the system describe message #2265
  • [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

  • [Argon] Reduce cloud keep-alive timeout to 25 seconds from 30 seconds #2304
  • Improve I2C reset procedure to be less destructive and issue STOP condition as soon as possible #2303
  • [Cellular] Perform PMIC/FuelGauge/RTC I2C bus reset on boot to avoid accidental writes after a non-graceful reset #2303
  • [Cellular] System power management improvements #2272 #2290
  • [Cellular] Update ICCID/IMSI to APN map with a new Kore ICCID prefix #2276
  • Disable some of the elliptic-curves not in use to save flash space #2273
  • [Cellular] Update LTE signal strength/quality parameters (RSRP/RSRQ) mapping to percentages #2285
  • [B5 SoM / Quectel] Improve warm and cold boot behavior #2300
  • [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
  • [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
  • [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 3] Add workaround for Nordic nRF52840 anomaly 219 (TWIM: I2C timing spec is violated at 400 kHz) #2303
  • [Gen 3] Fix micros/millis/unixtime becoming non-monotonic 2a4fcb82b #2303
  • [Gen 3] Use PIN_INVALID when initializing SPI peripheral to avoid overriding the pin mode of the default CS pin on reinitialization #2275
  • [Argon / Tracker] Make sure that ESP32 NCP power state is correctly initialized on boot #2279
  • [Electron] Increase AT+COPS timeout to 5 minutes #2281
  • [Electron] Fix Sleep 2.0 APIs taking up to 10 minutes to power-off the cellular modem while it's attempting network registration #2284
  • [B5 SoM / Tracker] Fix warm boot sometimes requiring modem reset #2289
  • [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
  • [Gen 2] Fix D0 alternate-function being unconditionally reset when calling Serial1.end() #2256
  • [Gen 3] Fix an issue with BLE.scan() deadlocking #2220

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v4.0.0/particle_device-os@4.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 v4.0.0 tag.

2 Likes

Device OS 5.0.1 Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).

Released on September 3rd, 2022

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

This is a release on non-LTS feature development branch (5.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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

5.0.1

FEATURES

  • Added APIs for hardware configuration for reading OTP format #2526
  • [trackerM] Update demux driver and pinmap to support more latest hardware

BUGFIXES

  • Secures DCT initialization from getting interrupted between creating DCT file and filling it with 0xff to default state #2530
  • [trackerM] Fix hal dynalib tables #2523

INTERNAL

  • [trackerM] Fix interrupt based tests #2527

System Binaries (all devices)

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


Programming and Debugging

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

1 Like

Device OS 5.1.0 Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).

Released on September 30th, 2022

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

This is a release on non-LTS feature development branch (5.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.

5.1.0

FEATURES

  • [rtl8721x][p2] supports BLE GATT client, BLE central role and pairing APIs #2542

ENHANCEMENTS

  • [rtl872x] Improve ADC accuracy #2546
  • [rtl8721x] update rtl872x.tcl script for latest openocd version #2525
  • [hal] wifi: add generic ‘world’ country code as not every country code is exposed through API #2539
  • [rtl8721x] Increase power management thread stack size for Tracker M #2535
  • [trackerM]Fix MCP23S17 driver to allow mirrored (shared) interrupts #2533

BUGFIXES

  • [rtl872x] usb: make sure CDC line coding struct is packed #2541
  • [rtl872x] hal: fix fetching of MAC addresses #2537
  • [tests] Fix listening mode tests on trackerM #2534
  • [wiring] ApplicationWatchdog: fixes potential 2x timeout required to fire #2536
  • [p2][gen3]Fix BLE control request channel sending malformed packets #2538
  • [tests/trackerm] Add workaround for TrackerM ota tests #2544

INTERNAL

  • Use new prtcl compile/clean commands for internal CI builds #2543
  • Improve COAP message logging #2498
  • HAL wiring api calls to access exflash read/write functions for OTP flash page #2540

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v5.1.0/particle_device-os@5.1.0.zip


Programming and Debugging

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

1 Like

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

Released on October 26th, 2022

Note: This is a Release Candidate and is not intended for production yet. This is the first Release Candidate for the upcoming Device OS release 4.0.1 (LTS) with critical bugfixes and backports from 5.x release line

To learn more about 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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

4.0.1-rc.1

BUGFIXES

  • [wiring] ApplicationWatchdog: fixes potential 2x timeout required to fire #2536
  • [gen3]Fix BLE control request channel sending malformed packets #2538
  • Fix issue with platform_ncp_get_info(0) for quectel platforms #2532
  • Secures DCT initialization from getting interrupted between creating DCT file and filling it with 0xff to default state #2530

INTERNAL

  • Use new prtcl compile/clean commands for internal CI builds #2543
  • Increase timeouts for internal CI builds on windows #2545
  • HAL wiring api calls to access exflash read/write functions for OTP flash page #2540
  • [hal] wifi: add generic ‘world’ country code as not every country code is exposed through API #2539

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v4.0.1-rc.1/particle_device-os@4.0.1-rc.1.zip


Programming and Debugging

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

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

Released on November 14, 2022

Note: This is a Release and may be used for production. This is the second minor Device OS Release in the LTS line with critical bugfixes and backports from 3.x release line.

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

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


2.3.1

BUGFIXES

  • [Cellular] R410 initialization SIM failure workaround #2573
  • [Boron / B SoM] R410 PPP crash in network phase workaround #2571

System Binaries (all devices)

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


Programming and Debugging

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

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

Released on November 14th, 2022

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

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.


3.3.1

BUGFIXES

  • [Boron / B SoM] R410 PPP crash in network phase workaround #2571
  • [Cellular] R410 initialization SIM failure workaround #2573

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v3.3.1/particle_device-os@3.3.1.zip


Programming and Debugging

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

Device OS 4.0.1 LTS is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).

Released on November 14th, 2022

Note: This is a Release and may be used for production. This is the second Release in the Device OS release 4.x line (LTS) with critical bugfixes and backports from 5.x release line

To learn more about 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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

4.0.1

BUGFIXES

  • [wiring] ApplicationWatchdog: fixes potential 2x timeout required to fire #2536
  • [gen3]Fix BLE control request channel sending malformed packets #2538
  • Fix issue with platform_ncp_get_info(0) for quectel platforms #2532
  • Secures DCT initialization from getting interrupted between creating DCT file and filling it with 0xff to default state #2530
  • [Boron / B SoM] R410 PPP crash in network phase workaround #2571
  • [Cellular] R410 initialization SIM failure workaround #2573

INTERNAL

  • Use new prtcl compile/clean commands for internal CI builds #2543
  • Increase timeouts for internal CI builds on windows #2545
  • HAL wiring api calls to access exflash read/write functions for OTP flash page #2540
  • [hal] wifi: add generic ‘world’ country code as not every country code is exposed through API #2539

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v4.0.1/particle_device-os@4.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 v4.0.1 tag.

Device OS 4.0.2 LTS is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).

Released on December 15th, 2022

Note: This is a Release and may be used for production. This is the third Release in the Device OS release 4.x line (LTS) with critical bugfixes and backports from 5.x release line

To learn more about 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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

4.0.2

BUGFIXES

  • [gen3] Use OTP Feature flag to change ADC reference source #2597
  • [boron]Use the internal ADC reference on some Gen 3 platforms #2588

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v4.0.2/particle_device-os@4.0.2.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 v4.0.2 tag.

1 Like

Device OS 5.2.0 Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).

Released on December 19th, 2022

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

This is a release on non-LTS feature development branch (5.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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

5.2.0

FEATURES

  • Initial support for BG95-M6 modem #2555

ENHANCEMENTS

  • [TrackerM] Collect cellular properties with system info #2602
  • [rtl872x] fixes System.ticks() #2600
  • System setup and BLE threading improvements #2587
  • [rtl872x] [freertos] [experimental] multi-step priority disinheritance #2581
  • [rtl872x] sleep improvements #2586
  • [rtl872x] fixes pinResetFast clearing too many pins and improves speed #2582
  • [rtl872x] prebootloader: enable BOR with lowest available thresholds #2569

BUGFIXES

  • [rtl872x] Fix USART/DMA deadlock #2603
  • [rtl872x] Free memory from rtl sdk in SystemISRTaskQueue #2599
  • [rtl872x] exflash: revert dcache invalidate calls after writes/erasures #2598
  • [rtl872x] Fixes a deadlock when requiring to enable RSIP #2596
  • [gen3] Use OTP Feature flag to change ADC reference source #2597
  • [rtl872x] hal: remove an assert in read()/peek() and instead adjust read/peek size #2594
  • [boron]Use the internal ADC reference on BRN404X #2588
  • [p2] Fixes the conflict between Flash API and XIP #2561
  • [Quectel] Account for “eMTC” type while obtaining signal values #2589
  • [Boron / B SoM] R410 PPP crash in network phase workaround #2571
  • [Cellular] R410 initialization SIM failure workaround #2573
  • [gen3] [p2] Fix i2c hal deadlock #2572
  • [TrackerM] Prevent connection over wifi when configured in SCAN_ONLY mode #2567
  • [p2] WiFi bugfixes #2562
  • [tracker/trackerm] Fix acquireWireBuffer for platforms where system initializes I2C before user app 2551
  • [rtl872x] BLE Central connection failure when peer disconnects #2552

INTERNAL

  • [test] Use compatible pins for PWM tests on TrackerM #2592
  • [test] bump fastpin max limit to 10% #2591
  • [test] Add thresholds for trackerM for slo tests #2590
  • [test] Modify pins for trackerM spix tests #2585
  • [trackerm] TrackerM EVT v0.0.3 pinmap update #2580
  • Allow setting the ICCID of a virtual device #2583
  • Protobuf defs refactor / fixes submessage encoding after nanopb 0.4.5 upgrade #2578
  • Update nanopb to 0.4.5 #2563
  • Fix no_fixture_i2c for esomx,boron,bsom platforms #2559
  • [CI] fixes #2564
  • Move no_fixture_i2c to correct dir and symlink to integration/wiring #2558
  • [trackerm] TrackerM EVT v0.0.2 pinmap update #2550
  • Increase timeouts for internal CI builds on windows #2545

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v5.2.0/particle_device-os@5.2.0.zip


Programming and Debugging

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

Device OS 5.3.0 Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).

Released on February 21, 2023

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

This is a release on non-LTS feature development branch (5.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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

5.3.0

FEATURES

  • Static IP configuration support #2621
  • Hardware watchdog #2595#2617#2620
  • Ethernet GPIO config #2616
  • [wiring][gen3] Allow gen3 to select internal ADC reference source #2619

ENHANCEMENTS

BUGFIXES

  • [rtl872x] enable factory reset feature #2612
  • [rtl872x] Dcache fixes for exflash HAL #2623
  • [rtl872x] fix overflow error in HAL_Delay_Microseconds #2606
  • [nRF52] BLE plus RTC sleep causes hardfault #2615
  • [rtl872x] hal: fix heap allocation issue in interrupt hal and postpone the mode button initialization. #2624
  • [rtl872x] bootloader: fix destination address flash page alignment in case of compressed modules #2628

INTERNAL

  • [photon2] Update FQC test with photon 2 pinout #2610
  • [test] mailbox support and support for resets within tests #2611
  • [bootloader] remove nanopb dependency#2607
  • Server key rotation #2570
  • Fix GCC platform build #2613#2618
  • Ensure thread07 test executes as intended #2622
  • [rtl872x] Fix watchdog tests; system/application thread stack size increase #2626
  • [test] turn off NCP before testing wiring/watchdog #2627

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v5.3.0/particle_device-os@5.3.0.zip


Programming and Debugging

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

Device OS 5.3.1 Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).

Released on April 13, 2023

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

This is a release on non-LTS feature development branch (5.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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

5.3.1

ENHANCEMENTS

  • [rtl872x] Adds Wiring API System.backupRamSync() to manually backup retained variables #2633

BUGFIXES

  • [rtl872x] Fix problems waking from sleep mode #2647
  • Fixes inconsistent BLE state issues #2629
  • [rtl872x] Fixes pmic shared interrupt and usb detection #2630
  • [rtl872x] Fixes D7 configuration when exiting hibernate mode #2631
  • [rtl872x][bootloader] Fixes USB serial port not being connectable on AMD based Windows #2625#2638
  • [rtl872x] Fixes retained variables not being saved, now periodically saved every 10s #2633#2642#2644
  • [rtl872x] Fixes assertion failure waiting for connection events from the stack when BLE.connect() called #2636
  • [nRF52] Fixes watchdog timer reload value accuracy #2635
  • [rtl872x] hal: Fixes BLE notifying multiple times #2637
  • [r510] Enables PS (packet switched) only mode for R510 modems (Boron/BSoM/ESoMX) #2639#2645
  • [rtl872x] hal: Fixes I2C failing to read/write from/to slave device #2634
  • [p2] fixes SPI speed settings, and improves SPI DMA timing for larger transfers #2641
  • [rtl872x] hal: uart may deadlock on initialization #2643
  • [rtl872x] Dont enable usart RX/TX pullups#2646

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v5.3.1/particle_device-os@5.3.1.zip


Programming and Debugging

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

1 Like

Device OS 5.3.2 Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).

Released on May 18, 2023

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

This is a release on non-LTS feature development branch (5.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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

5.3.2

ENHANCEMENTS

  • [rtl872x] SPI and GPIO HAL changes to support Neopixel #2654
  • [rtl872x] Implement WiFi.selectAntenna #2651

BUGFIXES

  • [nRF52] UART sleep/wakeup #2652
  • [rtl872x] Fix Wifi stack issues #2649
  • [rtl872x] BLE scanning panic #2650

INTERNAL

  • [rtl872x] Fix burnin GPIO and SPI Flash tests for photon 2 #2653

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v5.3.2/particle_device-os@5.3.2.zip


Programming and Debugging

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

1 Like

Device OS 4.1.0 LTS is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).

Released on May 31st, 2023

Note: This is a Release and may be used for production. This is the third Release in the Device OS release 4.x line (LTS) with critical bugfixes and backports from 5.x release line

To learn more about 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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

4.1.0

FEATURES

BUGFIXES

  • Wi-Fi/cellular network manager bugfixes #2621
  • [nRF52] UART sleep/wakeup #2652
  • [nRF52] watchdog timeout is not accurate #2635
  • [nRF52] BLE plus RTC sleep causes hardfault #2615
  • Fix inconsistent BLE state issue #2629
  • [wiring][gen3] Allow gen3 to select internal ADC reference source #2619
  • System setup and BLE threading improvements #2587
  • [quectel] Account for "eMTC" type while obtaining signal values #2589
  • Fix i2c hal deadlock #2572
  • [r510] enable PS (packet switched) Only mode for R510 modems (Boron/BSoM/ESoMX) #2640 See TAN012

INTERNAL

  • [test] turn off NCP before testing wiring/watchdog #2627
  • [test] Remove manual wakeup. Hibernate + watchdog on platforms that support it #2620
  • [test] add more watchdog test cases #2617
  • [test] mailbox support and support for resets within tests #2611
  • [test] Move no_fixture_i2c to correct dir and symlink to integration/wiring #2558
  • [test] Fix listening mode tests #2534
  • [test] Ensure thread07 test executes as intended #2622
  • Protobuf defs refactor / fixes submessage encoding after nanopb 0.4.5 upgrade #2578
  • Update nanopb to 0.4.5 #2563

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v4.1.0/particle_device-os@4.1.0.zip


Programming and Debugging

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

Device OS 5.4.0 Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).

Released on June 16, 2023

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

This is a release on non-LTS feature development branch (5.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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

5.4.0

ENHANCEMENTS

  • [rtl872x] USB HID Mouse/Keyboard support #2659

BUGFIXES

  • Fix/nanopb string max size #2657
  • Fixes clean target for applications with large number of files + P2 PSRAM size calculation issues #2661

INTERNAL

  • [rtl872x] Allow KM4 SDK Bootloader images to boot #2656
  • [rtl872x] Combined MFG firmware #2658

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v5.4.0/particle_device-os@5.4.0.zip


Programming and Debugging

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

Device OS 5.4.1 Release is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).

Released on July 20, 2023

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

This is a release on non-LTS feature development branch (5.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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

5.4.1

ENHANCEMENTS

  • [rtl872x] dynamically enable Wi-Fi stack on demand #2664

BUGFIXES

  • [rtl872x] linker: stop relying on .dynalib + .psram_text being contiguous and properly and similarly aligned within LMA and VMA, just copy them separately #2665
  • [rtl872x] fix BLE race condition #2664

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v5.4.1/particle_device-os@5.4.1.zip


Programming and Debugging

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

Device OS 5.5.0-rc.1 Release Candidate is available in the Web IDE, Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/M SoM/P2).

Released on August 16th, 2023

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

This is a Release Candidate on non-LTS feature development branch (5.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 v3.1.x and further releases bring support for 256KB application binaries to all Gen 3 platforms (at that time: 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.

5.5.0-rc.1

FEATURES

  • Asset OTA #2668
  • [M SoM] Platform support #2681
  • [rtl872x] Experimental WPA3 support #2673
  • [WiFi] Hidden SSID support #2673
  • [rtl872x] GPIO drive strength configuration support #2680

ENHANCEMENTS

  • [WiFi] WiFI interface power state notifications #2669
  • [rtl872x] Improve SPI1 (P2 / Tracker M) and SPI (M SoM) behavior at 50MHz by changing RXD sample delay #2677
  • [rtl872x] Improve USB Serial TX performance #2672
  • [Cellular] Enables UPSV=1 low power mode for R510 when idle for >=9.2s #2674
  • [rtl872x] Fix logic level overshoot on SPI, I2C, PWM pins #2680
  • [rtl872x] Revert the QSPI flash speed to 80MHz #2684

BUGFIXES

  • [rtl872x] Fix incorrect I2C read timeout #2671
  • [rtl872x] Do not initialize RTC after waking up from HIBERNATE sleep #2667
  • [rtl872x] Disable pull resistors when pin is configure as OUTPUT #2666
  • [rtl872x] Disable SWDIO/SWDCLK pins when going into sleep #2666
  • [rtl872x] Disable brown-out detector #2679
  • [rtl872x] Avoid glitch on I2C pins when reconfiguring I2C peripheral #2682

INTERNAL

  • [WiFi] Resolve wiring/sleep20 test failures #2669
  • [nrf52840] Add factory reset test (ota/factory_reset) #2662

System Binaries (all devices)

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


Programming and Debugging

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