v5.9.0 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)
Pre-release
Pre-release
Device OS 5.9.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/M-SoM/P2).
Released on September 9th, 2024
See documentation about Device OS versions, their current state, 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:
- 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+.
- Upgrade process OTA (including product-based upgrades) is transparent.
- 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.
- If using standalone Particle CLI installation, make sure it's updated to >= 2.12.0 version, which includes support for 256KB applications.
5.9.0
FEATURES
- Supports M.2 breakout board and Muon #2809
ENHANCEMENTS
- [Gen 4] Adds detailed WiFi access point disconnect reason logging #2805
- [ACM] Perform cloud ping or reachability test on network events; non-blocking background reachability test #2811
- [Gen 3] BLE: increase a number of retries for service discovery in central role #2801
- [Gen 3] BLE: suspend scanning while in connected state and restore scanning after a disconnect (SoftDevice limitation) #2801
- [cellular][r510] unmask bands for global use #2803
- BLE: streamlines
BLE.scan()
behavior to be blocking irrespective of timeout, but allows other BLE operations to be performed #2796 - BLE: streamlines
BLE.stopScanning()
behavior to be blocking when not called from BLE callback and guarantees scanning to be stopped on return #2796 - [Gen 4] BLE: improves locking in a number of BLE API calls #2813
BUGFIXES
- [Gen 3] BLE: fixes a race condition in connected state reporting in central and peripheral roles #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
- Reduce latency of the system loop #2797
- Work around a bug in lfs_remove() while recursive traversing directories #2798
- [Gen 4] set sleep timer upper bounds #2810
- [Gen 4] Fixes potential deadlock in WiFi and BLE stacks #2805
- [Gen 4] fixes DMA enabled USART flush #2800
- [Gen 4] Fixes
BLE.stopScanning()
deadlock when called from inside BLE callback #2796 - [Gen 4] i2c: clear I2C tx buffer before each transmission #2819
- fixes
USART::available()
after waking from sleep #2816 - [Gen 4] fixes BLE race condition while scanning #2818
- [Gen 4] usb: fix an issue with USB re-attach after sleep #2824 #2823
- [Gen 4] prebootloader: fix STOP/ULP sleep with disabled KM0 RTOS, get correct wake-up reason #2825
- Fixes I2C hal issues #2826
INTERNAL
- Add serial loopback to test runner #2816
- [tests] Support integration tests on gen4 after device-constants update #2814
- Adds fixture tests #2823
- [tests] ACM prefer feature, adjust logging #2795
System Binaries (all devices)
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.