Device OS 3.0.0 Release is available in the Web IDE, Particle CLI and Workbench for (Photon/P1/Electron/Argon/Boron/B SoM/B5 SoM/Tracker).
Released on April 8th, 2021
Note: This is a Release and may be used for production. Any known issues are likely slated for a future version, see GitHub issues.
This is the first release on non-LTS feature development branch (3.x). To learn more about our new LTS release line, read our blog post.
You can view information about Device OS versions, upgrades and downgrades here.
3.0.0
BREAKING CHANGES
- [Cellular] Remove
rssi
andqual
fromCellular.RSSI()
#2212 - [Gen 3] BLE API consistency enhancements #2222
FEATURES
- [Electron] Proactively attempt to recover from a number of failed cellular registration states #2301
- [Cellular] Battery presence detection when charging is disabled #2272
- Increase the maximum DTLS packet size and payload of the cloud primitives #2260
- [Cellular] Send modem firmware version to the cloud as part of the system describe message #2265
- [Gen 3] OTAv3 protocol #2199
- [Tracker] ESP32 WiFi scanning support #2250
- [Cellular]
SystemPowerFeature::DISABLE_CHARGING
configuration option to enable or disable charging #2257 -
Network.isOn()
andNetwork.isOff()
APIs to query the network interface power state #2205 - [Gen 3] BLE legacy pairing #2237
- [Cellular] Query cellular signal while trying to register on a network #2232
- [Tracker] WiFi/GNSS/FuelGauge sleep wake-up sources #2200
- Configure multiple pins as wakeup source at a time #2228 #2231
ENHANCEMENTS
- [Argon] Reduce cloud keep-alive timeout to 25 seconds from 30 seconds #2304
- Improve I2C reset procedure to be less destructive and issue STOP condition as soon as possible #2303
- [Cellular] Perform PMIC/FuelGauge/RTC I2C bus reset on boot to avoid accidental writes after a non-graceful reset #2303
- [Cellular] System power management improvements #2272 #2290
- [Cellular] Update ICCID/IMSI to APN map with a new Kore ICCID prefix #2276
- Disable some of the elliptic-curves not in use to save flash space #2273
- [Cellular] Update LTE signal strength/quality parameters (RSRP/RSRQ) mapping to percentages #2285
- [B5 SoM / Quectel] Improve warm and cold boot behavior #2300
- [Gen 3] Custom logging categories for AT parser and GSM 07.10 multiplexer to differentiate between cellular modem and ESP32 on Tracker platforms #2267
- [Tracker] Reduce code size of GSM 07.10 multiplexer implementation making sure that ESP32 and cellular NCP client use the same template variant of it #2267
- [Electron] Speed up modem power-on #2268
- [Tracker] Cache ESP32 NCP firmware version in non-volatile memory #2269
- [Gen 3] Network interface management improvements #2217
- [Gen 3]
SPI.transfer()
support for constant buffers residing in flash #2196 - [Gen 3] Add characteristic discovery to
BleService
#2203 - [Gen 3] BLE Scanned/Connected/Disconnected/Data Received callbacks in C++ style #2224
- [Gen 3] BLE scanning filter #2223
- [Electron] Build system parts with LTO enabled #2235
- Add more operators for
BleAddress
,BleUuid
andIPAddress
#2216 - Upate MbedTLS to 2.22.0 #2117
- [Tracker] ESP32 NCP firmware updated to version 0.0.7
- Use
PARTICLE_
prefix for LED defines in order not to pollute global namespace #2247 - [Gen 3] Ethernet FeatherWing power state management #2258
- [Cellular] Changes how signal strength and quality percentages are calculated to provide a more accurate representation of signal conditions #2236
BUGFIXES
- [Gen 3] Add workaround for Nordic nRF52840 anomaly 219 (TWIM: I2C timing spec is violated at 400 kHz) #2303
- [Gen 3] Fix micros/millis/unixtime becoming non-monotonic 2a4fcb82b #2303
- [Gen 3] Use
PIN_INVALID
when initializing SPI peripheral to avoid overriding the pin mode of the default CS pin on reinitialization #2275 - [Argon / Tracker] Make sure that ESP32 NCP power state is correctly initialized on boot #2279
- [Electron] Increase
AT+COPS
timeout to 5 minutes #2281 - [Electron] Fix Sleep 2.0 APIs taking up to 10 minutes to power-off the cellular modem while it’s attempting network registration #2284
- [B5 SoM / Tracker] Fix warm boot sometimes requiring modem reset #2289
- [Boron / B SoM] Fix external SIM getting stuck in initialization #2263
- [BLE] Return
false
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] Fix warm boot feature regression introduced in 3.0.0-beta.1 #2269
- [Gen 3] Disconnect from the server on OTAv3 update errors #2270
- [Gen 2] Fix D0 alternate-function being unconditionally reset when calling
Serial1.end()
#2256 - [Gen 3] Fix an issue with
BLE.scan()
deadlocking #2220
INTERNAL
System Binaries (all devices)
https://github.com/particle-iot/device-os/releases/download/v3.0.0/particle_device-os@3.0.0.zip
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.