Skip to content

Releases: particle-iot/device-os

v6.4.1 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)

Choose a tag to compare

@avtolstoy avtolstoy released this 04 May 17:46

Device OS 6.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/M-SoM/P2).

Released on May 4th, 2026

See documentation about Device OS versions, their current state, upgrades and downgrades here.


6.4.1

FEATURES

  • [Gen 3, Gen 4] Initial USB (Serial) tethering support #2898 #2912
  • [M SoM] Initial hardware UART tethering support (Serial1/Serial2) #2910
  • [Cellular] Application and USB control request API for sending APDUs #2915

ENHANCEMENTS

  • [Cellular] BG95S5 cellular env vars support #2908
  • Support detecting/configuring M-HAT in Tinker #2914

BUGFIXES

  • [Gen 4] Allows longer duration sleep with AM1805 (external RTC) #2907
  • [Tracker] Expose deprecated hal_exrtc_ functions #2907
  • [Gen 4] Fix interrupt/thread safety issues when reading manufacturing data from eFuses#2909
  • [Gen 4] [scripts] fix OpenOCD rtl872x.tcl flash script to be more reliable #2911
  • Filesystem initialization in bootloader should create /sys folder to prevent a panic in system expecting it to be present#2917

INTERNAL

  • manufacturing/empty_external_flash test #2917

System Binaries (all devices)

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

v6.4.0 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)

Choose a tag to compare

@scott-brust scott-brust released this 19 Mar 07:50

Device OS 6.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/M-SoM/P2).

Released on March 19, 2026

See documentation about Device OS versions, their current state, upgrades and downgrades here.


6.4.0

FEATURES

  • Environment #2892 #2904 #2903 #2892 #2903 #2902
  • PRE_STARTUP() API for earlier application initialization #2888
  • [system] PARTICLE_BLE_ENABLE, PARTICLE_WIFI_ENABLE, and PARTICLE_ETHERNET_ENABLE environment variables #2897
  • [cellular] support PARTICLE_CELLULAR_PREFERRED_BANDS, PARTICLE_CELLULAR_FORBIDDEN_BANDS, and PARTICLE_CELLULAR_PREFERRED_PLMN environment variables #2896
  • [am18x5] built-in AM18x5 driver in Device OS #2906 1bb9b26
  • POWER_OFF sleep mode support through AM18x5 #2906

BUGFIXES

  • Fix DNS server change lockup and improve DNS failure handling #2894
  • [wiring] system: fix 32-bit global millis() being shadowed by class-member 64-bit millis() 9d30096
  • [system] do not handle network activity when going into sleep mode if network manager is not initialized 97ecb3d
  • [Gen 4] preserve RTC time across sleep and software resets #2906 708feb6

INTERNAL


System Binaries (all devices)

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


Programming and Debugging

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

v6.3.5 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)

Choose a tag to compare

@technobly technobly released this 15 Jan 21:33

Device OS 6.3.5 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 January 15, 2026

See documentation about Device OS versions, their current state, upgrades and downgrades here.


6.3.5

BUGFIXES

  • [tracker] Resolved a bug in mcp23s17.cpp where the SPI lock was not being properly acquired #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
  • [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
  • Added support for I2C::setSpeed() from 10kHz to 99kHz in 1kHz increments #2893

ENHANCEMENTS

  • [gen4] Optimized boot time by enabling cache earlier in the boot sequence, optimizing BLE/USB initialization, and streamlining integrity checks.#2887

INTERNAL

  • [tests] Adds 00_before and zz_after HIL integration test suites #2884

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v6.3.5/particle_device-os@6.3.5.zip


Programming and Debugging

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

v6.3.4 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)

Choose a tag to compare

@technobly technobly released this 01 Oct 16:59

Device OS 6.3.4 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 Oct 1, 2025

See documentation about Device OS versions, their current state, upgrades and downgrades here.


6.3.4

BUGFIXES

  • Increased the system power manager stack size for all platforms to improve reliability. This fix also enables B-SoM for Muon #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
  • [test] Fixed specific test failures for M635/M-SoM with BG95-S5/BG95-M5 modems in the CELLULAR_07_urcs suite. #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

INTERNAL

  • [docs] Update CLA links #2878
  • [test] Update test dependencies #2879

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v6.3.4/particle_device-os@6.3.4.zip


Programming and Debugging

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

v6.3.3 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)

Choose a tag to compare

@avtolstoy avtolstoy released this 11 Jun 20:13

Device OS 6.3.3 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 June 11, 2025

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:

  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.

6.3.3

FEATURES

ENHANCEMENTS

BUGFIXES

  • [Gen 4] free_worker incorrect queue put #2872
  • [Gen 3] BLE lock is acquired inside ISR handler in cases where BLE memory pool gets exhausted #2873
  • [Gen 4] BLE stack does not handle correctly the case where the peripheral does not respond to the MTU exchange request #2873

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v6.3.3/particle_device-os@6.3.3.zip


Programming and Debugging

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

v6.3.2 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)

Choose a tag to compare

@scott-brust scott-brust released this 05 May 17:45

Device OS 6.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/M-SoM/P2).

Released on May 5, 2025

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:

  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.

6.3.2

ENHANCEMENTS

  • [network] interface-aware DNS lookups #2864

BUGFIXES

  • [gen4] core: fix PSRAM heap size while in safe mode #2871
  • [hal] SPI: fixes threading safety issue #2865
  • [gen4] hal: get rid of unnecessary constant delay(1) in HAL_USB_USART_Send_Data() #2867
  • [gen4] Work around a race condition in the new event API #2869

INTERNAL

  • [gen4] Fix MBR flash_copy due to incorrect status register WIP bit detection #2868
  • [msom] Ignore CIMI errors on bg95s5 with no esim profile loaded #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


Programming and Debugging

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

v6.3.0 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)

Choose a tag to compare

@avtolstoy avtolstoy released this 06 Feb 21:44

Device OS 6.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/M-SoM/P2).

Released on Feb 6, 2025

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:

  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.

6.3.0

FEATURES

  • New cloud event API that supports sending and receiving up to 16K of data in an event #2840
  • Electron 2 platform support #2844
  • [wiring] Enable Cellular/WiFi/Ethernet .ping() for Gen 3 and Gen 4 platforms #2856

ENHANCEMENTS

  • [wiring] Generate an error when using EEPROM with String objects as String contains dynamically allocated data on heap #2855
  • [network] Postpone Ethernet interface initialization to allow STARTUP() call to override pin configuration without a reset #2848

BUGFIXES

  • Prevent low-level WiFI network buffer overflow #2853
  • [Gen 3] Increase main stack size from 2K to 4K #2851
  • Thread-safe __cxa_guard_acquire/__cxa_guard_release implementation #2851
  • [build] Fix section size calculations for paths containing section-like names #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
  • [test] communication/long_publish: adds a long running publish test #2854
  • [build] Add asserts to linker files to make sure that stack sizes match the expected values #2851
  • Stub atexit to free up flash space used by global object destructors #2851

System Binaries (all devices)

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


Programming and Debugging

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

v6.2.1 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)

Choose a tag to compare

@avtolstoy avtolstoy released this 16 Dec 16:34

Device OS 6.2.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/M-SoM/P2).

Released on Dec 16, 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:

  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.

6.2.1

FEATURES

  • Expose ICCID to Modem Manager when tethering #2838
  • [Cellular] BG95-S5 support #2842
  • [BLE] BLE.setAdvertisingScheme() API #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
  • [Ethernet] Minor performance optimizations #2846
  • [Ethernet] Enable internal pull-up on interrupt line in case external one is not populated to prevent it from floating 684047d7
  • [Gen 4] WiFi: Always perform a scan before connect and use both SSID + BSSID to initiate the connection #2849
  • [Cellular] [R510] Extend EHS (Emergency Hardware Shutdown) sequence timing due to reduced clock rate while in (UPSV=1) Power Saving mode #2850

BUGFIXES

  • [Gen 3] Fix DMA issue when writing from internal flash to external flash #2843
  • [Ethernet] Fix default pin configuration/validation #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 for more info #2845
  • [Gen 4] BLE: Fix a deadlock between BLE.connect() and BLE.peerCentral() calls in different threads #2836
  • [Gen 4] BLE: Fix connection issues operating in peripheral/central roles concurrently #2839

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v6.2.1/particle_device-os@6.2.1.zip


Programming and Debugging

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

v6.2.0 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)

Choose a tag to compare

@technobly technobly released this 15 Oct 17:07

Device OS 6.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/M-SoM/P2).

Released on Oct 15, 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:

  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.

6.2.0

BREAKING CHANGES

  • make SYSTEM_THREAD(ENABLED) the default, add deprecation warning on SYSTEM_THREAD() macro use #2834
  • Removed deprecated HAL API wrappers after a set of renamings in Device OS 4.x LTS #2834

FEATURES

  • Extend Particle.publish() and `Particle.subscribe()`` APIs to support events content types #2804
  • Tether API + ModemManager support #2832
  • Supports M.2 breakout board and Muon #2809

ENHANCEMENTS

  • [gen3] make sure that extended system-part1 is compatible with older bootloaders as well as 6.1.2 #2831
  • Improves delay() behavior #2828
  • [photon2] ethernet: use 12.5MHz as the default SPI clock rate for W5500 #2835
  • [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
  • [Gen 3] Muon/M.2 breakout support enabled for Gen 3 SoMs #2808

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

  • Remove access_token query param from Device OS makefile #2833
  • 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)

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


Programming and Debugging

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

v5.9.0 (Argon/Boron/B-SoM/B5-SoM/Tracker/Tracker-M/E-SoM-X/M-SoM/P2)

Choose a tag to compare

@technobly technobly released this 11 Sep 17:07

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:

  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.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)

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


Programming and Debugging

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