Device OS 1.4.0 Default Release is out on the Web IDE for (Core/Photon/P1/Electron/Argon/Boron/Xenon/A SoM/B SoM/X SoM)
released on production servers September 10th, 2019
Please read all notes below :bowtie:
Note: This is a Release and may be used for production. Any known issues are likely slated for a future version, (check Github issues). It is available by default for all devices. To use, select the 1.4.0 version dropdown from the devices drawer.
Downgrading back to a previous release info is at the bottom of this post.Note: If you have previously last used one of the prerelease versions of 1.4.0-rc.x on a device, please re-flash it with 1.4.0.
Note: OTA or YModem transfer on Electron (sequence required)
- First Update to 0.5.5 (if the current version is less than that)
- Then update to 0.6.4 (if the current version is less than that)
- Then update to 0.7.0 (if the current version is less than that)
- Then update to 1.2.1 (if the current version is less than that)
- Then update to 1.4.0
Note: DFU over USB on Electron/Photon/P1 (sequence not required)
- You may update to 1.4.0 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using
particle flash --usb <system-part.bin>
. See the next note about the bootloader if you are offline!Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device usingparticle flash --serial <bootloader.bin>
. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it's own system parts.Note: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM Bootloader
If your device is offline, the bootloader must be manually updated usingparticle flash --serial <bootloader.bin>
. This can be done before or after upgrading system firmware.Note: Argon/Boron/Xenon/Argon-SoM/Boron-SoM/Xenon-SoM SoftDevice
If your device is offline, the SoftDevice must be manually updated using the CLI. See the instructions below.Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 1.2.1, then 0.7.0, then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 1.2.1, then 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.
1.4.0.
Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware via CLI with
particle update
. Electron bootloaders are still contained in system firmware and will update automatically as needed.
Note: If your Gen 3 device does not have a Cloud connection, this release will also require manually updating the SoftDevice via CLI. The instructions are available in the release notes and the SoftDevice binaries are available in the Github release.
This release contains v500 bootloaders.
SoftDevice update
This Device OS release will automatically update the SoftDevice for devices connected to the cloud.
Prerequisites
particle-cli version 1.47.0.
Upgrading using particle update
- Put the device into DFU mode
- Run
particle update
DeviceOS, bootloader and SoftDevice should get correctly updated.
Upgrading OTA
- Upgrade to 1.4.0
- Manually flash 1.4.0 bootloader:
particle flash <deviceId> boron-bootloader@1.4.0.bin
- Flash SoftDevice:
particle flash <deviceId> boron-softdevice@1.4.0.bin
Upgrading using YModem
- Upgrade to 1.4.0
- Put the device into listening mode (blinking blue) by holding MODE button
- Manually flash 1.4.0 bootloader:
particle flash --serial boron-bootloader@1.4.0.bin
- Flash SoftDevice:
particle flash --serial boron-softdevice@1.4.0.bin
Upgrading using DFU (--usb only works for SoftDevice, not bootloader yet)
- Upgrade Device OS to 1.4.0
- Update the bootloader to 1.4.0 with the OTA or YModem process above
- Put the device into DFU mode (blinking yellow)
- Flash the SoftDevice:
particle flash --usb boron-softdevice@1.4.0.bin
FEATURES
- [Gen 3] Introduces BLE.begin() and BLE.end() wiring APIs #1890
- [Gen 3] Exposes POSIX
select()
andpoll()
from socket HAL dynalib #1895
ENHANCEMENTS
- [Gen 3] Adds
BleCharacteristic::setValue(..., BleTxRxType)
API to send data with or without acknowledgement #1901 - [Gen 3] Alternately broadcast user's and Particle-specific BLE advertising data when the device is in the Listening mode #1882
- Updates FreeRTOS from 10.0.1 to 10.2.1. Changelog #1864
- Updates Catch2 from 2.4.2 to 2.9.1. Changelog #1864
- Updates FakeIt from 2.0.5-7-g362271d to 2.0.5-13-g317419c. Changelog #1864
- Updates LittleFS from 1.6.0 to 1.7.2. Changelog. Fork diff #1864
- Updates LwIP from 2.0.5 to 2.1.2. Changelog. Fork diff #1864
- Updates LwIP Contrib from 2.0.0 to 2.1.2. Changelog #1864
- Updates MbedTLS from 2.9.0 to 2.16.2. Changelog. Fork diff #1864
- Updates miniz from 2.0.7 to 2.1.0. Changelog. Fork diff #1864
- Updates nanopb from 0.3.9 to 0.3.9.3. Changelog. Fork diff #1864
- Updates OpenThread from 20190130 to 20190709. Changelog. Fork diff #1864
- Updates WizNet Ethernet Driver from 20180515 to 20190529. Changelog. Fork diff #1864
BUGFIXES
- Fixes an issue in
IPAddress::operator bool()
causing the operator to returnfalse
for valid IPv6 addresses #1912 - Fixes #1865,
TCPClient::connect()
return values #1909 - [Gen 2] [LTE] fixes slow to close TCP sockets on SARA-R410M-02B [ch35609] #1909
- [Gen 3] Subscribes both notification and indication if both properties are present in peer BLE characteristic #1901
- [Gen 3] Restricts
BleCharacteristic
templatedgetValue()
andsetValue()
arguments to be standard layout #1901 - [Gen 3]
BleUuid
comparison operators are no longer case-sensitive #1902 - [Gen 3] Fixes
BleCharacteristic
constructor template to accept characteristic and service UUID arguments with different types #1902 - Fixes
SerialLogHandler
interfering with the Serial setup console in listening mode #1909 - Fixes a regression introduced in 1.1.0 where the system layer was always sending its handshake messages even if the session was resumed causing increased data usage #1905
- Properly seeds
rand()
in multiple threads including system thread. Fixes ephemeral port allocation in LwIP on Gen 3 platforms #1905 - Control requests that reset the device (e.g.
particle usb dfu
) no longer cause unnecessary reconnection to the cloud #1905 - Initialize user module in monolithic builds #1905
- [Gen 3] Fixes heap and application static RAM overlap introduced in 1.3.0-rc.1 #1898
- Fixes tinker build errors when building with
LOG_SERIAL=y
#1898 - [Gen 3] Restored default BLE device address is incorrect. #1891
- [Gen 3] Read BLE device name might be contracted. #1891
- [Gen 3] operator& of the BleCharacteristicProperty enum class doesn't work as expected. #1891
- [Gen 3] The length of got advertising and scan response data is not updated. #1891
- Fixes dynalib alignment issue when compiling relatively large applications potentially due to an unconfirmed bug in GCC by moving the dynalib into a separate section (
.dynalib
) #1894 - [Gen 3] Fixes incorrect handling of
MODULE_INFO_FLAG_DROP_MODULE_INFO
in the bootloader #1897 - [Gen 3] Adds a dummy suffix to the NCP and SoftDevice modules' module info with unique SHA to cause the communication layer to detect the change in SYSTEM DESCRIBE after NCP or SoftDevice update #1897
INTERNAL
- Minor enhancements in
wiring/no_fixture
andwiring/no_fixture_long_running
tests #1912 - [Git] Fixes whitespace issues in
.gitmodules
#1910 - [Gen 3] Adds
wiring/no_fixture_ble
,wiring/ble_central_peripheral
andwiring/ble_scanner_broadcaster
on-device tests #1901 - Update release script to include Electron without DEBUG_BUILD=y and tinker-serial-debugging apps for Gen 3 #1903
- [Photon / P1] Changes to support building combined images for the recent releases #1887
wiring/no_fixture
test adjustments for Gen 2 and Gen 3 platforms #1898- Coveralls test coverage reports generated by Travis #1896
System Binaries (all devices)
https://github.com/particle-iot/device-os/releases/download/v1.4.0/particle_device-os@1.4.0.zip
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
QA Report Summary for Particle Device OS
You can view results of tests run this release here.