Releases: particle-iot/device-os
v2.3.0-rc.1 (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)
Device OS 2.3.0-rc.1 Release Candidate (LTS) is available in the Web IDE, Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
released on October 6th, 2021
See documentation about Device OS versions, their current state, upgrades and downgrades here.
2.3.0-rc.1
FEATURES
- [Boron / B SoM ] Support for SARA R510 #2359 #2365
- [Electron] Optional feature to use HSE/LSI as RTC clock source instead of LSE (external 32KHz XTAL) #2354
INTERNAL
- Fix gcovr installation #2365
System Binaries (all devices)
https://github.com/particle-iot/device-os/releases/download/v2.3.0-rc.1/[email protected]
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
v2.0.2 (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)
Device OS 2.0.2 Default Release (LTS) is available in the Web IDE, Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
released on September 24th, 2021
See documentation about Device OS versions, their current state, upgrades and downgrades here.
2.0.2
FEATURES
- [Electron] Optional feature to use HSE/LSI as RTC clock source instead of LSE (external 32KHz XTAL) #2354
System Binaries (all devices)
https://github.com/particle-iot/device-os/releases/download/v2.0.2/[email protected]
Programming and Debugging
You can view specific [programming and debugging notes for this version of firmware here](insert link).
v2.2.0 (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)
Device OS 2.2.0 Default Release (LTS) is available in the Web IDE, Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
released on September 15th, 2021
See documentation about Device OS versions, their current state, upgrades and downgrades here.
2.2.0
FEATURES
ENHANCEMENTS
- [Gen 3] Remove XIP support for accessing the external flash #2302 #2321
- Trigger a compiler error when a function returning a value does not do so #2323
- [Argon] Cache ESP32 MAC address in persistent storage to improve boot-up times #2327
- [Cellular] Add
CellularSignal::isValid()
andCellularSignal::operator bool()
APIs #2212 - Refactor system describe/info JSON generation to reduce size and remove invalid modules from it #2347 #2349
BUGFIXES
- [Gen 2] Fix unexpected network connection establishment after exiting sleep mode when only
Network.on()
was called #2309 - [Gen 2] Fix unexpected network connection establishment when the modem or WiFi initialization failes, but only
Network.on()
was called #2309 - [Photon / P1] Make sure to close all sockets when deinitializing WICED WLAN connectivity subsystem #2313 #2321
- [B5 SoM / Tracker] Fixes external flash DFU definition on in bootloader to use 4KB sectors 399b8a0 #2321
- Fix non-MBR-based bootloader updates #2327
- Clear module slots in DCT when preparing for an OTA update #2346
- Do not reset the DTLS session on socket errors #2335 #2337
- [Argon / Tracker] Avoid power leakage through ESP32
ESPBOOT
pin #2342 - Fix parsing of JSON strings with more than 127 tokens #2348
INTERNAL
- Add an integration test to validate network/cloud connection time SLOs #2312 #2320 #2321
- [ci] Fix MarkupSafe weirdness #2317
- Add
.bundleignore
for Workbench Device OS source code bundles #2326 - Manage GCC dependencies with
.workbench/manifest.json
d94f08030 - [CI] Generate public Codefresh URL in Slack notifications #2333
- [Photon / P1] system part 2 size optimizations #2349
- [Electron] Increase
MBEDTLS_SSL_MAX_CONTENT_LEN
to 900 #2349
System Binaries (all devices)
https://github.com/particle-iot/device-os/releases/download/v2.2.0/[email protected]
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
v2.0.2-rc.1 (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)
Device OS 2.0.2-rc.1 Release Candidate (LTS) is available in the Web IDE, Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
released on September 14th, 2021
See documentation about Device OS versions, their current state, upgrades and downgrades here.
2.0.2-rc.1
FEATURES
- [Electron] Optional feature to use HSE/LSI as RTC clock source instead of LSE (external 32KHz XTAL) #2354
System Binaries (all devices)
https://github.com/particle-iot/device-os/releases/download/v2.0.2-rc.1/[email protected]
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
v2.2.0-rc.2 (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)
Device OS 2.2.0-rc.2 Release Candidate (LTS) is available in the Web IDE, Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
released on August 27th, 2021
See documentation about Device OS versions, their current state, upgrades and downgrades here.
2.2.0-rc.2
ENHANCEMENTS
- Refactor system describe/info JSON generation to reduce size and remove invalid modules from it #2347 #2349
BUGFIXES
- Clear module slots in DCT when preparing for an OTA update #2346
- Do not reset the DTLS session on socket errors #2335 #2337
- [Argon / Tracker] Avoid power leakage through ESP32
ESPBOOT
pin #2342 - Fix parsing of JSON strings with more than 127 tokens #2348
INTERNAL
- [CI] Generate public Codefresh URL in Slack notifications #2333
- [Photon / P1] system part 2 size optimizations #2349
- [Electron] Increase
MBEDTLS_SSL_MAX_CONTENT_LEN
to 900 #2349
System Binaries (all devices)
https://github.com/particle-iot/device-os/releases/download/v2.2.0-rc.2/[email protected]
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
v3.1.0 (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)
Device OS 3.1.0 Release is available in the Web IDE, Particle CLI and Workbench for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
Released on July 13th, 2021
See documentation about Device OS versions, their current state, upgrades and downgrades here.
Gen 3 256KB application binary support
Device OS 3.1 brings support for 256KB application binaries to all Gen 3 platforms (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.
3.1.0
FEATURES
- [Gen 3] 256KB application support #2322
- Support for DTLS connection IDs #2249
- GCC 10 support #2288
- [Gen 3] BLE LESC support #2262
- [Gen 3] BLE 5 PHY_CODED (long range) scanning and advertising support #2287 #2298 #2321
- [Tracker] AB1805 native watchdog support #2316
- [Boron / B SoM / Electron] Support for SARA R410 05.12 modem firmware #2317 #2319 #2318
- Add an API to get the maximum supported size of event data #2315
ENHANCEMENTS
- [Argon] Cache ESP32 MAC address in persistent storage to improve boot-up times #2327
- [Cellular] Inhibit Cellular URCs before going into sleep to prevent them from triggering wake-up #2295 #2321
- [Gen 3] Remove XIP support for accessing the external flash #2302 #2321
- [Photon / P1] Enable LTO #2288
- Trigger a compiler error when a function returning a value does not do so #2323
- [Gen 3] Fix non-MBR-based bootloader updates #2327
BUGFIXES
- Do not reset the DTLS session on socket errors #2335 #2337
- [Cellular] Prevent ICCID querying errors when not connected to a cellular network by using airplane mode
CFUN=4
#2328 - [Photon / P1] Make sure to close all sockets when deinitializing WICED WLAN connectivity subsystem #2313 #2321
- [Gen 2] Fix unexpected network connection establishment after exiting sleep mode when only
Network.on()
was called #2309 - [Gen 2] Fix unexpected network connection establishment when the modem or WiFi initialization failes, but only
Network.on()
was called #2309 - Correctly restore network interface power state after waking up from
STOP
orULTRA_LOW_POWER
sleep modes #2308 - Fix the issue that the Particle.disconnect() doesn't clear the auto-connect flag #2306
- [Electron] Fix unintended modem reset after an ongoing network registartion attempt is actively cancelled by the application #2307
- Fix
Particle.unsubscribe()
not preserving system subscriptions #2293 - Querying the value of an empty string variable causes an error #2297
INTERNAL
- [ci] Remove build directory after finishing the build job #2311
- [ci] Fix MarkupSafe weirdness #2314
- Add an integration test to validate network/cloud connection time SLOs #2312 #2320 #2321
- Allow clearing session data and running custom setup code in integration tests #2280
- Add
.bundleignore
for Workbench Device OS source code bundles #2326 - Manage GCC dependencies with
.workbench/manifest.json
d94f08030
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
v2.2.0-rc.1 (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)
Device OS 2.2.0-rc.1 Release Candidate (LTS) is available in the Web IDE, Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
released on June 24th, 2021
See documentation about Device OS versions, their current state, upgrades and downgrades here.
2.2.0-rc.1
FEATURES
ENHANCEMENTS
- [Gen 3] Remove XIP support for accessing the external flash #2302 #2321
- Trigger a compiler error when a function returning a value does not do so #2323
- [Argon] Cache ESP32 MAC address in persistent storage to improve boot-up times #2327
- [Cellular] Add
CellularSignal::isValid()
andCellularSignal::operator bool()
APIs #2212
BUGFIXES
- [Gen 2] Fix unexpected network connection establishment after exiting sleep mode when only
Network.on()
was called #2309 - [Gen 2] Fix unexpected network connection establishment when the modem or WiFi initialization failes, but only
Network.on()
was called #2309 - [Photon / P1] Make sure to close all sockets when deinitializing WICED WLAN connectivity subsystem #2313 #2321
- [B5 SoM / Tracker] Fixes external flash DFU definition on in bootloader to use 4KB sectors 399b8a0 #2321
- Fix non-MBR-based bootloader updates #2327
INTERNAL
- Add an integration test to validate network/cloud connection time SLOs #2312 #2320 #2321
- [ci] Fix MarkupSafe weirdness #2317
- Add
.bundleignore
for Workbench Device OS source code bundles #2326 - Manage GCC dependencies with
.workbench/manifest.json
d94f08030
System Binaries (all devices)
https://github.com/particle-iot/device-os/releases/download/v2.2.0-rc.1/[email protected]
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
v3.1.0-rc.1 (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)
Device OS 3.1.0-rc.1 Release Candidate is available in the Web IDE, Particle CLI and Workbench for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
Released on June 22nd, 2021
See documentation about Device OS versions, their current state, upgrades and downgrades here.
Gen 3 256KB application binary support
Device OS 3.1 brings support for 256KB application binaries to all Gen 3 platforms (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.
3.1.0-rc.1
FEATURES
- [Gen 3] 256KB application support #2322
- Support for DTLS connection IDs #2249
- GCC 10 support #2288
- [Gen 3] BLE LESC support #2262
- [Gen 3] BLE 5 PHY_CODED (long range) scanning and advertising support #2287 #2298 #2321
- [Tracker] AB1805 native watchdog support #2316
- [Boron / B SoM / Electron] Support for SARA R410 05.12 modem firmware #2317 #2319 #2318
- Add an API to get the maximum supported size of event data #2315
ENHANCEMENTS
- [Argon] Cache ESP32 MAC address in persistent storage to improve boot-up times #2327
- [Cellular] Inhibit Cellular URCs before going into sleep to prevent them from triggering wake-up #2295 #2321
- [Gen 3] Remove XIP support for accessing the external flash #2302 #2321
- [Photon / P1] Enable LTO #2288
- Trigger a compiler error when a function returning a value does not do so #2323
- [Gen 3] Fix non-MBR-based bootloader updates #2327
BUGFIXES
- [Cellular] Prevent ICCID querying errors when not connected to a cellular network by using airplane mode
CFUN=4
#2328 - [Photon / P1] Make sure to close all sockets when deinitializing WICED WLAN connectivity subsystem #2313 #2321
- [Gen 2] Fix unexpected network connection establishment after exiting sleep mode when only
Network.on()
was called #2309 - [Gen 2] Fix unexpected network connection establishment when the modem or WiFi initialization failes, but only
Network.on()
was called #2309 - Correctly restore network interface power state after waking up from
STOP
orULTRA_LOW_POWER
sleep modes #2308 - Fix the issue that the Particle.disconnect() doesn't clear the auto-connect flag #2306
- [Electron] Fix unintended modem reset after an ongoing network registartion attempt is actively cancelled by the application #2307
- Fix
Particle.unsubscribe()
not preserving system subscriptions #2293 - Querying the value of an empty string variable causes an error #2297
INTERNAL
- [ci] Remove build directory after finishing the build job #2311
- [ci] Fix MarkupSafe weirdness #2314
- Add an integration test to validate network/cloud connection time SLOs #2312 #2320 #2321
- Allow clearing session data and running custom setup code in integration tests #2280
- Add
.bundleignore
for Workbench Device OS source code bundles #2326 - Manage GCC dependencies with
.workbench/manifest.json
d94f08030
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
v2.1.0 (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)
Device OS 2.1.0 Default Release (LTS) is available in the Web IDE, Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
released on April 29th, 2021
See documentation about Device OS versions, their current state, upgrades and downgrades here.
2.1.0
FEATURES
- [Cellular] Send modem firmware version to the cloud as part of the system describe message #2265
Network.isOn()
andNetwork.isOff()
APIs to query the network interface power state #2205- [Electron] Proactively attempt to recover from a number of failed cellular registration states #2301
ENHANCEMENTS
- [Cellular] Update ICCID/IMSI to APN map with a new Kore ICCID prefix #2276
- [B5 SoM / Quectel] Improve warm and cold boot behavior #2300
- Update Workbench dependencies #2299
- Improve I2C reset procedure to be less destructive and issue STOP condition as soon as possible #2303
- [Cellular] Perform PMIC/FuelGauge/RTC I2C bus reset on boot to avoid accidental writes after a non-graceful reset #2303
- [Argon] Reduce cloud keep-alive timeout to 25 seconds from 30 seconds #2304
- [Electron] Build system parts with LTO enabled #2235
- Upate MbedTLS to 2.22.0 #2117
- [Gen 3] Ethernet FeatherWing power state management #2258
BUGFIXES
- [Electron] Fix unintended modem reset after an ongoing network registartion attempt is actively cancelled by the application #2307
- Correctly restore network interface power state after waking up from
STOP
orULTRA_LOW_POWER
sleep modes #2308 - [Gen 2] Fix D0 alternate-function being unconditionally reset when calling
Serial1.end()
#2256 - [Boron / B SoM] Fix external SIM getting stuck in initialization #2263
- [BLE] Return
false
inBlePeerDevice::getCharacteristicByDescription()
if expected characteristic was not found #2266 - [Gen 3] Fix UART DMA RX transfer size issues causing DMA writes outside of the RX buffer #2264
- [Gen 3] Fix
ChannelStream::waitEvent()
timeout calculation #2267 - [Gen 3] Use
PIN_INVALID
when initializing SPI peripheral to avoid overriding the pin mode of the default CS pin on reinitialization #2275 - [Electron] Increase
AT+COPS
timeout to 5 minutes #2281 - [Electron] Fix Sleep 2.0 APIs taking up to 10 minutes to power-off the cellular modem while it's attempting network registration #2284
- [B5 SoM / Tracker] Fix warm boot sometimes requiring modem reset #2289
- Fix
Particle.unsubscribe()
not preserving system subscriptions #2293 - Querying the value of an empty string variable causes an error #2297
- [Gen 3] Add workaround for Nordic nRF52840 anomaly 219 (TWIM: I2C timing spec is violated at 400 kHz) #2303
- [Gen 3] Fix micros/millis/unixtime becoming non-monotonic 2a4fcb82b #2303
- Fix the issue that the Particle.disconnect() doesn't clear the auto-connect flag #2306
INTERNAL
- [ci] Remove build directory after finishing the build job #2311
- Startup SLO automated tests #2277 #2274
- Allow clearing session data and running custom setup code in integration tests #2280
System Binaries (all devices)
https://github.com/particle-iot/device-os/releases/download/v2.1.0/[email protected]
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
v2.1.0-rc.1 (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker)
Device OS 2.1.0-rc.1 Release Candidate (LTS) is available in the Web IDE, Particle Workbench and Particle CLI for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
released on April 15th, 2021
See documentation about Device OS versions, their current state, upgrades and downgrades here.
2.1.0-rc.1
FEATURES
- [Cellular] Send modem firmware version to the cloud as part of the system describe message #2265
Network.isOn()
andNetwork.isOff()
APIs to query the network interface power state #2205- [Electron] Proactively attempt to recover from a number of failed cellular registration states #2301
ENHANCEMENTS
- [Cellular] Update ICCID/IMSI to APN map with a new Kore ICCID prefix #2276
- [B5 SoM / Quectel] Improve warm and cold boot behavior #2300
- Update Workbench dependencies #2299
- Improve I2C reset procedure to be less destructive and issue STOP condition as soon as possible #2303
- [Cellular] Perform PMIC/FuelGauge/RTC I2C bus reset on boot to avoid accidental writes after a non-graceful reset #2303
- [Argon] Reduce cloud keep-alive timeout to 25 seconds from 30 seconds #2304
- [Electron] Build system parts with LTO enabled #2235
- Upate MbedTLS to 2.22.0 #2117
- [Gen 3] Ethernet FeatherWing power state management #2258
BUGFIXES
- [Gen 2] Fix D0 alternate-function being unconditionally reset when calling
Serial1.end()
#2256 - [Boron / B SoM] Fix external SIM getting stuck in initialization #2263
- [BLE] Return
false
inBlePeerDevice::getCharacteristicByDescription()
if expected characteristic was not found #2266 - [Gen 3] Fix UART DMA RX transfer size issues causing DMA writes outside of the RX buffer #2264
- [Gen 3] Fix
ChannelStream::waitEvent()
timeout calculation #2267 - [Gen 3] Use
PIN_INVALID
when initializing SPI peripheral to avoid overriding the pin mode of the default CS pin on reinitialization #2275 - [Electron] Increase
AT+COPS
timeout to 5 minutes #2281 - [Electron] Fix Sleep 2.0 APIs taking up to 10 minutes to power-off the cellular modem while it's attempting network registration #2284
- [B5 SoM / Tracker] Fix warm boot sometimes requiring modem reset #2289
- Fix
Particle.unsubscribe()
not preserving system subscriptions #2293 - Querying the value of an empty string variable causes an error #2297
- [Gen 3] Add workaround for Nordic nRF52840 anomaly 219 (TWIM: I2C timing spec is violated at 400 kHz) #2303
- [Gen 3] Fix micros/millis/unixtime becoming non-monotonic 2a4fcb82b #2303
- Fix the issue that the Particle.disconnect() doesn't clear the auto-connect flag #2306
INTERNAL
- Startup SLO automated tests #2277 #2274
- Allow clearing session data and running custom setup code in integration tests #2280
System Binaries (all devices)
https://github.com/particle-iot/device-os/releases/download/v2.1.0-rc.1/[email protected]
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.