particle-iot/device-os
Device OS (Firmware) for Particle Devices
๐ฆ Device OS 6.4.1 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on May 4th, 2026_
- ---
โจ FEATURES
- USB (Serial) tethering support [#2898](https://github.com/particle-iot/device-os/pull/2898) [#2912](https://github.com/particle-iot/device-os/pull/2912)
- [Gen 4] Serial1 tethering support [#2910](https://github.com/particle-iot/device-os/pull/2910)
- [Cellular] API for sending APDUs [#2915](https://github.com/particle-iot/device-os/pull/2915)
๐ฆ ENHANCEMENTS
- [Cellular] BG95S5 cellular env vars support [#2908](https://github.com/particle-iot/device-os/pull/2908)
- Support detecting/configuring M-HAT in Tinker [#2914](https://github.com/particle-iot/device-os/pull/2914)
๐ BUGFIXES
- [Gen 4] Allows longer duration sleep with AM1805 (external RTC) [#2907](https://github.com/particle-iot/device-os/pull/2907)
- [Tracker] Expose deprecated `hal_exrtc_` functions [#2907](https://github.com/particle-iot/device-os/pull/2907)
- [Gen 4] Add locking around logical eFuse reads [#2909](https://github.com/particle-iot/device-os/pull/2909)
- [Gen 4] [scripts] fix rtl872x.tcl flash script to be more reliable [#2911](https://github.com/particle-iot/device-os/pull/2911)
- Filesystem initialization in bootloader should create `/sys` folder [#2917](https://github.com/particle-iot/device-os/pull/2917)
๐ฆ INTERNAL
- `manufacturing/empty_external_flash` test [#2917](https://github.com/particle-iot/device-os/pull/2917)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.4.1/particle_device-os@6.4.1.zip
๐ฆ Device OS 6.4.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on March 19, 2026_
- ---
โจ FEATURES
- Environment [#2892](https://github.com/particle-iot/device-os/pull/2892) [#2904](https://github.com/particle-iot/device-os/pull/2904) [#2903](https://github.com/particle-iot/device-os/pull/2903) [#2892](https://github.com/particle-iot/device-os/pull/2892) [#2903](https://github.com/particle-iot/device-os/pull/2903) [#2902](https://github.com/particle-iot/device-os/pull/2902)
- `PRE_STARTUP()` API for earlier application initialization [#2888](https://github.com/particle-iot/device-os/pull/2888)
- [system] `PARTICLE_BLE_ENABLE`, `PARTICLE_WIFI_ENABLE`, and `PARTICLE_ETHERNET_ENABLE` environment variables [#2897](https://github.com/particle-iot/device-os/pull/2897)
- [cellular] support `PARTICLE_CELLULAR_PREFERRED_BANDS`, `PARTICLE_CELLULAR_FORBIDDEN_BANDS`, and `PARTICLE_CELLULAR_PREFERRED_PLMN` environment variables [#2896](https://github.com/particle-iot/device-os/pull/2896)
- [am18x5] built-in AM18x5 driver in Device OS [#2906](https://github.com/particle-iot/device-os/pull/2906) [1bb9b26](https://github.com/particle-iot/device-os/commit/1bb9b26e6)
- `POWER_OFF` sleep mode support through AM18x5 [#2906](https://github.com/particle-iot/device-os/pull/2906)
๐ BUGFIXES
- Fix DNS server change lockup and improve DNS failure handling [#2894](https://github.com/particle-iot/device-os/pull/2894)
- [wiring] system: fix 32-bit global `millis()` being shadowed by class-member 64-bit `millis()` [9d30096](https://github.com/particle-iot/device-os/commit/9d3009660)
- [system] do not handle network activity when going into sleep mode if network manager is not initialized [97ecb3d](https://github.com/particle-iot/device-os/commit/97ecb3dab)
- [Gen 4] preserve RTC time across sleep and software resets [#2906](https://github.com/particle-iot/device-os/pull/2906) [708feb6](https://github.com/particle-iot/device-os/commit/708feb62d)
๐ฆ INTERNAL
- [tests] Test improvements [#2899](https://github.com/particle-iot/device-os/pull/2899) [#2901](https://github.com/particle-iot/device-os/pull/2901) [#2906](https://github.com/particle-iot/device-os/pull/2906) [1875a2a](https://github.com/particle-iot/device-os/commit/1875a2a07) [9b5c9d9](https://github.com/particle-iot/device-os/commit/9b5c9d9fa) [04949f4](https://github.com/particle-iot/device-os/commit/04949f429)
- [ci] update Xcode to 26.2.0 [#2900](https://github.com/particle-iot/device-os/pull/2900)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.4.0/particle_device-os@6.4.0.zip
- ---
๐ฆ Device OS 6.3.5 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on January 15, 2026_
- ---
๐ BUGFIXES
- [tracker] Resolved a bug in mcp23s17.cpp where the SPI lock was not being properly acquired [#2886](https://github.com/particle-iot/device-os/pull/2886)
- [b5som][eg91nax][quectel] Added a workaround for a modem firmware bug where an incorrect svc_mode could prevent SIM switching. Device OS now proactively monitors and corrects this setting during the registration process. [#2891](https://github.com/particle-iot/device-os/pull/2891)
- [fuelgauge] Fixed an issue where FuelGauge could return incorrect readings if the I2C bus was disabled during large buffer re-initialization. The API now automatically triggers begin() when needed, removing the manual requirement for users. [#2890](https://github.com/particle-iot/device-os/pull/2890)
- Added support for `I2C::setSpeed()` from 10kHz to 99kHz in 1kHz increments [#2893](https://github.com/particle-iot/device-os/pull/2893)
๐ฆ ENHANCEMENTS
- [gen4] Optimized boot time by enabling cache earlier in the boot sequence, optimizing BLE/USB initialization, and streamlining integrity checks.[#2887](https://github.com/particle-iot/device-os/pull/2887)
๐ฆ INTERNAL
- [tests] Adds `00_before` and `zz_after` HIL integration test suites [#2884](https://github.com/particle-iot/device-os/pull/2884)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.3.5/particle_device-os@6.3.5.zip
- ---
๐ฆ Device OS 6.3.4 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on Oct 1, 2025_
- ---
๐ BUGFIXES
- Increased the system power manager stack size for all platforms to improve reliability. This fix also enables B-SoM for Muon [#2874](https://github.com/particle-iot/device-os/pull/2874)
- [gen4] [bootloader] Updated the Gen 4 bootloader SDK to correct a pin-toggling issue in Device OS 6.2.1โ6.3.3. It could cause pins D4โD7 to briefly toggle on boot due to unintended SPI pin configuration. The fix ensures the pins retain their correct state during startup.[#2876](https://github.com/particle-iot/device-os/pull/2876)
- [test] Fixed specific test failures for M635/M-SoM with BG95-S5/BG95-M5 modems in the CELLULAR_07_urcs suite. [#2877](https://github.com/particle-iot/device-os/pull/2877)
- [gen4] Fixes a bug such that the application gets notification of new wifi credentials no matter where it is coming from. Specifically, system event `network_credentials_added` now passes `NetworkCredentials` object [#2882](https://github.com/particle-iot/device-os/pull/2882)
๐ฆ INTERNAL
- [docs] Update CLA links [#2878](https://github.com/particle-iot/device-os/pull/2878)
- [test] Update test dependencies [#2879](https://github.com/particle-iot/device-os/pull/2879)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.3.4/particle_device-os@6.3.4.zip
- ---
๐ฆ Device OS 6.3.3 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on June 11, 2025_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Panic vitals [#2872](https://github.com/particle-iot/device-os/pull/2872)
๐ฆ ENHANCEMENTS
- [Gen 4] Cortex-M33 FreeRTOS port updated to latest version with `BASEPRI` fixes [#2872](https://github.com/particle-iot/device-os/pull/2872) [realtek_ambd_sdk_public#6](https://github.com/particle-iot/realtek_ambd_sdk_public/pull/6)
๐ BUGFIXES
- [Gen 4] `free_worker` incorrect queue put [#2872](https://github.com/particle-iot/device-os/pull/2872)
- [Gen 3] BLE lock is acquired inside ISR handler in cases where BLE memory pool gets exhausted [#2873](https://github.com/particle-iot/device-os/pull/2873)
- [Gen 4] BLE stack does not handle correctly the case where the peripheral does not respond to the MTU exchange request [#2873](https://github.com/particle-iot/device-os/pull/2873)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.3.3/particle_device-os@6.3.3.zip
- ---
๐ฆ Device OS 6.3.2 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on May 5, 2025_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
๐ฆ ENHANCEMENTS
- [network] interface-aware DNS lookups [#2864](https://github.com/particle-iot/device-os/pull/2864)
๐ BUGFIXES
- [gen4] core: fix PSRAM heap size while in safe mode [#2871](https://github.com/particle-iot/device-os/pull/2871)
- [hal] SPI: fixes threading safety issue [#2865](https://github.com/particle-iot/device-os/pull/2865)
- [gen4] hal: get rid of unnecessary constant delay(1) in HAL_USB_USART_Send_Data() [#2867](https://github.com/particle-iot/device-os/pull/2867)
- [gen4] Work around a race condition in the new event API [#2869](https://github.com/particle-iot/device-os/pull/2869)
๐ฆ INTERNAL
- [gen4] Fix MBR flash_copy due to incorrect status register WIP bit detection [#2868](https://github.com/particle-iot/device-os/pull/2868)
- [msom] Ignore CIMI errors on bg95s5 with no esim profile loaded [#2866](https://github.com/particle-iot/device-os/pull/2866)
- [cellular] Support new Twilio Super SIM ICCID prefix 8910392
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.3.2/particle_device-os@6.3.2.zip
- ---
๐ฆ Device OS 6.3.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on Feb 6, 2025_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- New cloud event API that supports sending and receiving up to 16K of data in an event [#2840](https://github.com/particle-iot/device-os/pull/2840)
- Electron 2 platform support [#2844](https://github.com/particle-iot/device-os/pull/2844)
- [wiring] Enable `Cellular`/`WiFi`/`Ethernet` `.ping()` for Gen 3 and Gen 4 platforms [#2856](https://github.com/particle-iot/device-os/pull/2856)
๐ฆ ENHANCEMENTS
- [wiring] Generate an error when using `EEPROM` with `String` objects as `String` contains dynamically allocated data on heap [#2855](https://github.com/particle-iot/device-os/pull/2855)
- [network] Postpone `Ethernet` interface initialization to allow STARTUP() call to override pin configuration without a reset [#2848](https://github.com/particle-iot/device-os/pull/2848)
๐ BUGFIXES
- Prevent low-level WiFI network buffer overflow [#2853](https://github.com/particle-iot/device-os/pull/2853)
- [Gen 3] Increase main stack size from 2K to 4K [#2851](https://github.com/particle-iot/device-os/pull/2851)
- Thread-safe `__cxa_guard_acquire`/`__cxa_guard_release` implementation [#2851](https://github.com/particle-iot/device-os/pull/2851)
- [build] Fix section size calculations for paths containing section-like names [#2852](https://github.com/particle-iot/device-os/pull/2852)
๐ฆ INTERNAL
- [test] wiring/no_fixture_long_running: update network tests to stress test large packets up to MTU size once max MTU is figured out [#2855](https://github.com/particle-iot/device-os/pull/2855)
- [test] communication/long_publish: adds a long running publish test [#2854](https://github.com/particle-iot/device-os/pull/2854)
- [build] Add asserts to linker files to make sure that stack sizes match the expected values [#2851](https://github.com/particle-iot/device-os/pull/2851)
- Stub `atexit` to free up flash space used by global object destructors [#2851](https://github.com/particle-iot/device-os/pull/2851)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.3.0/particle_device-os@6.3.0.zip
- ---
๐ฆ Device OS 6.2.1 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on Dec 16, 2024_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Expose ICCID to Modem Manager when tethering [#2838](https://github.com/particle-iot/device-os/pull/2838)
- [Cellular] BG95-S5 support [#2842](https://github.com/particle-iot/device-os/pull/2842)
- [BLE] `BLE.setAdvertisingScheme()` API [#2837](https://github.com/particle-iot/device-os/pull/2837)
๐ฆ ENHANCEMENTS
- [Gen 4] Optimize QSPI flash writes (to use highest clock speed and IO mode) and erasures (use 32K and 64K blocks when possible) [#2841](https://github.com/particle-iot/device-os/pull/2841)
- [Ethernet] Minor performance optimizations [#2846](https://github.com/particle-iot/device-os/pull/2846)
- [Ethernet] Enable internal pull-up on interrupt line in case external one is not populated to prevent it from floating [684047d7](https://github.com/particle-iot/device-os/commit/684047d7a26f20a002f9c51886421870b5c94f63)
- [Gen 4] WiFi: Always perform a scan before connect and use both SSID + BSSID to initiate the connection [#2849](https://github.com/particle-iot/device-os/pull/2849)
- [Cellular] [R510] Extend EHS (Emergency Hardware Shutdown) sequence timing due to reduced clock rate while in (UPSV=1) Power Saving mode [#2850](https://github.com/particle-iot/device-os/pull/2850)
๐ BUGFIXES
- [Gen 3] Fix DMA issue when writing from internal flash to external flash [#2843](https://github.com/particle-iot/device-os/pull/2841)
- [Ethernet] Fix default pin configuration/validation [#2846](https://github.com/particle-iot/device-os/pull/2846)
- [Cellular] [R510] Device OS 6.2.0 unmasked all bands on R510; however LTE Cat-M1 band 71 shall be re-disabled. See our [Technical Advisory Note](https://docs.particle.io/reference/technical-advisory-notices/tan014/) for more info [#2845](https://github.com/particle-iot/device-os/pull/2845)
- [Gen 4] BLE: Fix a deadlock between `BLE.connect()` and `BLE.peerCentral()` calls in different threads [#2836](https://github.com/particle-iot/device-os/pull/2836)
- [Gen 4] BLE: Fix connection issues operating in peripheral/central roles concurrently [#2839](https://github.com/particle-iot/device-os/pull/2839)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.2.1/particle_device-os@6.2.1.zip
- ---
๐ฆ Device OS 6.2.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on Oct 15, 2024_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
๐ฅ BREAKING CHANGES
- make `SYSTEM_THREAD(ENABLED)` the default, add deprecation warning on `SYSTEM_THREAD()` macro use [#2834](https://github.com/particle-iot/device-os/pull/2834)
- Removed deprecated HAL API wrappers after a set of renamings in Device OS 4.x LTS [#2834](https://github.com/particle-iot/device-os/pull/2834)
โจ FEATURES
- Extend `Particle.publish()` and `Particle.subscribe()`` APIs to support events content types [#2804](https://github.com/particle-iot/device-os/pull/2804)
- Tether API + ModemManager support [#2832](https://github.com/particle-iot/device-os/pull/2832)
- Supports M.2 breakout board and Muon [#2809](https://github.com/particle-iot/device-os/pull/2809)
๐ฆ ENHANCEMENTS
- [gen3] make sure that extended system-part1 is compatible with older bootloaders as well as 6.1.2 [#2831](https://github.com/particle-iot/device-os/pull/2831)
- Improves `delay()` behavior [#2828](https://github.com/particle-iot/device-os/pull/2828)
- [photon2] ethernet: use 12.5MHz as the default SPI clock rate for W5500 [#2835](https://github.com/particle-iot/device-os/pull/2835)
- [Gen 4] Adds detailed WiFi access point disconnect reason logging [#2805](https://github.com/particle-iot/device-os/pull/2805)
- [ACM] Perform cloud ping or reachability test on network events; non-blocking background reachability test [#2811](https://github.com/particle-iot/device-os/pull/2811)
- [Gen 3] BLE: increase a number of retries for service discovery in central role [#2801](https://github.com/particle-iot/device-os/pull/2801)
- [Gen 3] BLE: suspend scanning while in connected state and restore scanning after a disconnect (SoftDevice limitation) [#2801](https://github.com/particle-iot/device-os/pull/2801)
- [cellular][r510] unmask bands for global use [#2803](https://github.com/particle-iot/device-os/pull/2803)
- + 4 more
๐ BUGFIXES
- [Gen 3] BLE: fixes a race condition in connected state reporting in central and peripheral roles [#2801](https://github.com/particle-iot/device-os/pull/2801)
- [Gen 4] i2c: use transactions for fuelgauge and pmic on platforms with single i2c bus to avoid cutting into compound application I2C transmissions [#2822](https://github.com/particle-iot/device-os/pull/2822)
- Reduce latency of the system loop [#2797](https://github.com/particle-iot/device-os/pull/2797)
- Work around a bug in lfs_remove() while recursive traversing directories [#2798](https://github.com/particle-iot/device-os/pull/2798)
- [Gen 4] set sleep timer upper bounds [#2810](https://github.com/particle-iot/device-os/pull/2810)
- [Gen 4] Fixes potential deadlock in WiFi and BLE stacks [#2805](https://github.com/particle-iot/device-os/pull/2805)
- [Gen 4] fixes DMA enabled USART flush [#2800](https://github.com/particle-iot/device-os/pull/2800)
- [Gen 4] Fixes `BLE.stopScanning()` deadlock when called from inside BLE callback [#2796](https://github.com/particle-iot/device-os/pull/2796)
- + 6 more
๐ฆ INTERNAL
- Remove access_token query param from Device OS makefile [#2833](https://github.com/particle-iot/device-os/pull/2833)
- Add serial loopback to test runner [#2816](https://github.com/particle-iot/device-os/pull/2816)
- [tests] Support integration tests on gen4 after device-constants update [#2814](https://github.com/particle-iot/device-os/pull/2814)
- Adds fixture tests [#2823](https://github.com/particle-iot/device-os/pull/2823)
- [tests] ACM prefer feature, adjust logging [#2795](https://github.com/particle-iot/device-os/pull/2795)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.2.0/particle_device-os@6.2.0.zip
- ---
๐ฆ Device OS 5.9.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on September 9th, 2024_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Supports M.2 breakout board and Muon [#2809](https://github.com/particle-iot/device-os/pull/2809)
๐ฆ ENHANCEMENTS
- [Gen 4] Adds detailed WiFi access point disconnect reason logging [#2805](https://github.com/particle-iot/device-os/pull/2805)
- [ACM] Perform cloud ping or reachability test on network events; non-blocking background reachability test [#2811](https://github.com/particle-iot/device-os/pull/2811)
- [Gen 3] BLE: increase a number of retries for service discovery in central role [#2801](https://github.com/particle-iot/device-os/pull/2801)
- [Gen 3] BLE: suspend scanning while in connected state and restore scanning after a disconnect (SoftDevice limitation) [#2801](https://github.com/particle-iot/device-os/pull/2801)
- [cellular][r510] unmask bands for global use [#2803](https://github.com/particle-iot/device-os/pull/2803)
- BLE: streamlines `BLE.scan()` behavior to be blocking irrespective of timeout, but allows other BLE operations to be performed [#2796](https://github.com/particle-iot/device-os/pull/2796)
- BLE: streamlines `BLE.stopScanning()` behavior to be blocking when not called from BLE callback and guarantees scanning to be stopped on return [#2796](https://github.com/particle-iot/device-os/pull/2796)
- [Gen 4] BLE: improves locking in a number of BLE API calls [#2813](https://github.com/particle-iot/device-os/pull/2813)
๐ BUGFIXES
- [Gen 3] BLE: fixes a race condition in connected state reporting in central and peripheral roles [#2801](https://github.com/particle-iot/device-os/pull/2801)
- [Gen 4] i2c: use transactions for fuelgauge and pmic on platforms with single i2c bus to avoid cutting into compound application I2C transmissions [#2822](https://github.com/particle-iot/device-os/pull/2822)
- Reduce latency of the system loop [#2797](https://github.com/particle-iot/device-os/pull/2797)
- Work around a bug in lfs_remove() while recursive traversing directories [#2798](https://github.com/particle-iot/device-os/pull/2798)
- [Gen 4] set sleep timer upper bounds [#2810](https://github.com/particle-iot/device-os/pull/2810)
- [Gen 4] Fixes potential deadlock in WiFi and BLE stacks [#2805](https://github.com/particle-iot/device-os/pull/2805)
- [Gen 4] fixes DMA enabled USART flush [#2800](https://github.com/particle-iot/device-os/pull/2800)
- [Gen 4] Fixes `BLE.stopScanning()` deadlock when called from inside BLE callback [#2796](https://github.com/particle-iot/device-os/pull/2796)
- + 6 more
๐ฆ INTERNAL
- Add serial loopback to test runner [#2816](https://github.com/particle-iot/device-os/pull/2816)
- [tests] Support integration tests on gen4 after device-constants update [#2814](https://github.com/particle-iot/device-os/pull/2814)
- Adds fixture tests [#2823](https://github.com/particle-iot/device-os/pull/2823)
- [tests] ACM prefer feature, adjust logging [#2795](https://github.com/particle-iot/device-os/pull/2795)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.9.0/particle_device-os@5.9.0.zip
- ---
๐ฆ Device OS 5.8.2 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on July 2, 2024_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- [Gen 4] [rtl872x] Improve coexistence between Wifi and BLE when both are used simultaneously [#2764](https://github.com/particle-iot/device-os/pull/2764)
- [Gen 4] [rtl872x] [BREAKING CHANGE] Backup RAM is no longer automatically written to flash periodically. Backup RAM will be saved when entering sleep. If users are going to reset, `hal_backup_ram_sync()` should be called first [#2766](https://github.com/particle-iot/device-os/pull/2766)
๐ฆ ENHANCEMENTS
- [eg91e] [eg91ex] enable 921600 baud rate [#2782](https://github.com/particle-iot/device-os/pull/2782)
- [rtl872x] SPI hal: set sample delay for SPI0@25MHz [#2784](https://github.com/particle-iot/device-os/pull/2784)
- [Gen 4] [msom]ACM Behavior changes [#2738](https://github.com/particle-iot/device-os/pull/2738)
- Update heap5 implementation to latest [6d1d9bff2](https://github.com/particle-iot/device-os/commit/6d1d9bff2a0f39ae2e331686357c593fc18108ed)[07104a8dc2](https://github.com/particle-iot/device-os/commit/07104a8dc26611ec4a312ec113824ffbd9bbed02)
๐ BUGFIXES
- Fix wifi setup not connecting when in listening mode [#2783](https://github.com/particle-iot/device-os/pull/2783) [#2778](https://github.com/particle-iot/device-os/pull/2778)
- Resumable OTA fixes [#2769](https://github.com/particle-iot/device-os/pull/2769)
- [quectel] fixes PPP resume during warm boot [#2772](https://github.com/particle-iot/device-os/pull/2772)
- [Gen 4] [bootloader] Implement bootloader reset reasons [#2773](https://github.com/particle-iot/device-os/pull/2773)
- [RTL872x] multiple SPI fixes [#2768](https://github.com/particle-iot/device-os/pull/2768)
- [Gen 4] [rtl872x] Reinitialize internal wifi stack if scan or connect fails [#2766](https://github.com/particle-iot/device-os/pull/2766) [#2760](https://github.com/particle-iot/device-os/pull/2760/)
- [Gen 4] [rtl872x] Resolve deadlock with USB serial monitoring on boot in some cases[#2765](https://github.com/particle-iot/device-os/pull/2765)
- [gen3] hal: fix gpio glitch [#2787](https://github.com/particle-iot/device-os/pull/2787)
- + 3 more
๐ฆ INTERNAL
- [rtl872x] Display Photon 2 instead of P2, dont allow extended advertising data on rtl platforms [#2779](https://github.com/particle-iot/device-os/pull/2779)
- Add set credentials usb request [#2763](https://github.com/particle-iot/device-os/pull/2763)
- [Gen 4] [rtl872x] Prevent M404/BG95M5 modems from connecting on 2G networks for the time being[#2761](https://github.com/particle-iot/device-os/pull/2761)
- [Gen 4] [rtl872x] Query 2G registration status for M404/BG95M5 modems when querying CGMI [#2761](https://github.com/particle-iot/device-os/pull/2761)
- [Gen 4] Update sdk submoudle ref to fix compiler warnings [#2789](https://github.com/particle-iot/device-os/pull/2789)
- [test] Adjust OTA tests [8ec558e63](https://github.com/particle-iot/device-os/commit/8ec558e63d8545856ff7ac37db1dda1546df8786)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.8.2/particle_device-os@5.8.2.zip
- ---
๐ฆ Device OS 6.1.1 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).
- _Released on Jun 20, 2024_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Allow temporarily disabling device protection [#2770](https://github.com/particle-iot/device-os/pull/2770)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.1.1/particle_device-os@6.1.1.zip
- ---
๐ฆ Device OS 6.1.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).
- _Released on May 3, 2024_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Ledger [#2715](https://github.com/particle-iot/device-os/pull/2715) [#2756](https://github.com/particle-iot/device-os/pull/2756)
- [WiFi] `WiFi.setCredentials()` with credentials validation [#2746](https://github.com/particle-iot/device-os/pull/2746) [#2754](https://github.com/particle-iot/device-os/pull/2754) [#2758](https://github.com/particle-iot/device-os/pull/2758)
- [Gen 4] [rtl872x] [BREAKING CHANGE] Backup RAM is no longer automatically written to flash periodically. Backup RAM will be saved when entering sleep. If users are going to reset, `hal_backup_ram_sync()` should be called first [#2766](https://github.com/particle-iot/device-os/pull/2766)
๐ฆ ENHANCEMENTS
- [Cellular] Improve BG95 connection speed by only setting `nwscanseq` if needed [#2735](https://github.com/particle-iot/device-os/pull/2735)
- Include IMEI in `CTRL_REQUEST_CELLULAR_GET_ICCID` control request [#2730](https://github.com/particle-iot/device-os/pull/2730)
- Process system tasks while cloud handshake is in progress [#2745](https://github.com/particle-iot/device-os/pull/2745)
๐ BUGFIXES
- [wiring] Fix incorrect `int` to `bool` conversion in `WiFi.clearCredentials()` [#2736](https://github.com/particle-iot/device-os/pull/2736)
- [Gen 4] [rtl872x] Fix boot loop if system-part module info is corrupted [#2739](https://github.com/particle-iot/device-os/pull/2739)
- [Gen 4] [rtl872x] Fix OTA bounds check, add `ota/min_max_app_size` test [#2742](https://github.com/particle-iot/device-os/pull/2742)
- Fix `std::call_once` re-entrancy problem [#2743](https://github.com/particle-iot/device-os/pull/2743)
- Prevent OTA progress events from blocking system thread [#2741](https://github.com/particle-iot/device-os/pull/2741)
- [Gen 4] [rtl872x] Fix WiFi/BLE coexistence and WiFi/BLE stability issues [#2747](https://github.com/particle-iot/device-os/pull/2747) [#2752](https://github.com/particle-iot/device-os/pull/2752) [#2755](https://github.com/particle-iot/device-os/pull/2755) [#2754](https://github.com/particle-iot/device-os/pull/2754)
- [Gen 4] [rtl872x] Fix USB re-enumeration issues [#2744](https://github.com/particle-iot/device-os/pull/2744) [#2752](https://github.com/particle-iot/device-os/pull/2752) [#2754](https://github.com/particle-iot/device-os/pull/2754)
- [Gen 4] [rtl872x] Fix incorrect timing of SPI TX-only transaction completion notification [#2749](https://github.com/particle-iot/device-os/pull/2749) [#2757](https://github.com/particle-iot/device-os/pull/2757)
- + 6 more
๐ฆ INTERNAL
- [Tracker] Disable ESP32 SDIO debug logs [#2740](https://github.com/particle-iot/device-os/pull/2740)
- [GCC] Enable Ledger and filesystem APIs on GCC platform [#2737](https://github.com/particle-iot/device-os/pull/2737)
- Fix monolithic build errors [#2751](https://github.com/particle-iot/device-os/pull/2751)
- [Gen 4] [rtl872x] Upgrade `ambd_sdk` WiFi and BLE subsystems to `6.2_patch_integrated_231211_25b3bc38` [#2752](https://github.com/particle-iot/device-os/pull/2752)
- Update USB/BLE platform names to use hyphenated notation [#2753](https://github.com/particle-iot/device-os/pull/2753)
- [Gen 4] [rtl872x] Prevent M404/BG95M5 modems from connecting on 2G networks for the time being[#2761](https://github.com/particle-iot/device-os/pull/2761)
- [Gen 4] [rtl872x] Query 2G registration status for M404/BG95M5 modems when querying CGMI [#2761](https://github.com/particle-iot/device-os/pull/2761)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.1.0/particle_device-os@6.1.0.zip
- ---
๐ฆ Device OS 5.8.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2).
- _Released on March 15, 2024_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Ledger [#2715](https://github.com/particle-iot/device-os/pull/2715) [#2756](https://github.com/particle-iot/device-os/pull/2756)
- [WiFi] `WiFi.setCredentials()` with credentials validation [#2746](https://github.com/particle-iot/device-os/pull/2746) [#2754](https://github.com/particle-iot/device-os/pull/2754) [#2758](https://github.com/particle-iot/device-os/pull/2758)
๐ฆ ENHANCEMENTS
- [Cellular] Improve BG95 connection speed by only setting `nwscanseq` if needed [#2735](https://github.com/particle-iot/device-os/pull/2735)
- Include IMEI in `CTRL_REQUEST_CELLULAR_GET_ICCID` control request [#2730](https://github.com/particle-iot/device-os/pull/2730)
- Process system tasks while cloud handshake is in progress [#2745](https://github.com/particle-iot/device-os/pull/2745)
๐ BUGFIXES
- [wiring] Fix incorrect `int` to `bool` conversion in `WiFi.clearCredentials()` [#2736](https://github.com/particle-iot/device-os/pull/2736)
- [Gen 4] [rtl872x] Fix boot loop if system-part module info is corrupted [#2739](https://github.com/particle-iot/device-os/pull/2739)
- [Gen 4] [rtl872x] Fix OTA bounds check, add `ota/min_max_app_size` test [#2742](https://github.com/particle-iot/device-os/pull/2742)
- Fix `std::call_once` re-entrancy problem [#2743](https://github.com/particle-iot/device-os/pull/2743)
- Prevent OTA progress events from blocking system thread [#2741](https://github.com/particle-iot/device-os/pull/2741)
- [Gen 4] [rtl872x] Fix WiFi/BLE coexistence and WiFi/BLE stability issues [#2747](https://github.com/particle-iot/device-os/pull/2747) [#2752](https://github.com/particle-iot/device-os/pull/2752) [#2755](https://github.com/particle-iot/device-os/pull/2755) [#2754](https://github.com/particle-iot/device-os/pull/2754)
- [Gen 4] [rtl872x] Fix USB re-enumeration issues [#2744](https://github.com/particle-iot/device-os/pull/2744) [#2752](https://github.com/particle-iot/device-os/pull/2752) [#2754](https://github.com/particle-iot/device-os/pull/2754)
- [Gen 4] [rtl872x] Fix incorrect timing of SPI TX-only transaction completion notification [#2749](https://github.com/particle-iot/device-os/pull/2749) [#2757](https://github.com/particle-iot/device-os/pull/2757)
- + 5 more
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.8.0/particle_device-os@5.8.0.zip
- ---
๐ฆ Device OS 6.0.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).
- _Released on January 30, 2024_
- Note: This is a limited Release and may be used for production with approval from Particle.
- You can view information about Device OS versions, upgrades and downgrades [here](https://docs.particle.io/reference/device-os/versions/).
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Protected mode [#2734](https://github.com/particle-iot/device-os/pull/2734)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v6.0.0/particle_device-os@6.0.0.zip
- ---
๐ฆ Device OS 5.7.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/M SoM/P2).
- _Released on January 24, 2024_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Allow duplicates in BLE scan results if requested with `BLE.scanWithFilter(BleScanFilter().allowDuplicates(true))` [#2718](https://github.com/particle-iot/device-os/pull/2718)
๐ฆ ENHANCEMENTS
- [P2 / M SoM] BLE: Dynamically adjust radio prioritization when both BLE and WiFi are active improving BLE scanning performance [#2714](https://github.com/particle-iot/device-os/pull/2714)
- ACM `preferred()`/`prefer()` API clean up [#2717](https://github.com/particle-iot/device-os/pull/2717)
- [M SoM] Adjust cloud keep-alive based on network connection [#2716](https://github.com/particle-iot/device-os/pull/2716)
- [M SoM] Enable session resumption [#2722](https://github.com/particle-iot/device-os/pull/2722)
- [P2 / M SoM] SPI performance improvements [#2728](https://github.com/particle-iot/device-os/pull/2728) [#2731](https://github.com/particle-iot/device-os/pull/2731)
- [P2 / M SoM] Ethernet performance improvements [#2728](https://github.com/particle-iot/device-os/pull/2728) [#2731](https://github.com/particle-iot/device-os/pull/2731)
๐ BUGFIXES
- [P2 / M SoM] BLE scan results should be filtered for duplicates by default [#2718](https://github.com/particle-iot/device-os/pull/2718)
- Fix OpenOCD FreeRTOS thread list access (`uxTopUsedPriority`) [#2723](https://github.com/particle-iot/device-os/pull/2723)
- [Gen 3] BLE: Fix stack overflow in BLE timer callback [#2725](https://github.com/particle-iot/device-os/pull/2725)
- [Cellular] Fixes parsing of MCC/MNC with 00 or 000 MNC [#2726](https://github.com/particle-iot/device-os/pull/2726)
- [P2 / M SoM] Use security type from `JoinNewNetwork` request to connect to hidden networks [#2724](https://github.com/particle-iot/device-os/pull/2724)
- [build] include alignment into section size calculations [#2719](https://github.com/particle-iot/device-os/pull/2719)
- [P2 / M SoM] SPI slave mode bugfixes [#2728](https://github.com/particle-iot/device-os/pull/2728) [#2731](https://github.com/particle-iot/device-os/pull/2731)
- [P2 / M SoM] USB TX hold-off mechanism should account for maximum transmit size [#2729](https://github.com/particle-iot/device-os/pull/2729)
- + 1 more
๐ฆ INTERNAL
- [M SoM] Make GNSS burn in test optional [#2720](https://github.com/particle-iot/device-os/pull/2720)
- [M SoM] Support for GNSS FQC test [#2721](https://github.com/particle-iot/device-os/pull/2721)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.7.0/particle_device-os@5.7.0.zip
- ---
๐ฆ Device OS 5.6.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/M SoM/P2).
- _Released on December 7, 2023_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- [msom] ACM basic support [#2689](https://github.com/particle-iot/device-os/pull/2689)
๐ฆ ENHANCEMENTS
- [wiring] Add 64-bit string conversions [#2693](https://github.com/particle-iot/device-os/pull/2693)
- [wiring] json: 64-bit support [#2695](https://github.com/particle-iot/device-os/pull/2695)
- [msom] increase NCP baudrate to 921600, doubling throughput [#2706](https://github.com/particle-iot/device-os/pull/2706)
- [network] Wiznet Ethernet performance improvements [#2708](https://github.com/particle-iot/device-os/pull/2708)
๐ BUGFIXES
- [gen3] hal: fixes the issue that UARTE RX may loss data [#2698](https://github.com/particle-iot/device-os/pull/2698)
- [rtl872x] correctly handle SecureFault [#2699](https://github.com/particle-iot/device-os/pull/2699)
- Fixes ncp-client not waiting for modem ready on cold boot [#2700](https://github.com/particle-iot/device-os/pull/2700)
- [system] still pump system loop when SPARK_WLAN_SLEEP=1; Try to drain ISR task queue quicker [#2702](https://github.com/particle-iot/device-os/pull/2702)
- [rtl872x] Fix unintentional pin changes for Serial1 RTS/CTS [#2703](https://github.com/particle-iot/device-os/pull/2703)
- [rtl872x] fix multiple BLE issues [#2710](https://github.com/particle-iot/device-os/pull/2710)
- Asset OTA fixes [#2711](https://github.com/particle-iot/device-os/pull/2711)
๐ฆ INTERNAL
- [services] add long long support to printf/scanf [#2694](https://github.com/particle-iot/device-os/pull/2694)
- fix printf/scanf for floating point numbers, add tests [#2696](https://github.com/particle-iot/device-os/pull/2696
- [msom] support 16MB GD flash [#2701](https://github.com/particle-iot/device-os/pull/2701)
- [msom] Support burnin tests [#2704](https://github.com/particle-iot/device-os/pull/2704)
- [gen3] reduce flash usage [#2705](https://github.com/particle-iot/device-os/pull/2705)
- Erase factory reset app after test runner completes [#2709](https://github.com/particle-iot/device-os/pull/2709)
- Fix dual stack UDP bind behavior with LWIP_IPV6_DEFINES_ONLY [#2712](https://github.com/particle-iot/device-os/pull/2712)
- Update WB makefile version [#2713](https://github.com/particle-iot/device-os/pull/2713)
- + 1 more
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.6.0/particle_device-os@5.6.0.zip
- ---
๐ฆ Device OS 4.2.0 LTS is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).
- _Released on September 26th, 2023_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
๐ฆ ENHANCEMENTS
- [Cellular] Enables UPSV=1 low power mode for R510 when idle for >=9.2s [#2674](https://github.com/particle-iot/device-os/pull/2674)
- [services] add long long support to printf/scanf [#2694](https://github.com/particle-iot/device-os/pull/2694) [#2696](https://github.com/particle-iot/device-os/pull/2696)
- [wiring] Add 64-bit String conversions [#2693](https://github.com/particle-iot/device-os/pull/2693) [#2657](https://github.com/particle-iot/device-os/pull/2657)
- [wiring] json: 64-bit support [#2695](https://github.com/particle-iot/device-os/pull/2693) [#2657](https://github.com/particle-iot/device-os/pull/2695)
๐ BUGFIXES
- Fixes clean target for applications with large number of files + P2 PSRAM size calculation issues [#2661](https://github.com/particle-iot/device-os/pull/2661)
- [gen3] hal: fixes the issue that UARTE RX may lose data [#2698](https://github.com/particle-iot/device-os/pull/2698)
- [quectel] Fixes ncp-client not waiting for modem ready on cold boot [#2700](https://github.com/particle-iot/device-os/pull/2700)
๐ฆ INTERNAL
- [bootloader] remove nanopb dependency [#2607](https://github.com/particle-iot/device-os/pull/2607)
- test] resolve sleep20 test failures. [#2669](https://github.com/particle-iot/device-os/pull/2669)
- [nrf] Add Factory Reset Tests [#2662](https://github.com/particle-iot/device-os/pull/2662)
- Update the key used for validating the ServerMoved signature [#2688](https://github.com/particle-iot/device-os/pull/2688)
- [ci] fix macos builds [#2683](https://github.com/particle-iot/device-os/pull/2683)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v4.2.0/particle_device-os@4.2.0.zip
- ---
๐ฆ Device OS 5.5.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/M SoM/P2).
- _Released on August 31, 2023_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Asset OTA [#2668](https://github.com/particle-iot/device-os/pull/2668)
- [M SoM] Platform support [#2681](https://github.com/particle-iot/device-os/pull/2681)
- [rtl872x] Experimental WPA3 support [#2673](https://github.com/particle-iot/device-os/pull/2673)
- [WiFi] Hidden SSID support [#2673](https://github.com/particle-iot/device-os/pull/2673)
- [rtl872x] GPIO drive strength configuration support [#2680](https://github.com/particle-iot/device-os/pull/2680)
๐ฆ ENHANCEMENTS
- [WiFi] WiFI interface power state notifications [#2669](https://github.com/particle-iot/device-os/pull/2669)
- [rtl872x] Improve `SPI1` (P2 / Tracker M) and `SPI` (M SoM) behavior at 50MHz by changing RXD sample delay [#2677](https://github.com/particle-iot/device-os/pull/2677)
- [rtl872x] Improve USB Serial TX performance [#2672](https://github.com/particle-iot/device-os/pull/2672)
- [Cellular] Enables UPSV=1 low power mode for R510 when idle for >=9.2s [#2674](https://github.com/particle-iot/device-os/pull/2674)
- [rtl872x] Fix logic level overshoot on SPI, I2C, PWM pins [#2680](https://github.com/particle-iot/device-os/pull/2680)
- [rtl872x] Revert the QSPI flash speed to 80MHz [#2684](https://github.com/particle-iot/device-os/pull/2684)
- Update the key used for validating the ServerMoved signature [#2688](https://github.com/particle-iot/device-os/pull/2688)
- [rtl872x] remove the delay in UART flush() [#2686](https://github.com/particle-iot/device-os/pull/2686)
๐ BUGFIXES
- [rtl872x] Fix incorrect I2C read timeout [#2671](https://github.com/particle-iot/device-os/pull/2671)
- [rtl872x] Do not initialize RTC after waking up from HIBERNATE sleep [#2667](https://github.com/particle-iot/device-os/pull/2667)
- [rtl872x] Disable pull resistors when pin is configure as `OUTPUT` [#2666](https://github.com/particle-iot/device-os/pull/2666)
- [rtl872x] Disable SWDIO/SWDCLK pins when going into sleep [#2666](https://github.com/particle-iot/device-os/pull/2666)
- [rtl872x] Disable brown-out detector [#2679](https://github.com/particle-iot/device-os/pull/2679)
- [rtl872x] Avoid glitch on I2C pins when reconfiguring I2C peripheral [#2682](https://github.com/particle-iot/device-os/pull/2682)
- [msom] Fix ethernet cs, reset, interrupt GPIO pins for M2 eval [#2690](https://github.com/particle-iot/device-os/pull/2690)
๐ฆ INTERNAL
- [WiFi] Resolve `wiring/sleep20` test failures [#2669](https://github.com/particle-iot/device-os/pull/2669)
- [nrf52840] Add factory reset test (`ota/factory_reset`) [#2662](https://github.com/particle-iot/device-os/pull/2662)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.5.0/particle_device-os@5.5.0.zip
- ---
๐ฆ Device OS 5.5.0-rc.1 Release Candidate is available in the [Web IDE](https://build.particle.io), 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_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Asset OTA [#2668](https://github.com/particle-iot/device-os/pull/2668)
- [M SoM] Platform support [#2681](https://github.com/particle-iot/device-os/pull/2681)
- [rtl872x] Experimental WPA3 support [#2673](https://github.com/particle-iot/device-os/pull/2673)
- [WiFi] Hidden SSID support [#2673](https://github.com/particle-iot/device-os/pull/2673)
- [rtl872x] GPIO drive strength configuration support [#2680](https://github.com/particle-iot/device-os/pull/2680)
๐ฆ ENHANCEMENTS
- [WiFi] WiFI interface power state notifications [#2669](https://github.com/particle-iot/device-os/pull/2669)
- [rtl872x] Improve `SPI1` (P2 / Tracker M) and `SPI` (M SoM) behavior at 50MHz by changing RXD sample delay [#2677](https://github.com/particle-iot/device-os/pull/2677)
- [rtl872x] Improve USB Serial TX performance [#2672](https://github.com/particle-iot/device-os/pull/2672)
- [Cellular] Enables UPSV=1 low power mode for R510 when idle for >=9.2s [#2674](https://github.com/particle-iot/device-os/pull/2674)
- [rtl872x] Fix logic level overshoot on SPI, I2C, PWM pins [#2680](https://github.com/particle-iot/device-os/pull/2680)
- [rtl872x] Revert the QSPI flash speed to 80MHz [#2684](https://github.com/particle-iot/device-os/pull/2684)
๐ BUGFIXES
- [rtl872x] Fix incorrect I2C read timeout [#2671](https://github.com/particle-iot/device-os/pull/2671)
- [rtl872x] Do not initialize RTC after waking up from HIBERNATE sleep [#2667](https://github.com/particle-iot/device-os/pull/2667)
- [rtl872x] Disable pull resistors when pin is configure as `OUTPUT` [#2666](https://github.com/particle-iot/device-os/pull/2666)
- [rtl872x] Disable SWDIO/SWDCLK pins when going into sleep [#2666](https://github.com/particle-iot/device-os/pull/2666)
- [rtl872x] Disable brown-out detector [#2679](https://github.com/particle-iot/device-os/pull/2679)
- [rtl872x] Avoid glitch on I2C pins when reconfiguring I2C peripheral [#2682](https://github.com/particle-iot/device-os/pull/2682)
๐ฆ INTERNAL
- [WiFi] Resolve `wiring/sleep20` test failures [#2669](https://github.com/particle-iot/device-os/pull/2669)
- [nrf52840] Add factory reset test (`ota/factory_reset`) [#2662](https://github.com/particle-iot/device-os/pull/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
- ---
๐ฆ Device OS 5.4.1 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).
- _Released on July 20, 2023_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
๐ฆ ENHANCEMENTS
- [rtl872x] dynamically enable Wi-Fi stack on demand [#2664](https://github.com/particle-iot/device-os/pull/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](https://github.com/particle-iot/device-os/pull/2665)
- [rtl872x] fix BLE race condition [#2664](https://github.com/particle-iot/device-os/pull/2664)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.4.1/particle_device-os@5.4.1.zip
- ---
๐ฆ Device OS 5.4.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).
- _Released on June 16, 2023_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
๐ฆ ENHANCEMENTS
- [rtl872x] USB HID Mouse/Keyboard support [#2659](https://github.com/particle-iot/device-os/pull/2659)
๐ BUGFIXES
- Fix/nanopb string max size [#2657](https://github.com/particle-iot/device-os/pull/2657)
- Fixes clean target for applications with large number of files + P2 PSRAM size calculation issues [#2661](https://github.com/particle-iot/device-os/pull/2661)
๐ฆ INTERNAL
- [rtl872x] Allow KM4 SDK Bootloader images to boot [#2656](https://github.com/particle-iot/device-os/pull/2656)
- [rtl872x] Combined MFG firmware [#2658](https://github.com/particle-iot/device-os/pull/2658)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.4.0/particle_device-os@5.4.0.zip
- ---
๐ฆ Device OS 4.1.0 LTS is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).
- _Released on May 31st, 2023_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Hardware watchdog [#2595](https://github.com/particle-iot/device-os/pull/2595) [#2626](https://github.com/particle-iot/device-os/pull/2626)
- Server key rotation [#2570](https://github.com/particle-iot/device-os/pull/2570)
๐ BUGFIXES
- Wi-Fi/cellular network manager bugfixes [#2621](https://github.com/particle-iot/device-os/pull/2621)
- [nRF52] UART sleep/wakeup [#2652](https://github.com/particle-iot/device-os/pull/2652)
- [nRF52] watchdog timeout is not accurate [#2635](https://github.com/particle-iot/device-os/pull/2635)
- [nRF52] BLE plus RTC sleep causes hardfault [#2615](https://github.com/particle-iot/device-os/pull/2615)
- Fix inconsistent BLE state issue [#2629](https://github.com/particle-iot/device-os/pull/2629)
- [wiring][gen3] Allow gen3 to select internal ADC reference source [#2619](https://github.com/particle-iot/device-os/pull/2619)
- System setup and BLE threading improvements [#2587](https://github.com/particle-iot/device-os/pull/2587)
- [quectel] Account for "eMTC" type while obtaining signal values [#2589](https://github.com/particle-iot/device-os/pull/2589)
- + 2 more
๐ฆ INTERNAL
- [test] turn off NCP before testing wiring/watchdog [#2627](https://github.com/particle-iot/device-os/pull/2627)
- [test] Remove manual wakeup. Hibernate + watchdog on platforms that support it [#2620](https://github.com/particle-iot/device-os/pull/2620)
- [test] add more watchdog test cases [#2617](https://github.com/particle-iot/device-os/pull/2617)
- [test] mailbox support and support for resets within tests [#2611](https://github.com/particle-iot/device-os/pull/2611)
- [test] Move `no_fixture_i2c` to correct dir and symlink to `integration/wiring` [#2558](https://github.com/particle-iot/device-os/pull/2558)
- [test] Fix listening mode tests [#2534](https://github.com/particle-iot/device-os/pull/2534)
- [test] Ensure thread07 test executes as intended [#2622](https://github.com/particle-iot/device-os/pull/2622)
- Protobuf defs refactor / fixes submessage encoding after nanopb 0.4.5 upgrade [#2578](https://github.com/particle-iot/device-os/pull/2578)
- + 2 more
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v4.1.0/particle_device-os@4.1.0.zip
- ---
๐ฆ Device OS 5.3.2 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).
- _Released on May 18, 2023_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
๐ฆ ENHANCEMENTS
- [rtl872x] SPI and GPIO HAL changes to support Neopixel [#2654](https://github.com/particle-iot/device-os/pull/2654)
- [rtl872x] Implement WiFi.selectAntenna [#2651](https://github.com/particle-iot/device-os/pull/2651)
๐ BUGFIXES
- [nRF52] UART sleep/wakeup [#2652](https://github.com/particle-iot/device-os/pull/2652)
- [rtl872x] Fix Wifi stack issues [#2649](https://github.com/particle-iot/device-os/pull/2649)
- [rtl872x] BLE scanning panic [#2650](https://github.com/particle-iot/device-os/pull/2650)
๐ฆ INTERNAL
- [rtl872x] Fix burnin GPIO and SPI Flash tests for photon 2 [#2653](https://github.com/particle-iot/device-os/pull/2653)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.3.2/particle_device-os@5.3.2.zip
- ---
๐ฆ Device OS 5.3.1 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).
- _Released on April 13, 2023_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
๐ฆ ENHANCEMENTS
- [rtl872x] Adds Wiring API System.backupRamSync() to manually backup `retained` variables [#2633](https://github.com/particle-iot/device-os/pull/2633)
๐ BUGFIXES
- [rtl872x] Fix problems waking from sleep mode [#2647](https://github.com/particle-iot/device-os/pull/2647)
- Fixes inconsistent BLE state issues [#2629](https://github.com/particle-iot/device-os/pull/2629)
- [rtl872x] Fixes pmic shared interrupt and usb detection [#2630](https://github.com/particle-iot/device-os/pull/2630)
- [rtl872x] Fixes D7 configuration when exiting hibernate mode [#2631](https://github.com/particle-iot/device-os/pull/2631)
- [rtl872x][bootloader] Fixes USB serial port not being connectable on AMD based Windows [#2625](https://github.com/particle-iot/device-os/pull/2625)[#2638](https://github.com/particle-iot/device-os/pull/2638)
- [rtl872x] Fixes `retained` variables not being saved, now periodically saved every 10s [#2633](https://github.com/particle-iot/device-os/pull/2633)[#2642](https://github.com/particle-iot/device-os/pull/2642)[#2644](https://github.com/particle-iot/device-os/pull/2644)
- [rtl872x] Fixes assertion failure waiting for connection events from the stack when `BLE.connect()` called [#2636](https://github.com/particle-iot/device-os/pull/2636)
- [nRF52] Fixes watchdog timer reload value accuracy [#2635](https://github.com/particle-iot/device-os/pull/2635)
- + 7 more
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.3.1/particle_device-os@5.3.1.zip
- ---
๐ฆ Device OS 5.3.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).
- _Released on February 21, 2023_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Static IP configuration support [#2621](https://github.com/particle-iot/device-os/pull/2621)
- Hardware watchdog [#2595](https://github.com/particle-iot/device-os/pull/2595)[#2617](https://github.com/particle-iot/device-os/pull/2617)[#2620](https://github.com/particle-iot/device-os/pull/2620)
- Ethernet GPIO config [#2616](https://github.com/particle-iot/device-os/pull/2616)
- [wiring][gen3] Allow gen3 to select internal ADC reference source [#2619](https://github.com/particle-iot/device-os/pull/2619)
๐ฆ ENHANCEMENTS
- [rtl872x] Support IO wakeup sources through IO expander.[#2604](https://github.com/particle-iot/device-os/pull/2604)[#2608](https://github.com/particle-iot/device-os/pull/2608)[#2614](https://github.com/particle-iot/device-os/pull/2614)
๐ BUGFIXES
- [rtl872x] enable factory reset feature [#2612](https://github.com/particle-iot/device-os/pull/2612)
- [rtl872x] Dcache fixes for exflash HAL [#2623](https://github.com/particle-iot/device-os/pull/2623)
- [rtl872x] fix overflow error in HAL_Delay_Microseconds [#2606](https://github.com/particle-iot/device-os/pull/2606)
- [nRF52] BLE plus RTC sleep causes hardfault [#2615](https://github.com/particle-iot/device-os/pull/2615)
- [rtl872x] hal: fix heap allocation issue in interrupt hal and postpone the mode button initialization. [#2624](https://github.com/particle-iot/device-os/pull/2624)
- [rtl872x] bootloader: fix destination address flash page alignment in case of compressed modules [#2628](https://github.com/particle-iot/device-os/pull/2628)
๐ฆ INTERNAL
- [photon2] Update FQC test with photon 2 pinout [#2610](https://github.com/particle-iot/device-os/pull/2610)
- [test] mailbox support and support for resets within tests [#2611](https://github.com/particle-iot/device-os/pull/2611)
- [bootloader] remove nanopb dependency[#2607](https://github.com/particle-iot/device-os/pull/2607)
- Server key rotation [#2570](https://github.com/particle-iot/device-os/pull/2570)
- Fix GCC platform build [#2613](https://github.com/particle-iot/device-os/pull/2613)[#2618](https://github.com/particle-iot/device-os/pull/2618)
- Ensure thread07 test executes as intended [#2622](https://github.com/particle-iot/device-os/pull/2622)
- [rtl872x] Fix watchdog tests; system/application thread stack size increase [#2626](https://github.com/particle-iot/device-os/pull/2626)
- [test] turn off NCP before testing wiring/watchdog [#2627](https://github.com/particle-iot/device-os/pull/2627)
- + 1 more
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.3.0/particle_device-os@5.3.0.zip
- ---
๐ฆ Device OS 5.2.0 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/Tracker M/E SoM X/P2).
- _Released on December 19, 2022_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
โจ FEATURES
- Initial support for BG95-M6 modem [#2555](https://github.com/particle-iot/device-os/pull/2555)
๐ฆ ENHANCEMENTS
- [TrackerM] Collect cellular properties with system info [#2602](https://github.com/particle-iot/device-os/pull/2602)
- [rtl872x] fixes System.ticks() [#2600](https://github.com/particle-iot/device-os/pull/2600)
- System setup and BLE threading improvements [#2587](https://github.com/particle-iot/device-os/pull/2587)
- [rtl872x] [freertos] [experimental] multi-step priority disinheritance [#2581](https://github.com/particle-iot/device-os/pull/2581)
- [rtl872x] sleep improvements [#2586](https://github.com/particle-iot/device-os/pull/2586)
- [rtl872x] fixes pinResetFast clearing too many pins and improves speed [#2582](https://github.com/particle-iot/device-os/pull/2582)
- [rtl872x] prebootloader: enable BOR with lowest available thresholds [#2569](https://github.com/particle-iot/device-os/pull/2569)
๐ BUGFIXES
- [rtl872x] Fix USART/DMA deadlock [#2603](https://github.com/particle-iot/device-os/pull/2603)
- [rtl872x] Free memory from rtl sdk in SystemISRTaskQueue [#2599](https://github.com/particle-iot/device-os/pull/2599)
- [rtl872x] exflash: revert dcache invalidate calls after writes/erasures [#2598](https://github.com/particle-iot/device-os/pull/2598)
- [rtl872x] Fixes a deadlock when requiring to enable RSIP [#2596](https://github.com/particle-iot/device-os/pull/2596)
- [gen3] Use OTP Feature flag to change ADC reference source [#2597](https://github.com/particle-iot/device-os/pull/2597)
- [rtl872x] hal: remove an assert in read()/peek() and instead adjust read/peek size [#2594](https://github.com/particle-iot/device-os/pull/2594)
- [boron]Use the internal ADC reference on BRN404X [#2588](https://github.com/particle-iot/device-os/pull/2588)
- [p2] Fixes the conflict between Flash API and XIP [#2561](https://github.com/particle-iot/device-os/pull/2561)
- + 8 more
๐ฆ INTERNAL
- [test] Use compatible pins for PWM tests on TrackerM [#2592](https://github.com/particle-iot/device-os/pull/2592)
- [test] bump fastpin max limit to 10% [#2591](https://github.com/particle-iot/device-os/pull/2591)
- [test] Add thresholds for trackerM for slo tests [#2590](https://github.com/particle-iot/device-os/pull/2590)
- [test] Modify pins for trackerM spix tests [#2585](https://github.com/particle-iot/device-os/pull/2585)
- [trackerm] TrackerM EVT v0.0.3 pinmap update [#2580](https://github.com/particle-iot/device-os/pull/2580)
- Allow setting the ICCID of a virtual device [#2583](https://github.com/particle-iot/device-os/pull/2583)
- Protobuf defs refactor / fixes submessage encoding after nanopb 0.4.5 upgrade [#2578](https://github.com/particle-iot/device-os/pull/2578)
- Update nanopb to 0.4.5 [#2563](https://github.com/particle-iot/device-os/pull/2563)
- + 6 more
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v5.2.0/particle_device-os@5.2.0.zip
- ---
๐ฆ Device OS 4.0.2 LTS is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Argon/Boron/B SoM/B5 SoM/Tracker/E SoM X).
- _Released on December 15th, 2022_
๐ฆ 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.
- 4. If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
- ---
๐ BUGFIXES
- [gen3] Use OTP Feature flag to change ADC reference source [#2597](https://github.com/particle-iot/device-os/pull/2597)
- [boron]Use the internal ADC reference on some Gen 3 platforms [#2588](https://github.com/particle-iot/device-os/pull/2588)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v4.0.2/particle_device-os@4.0.2.zip
- ---
๐ฆ Device OS 3.3.1 Release is available in the [Web IDE](https://build.particle.io), Particle CLI and Workbench for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
- _Released on November 14th, 2022_
- ---
๐ BUGFIXES
- [Boron / B SoM] R410 PPP crash in network phase workaround [#2571](https://github.com/particle-iot/device-os/pull/2571)
- [Cellular] R410 initialization SIM failure workaround [#2573](https://github.com/particle-iot/device-os/pull/2573)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v3.3.1/particle_device-os@3.3.1.zip
- ---
๐ฆ Device OS 2.3.1 Default Release is available in the [Web IDE](https://build.particle.io), Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
- _released on November 14, 2022_
- ---
๐ BUGFIXES
- [Cellular] R410 initialization SIM failure workaround [#2573](https://github.com/particle-iot/device-os/pull/2573)
- [Boron / B SoM] R410 PPP crash in network phase workaround [#2571](https://github.com/particle-iot/device-os/pull/2571)
- ---
๐ฆ System Binaries (all devices)
- https://github.com/particle-iot/device-os/releases/download/v2.3.1/particle_device-os@2.3.1.zip
- ---
