Particle Device OS Updates Thread

Hi friends!

We just updated release/stable and master branches of the device-os repo to be current with release/v1.2.1.

Because we had to force push these changes, you’ll likely have merge conflicts if you git pull the latest changes for those branches. Because of this you will need to hard reset your local copy of each branch to match the remote.

:warning: Before doing this, make sure you save any changes you have been making in your local copy of release/stable or master (hopefully you are not doing that though and using a feature/branch based on these :wink: )

Hard Reset release/stable

git checkout release/stable && git fetch origin && git reset --hard origin/release/stable

Hard Reset master

git checkout master && git fetch origin && git reset --hard origin/master

You should now be sync’d up again with the most recent release/stable and master

1 Like

:pencil2: Particle CLI 1.43.1 updates a critical issue for Photon and P1 when using the particle update command. Please be sure to update your Particle CLI before updating your Photon/P1 devices for the first time to 1.2.1 via the CLI.

If you only have access to 1.43.0 of the CLI, you should be able to simply reset your device and run particle update again if you run into errors.

No issues have been noted with OTA updates to 1.2.1 on Photon/P1.

2 Likes

Device OS 1.3.1-rc.1 Release Candidate is out on the Web IDE for (Core/Photon/P1/Electron/Argon/Boron/Xenon/A SoM/B SoM/X SoM)

released on August 21st, 2019


:white_check_mark: This 1.3.1-rc.1 Release Candidate will be defaulted to 1.3.1 on September 4th, 2019 unless there are regressions found that require further patches. :pencil2: Testing on your applications is encouraged and appreciated, thank you! :bowing_man:


Note: This is a Release Candidate (RC) and is not intended for production yet. We’ve tested this RC to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this RC, and be sure to upgrade to the final release when it’s available. This RC will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. Then update to 1.3.1-rc.1

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.3.1-rc.1 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 using particle 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 using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

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.3.1-rc.1

Note: If your Gen 2 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with particle flash --serial bootloader.bin (bootloaders found in Github release). Gen 3 devices should not need an updated bootloader this release.

This release contains v400 bootloaders.

Note: The amount of RAM reserved for the system on Gen 2 platforms increased by at least 1K in this release. This is due to the reorganization of the RAM memory map, which was necessary in order to improve compatibility with recent versions of GCC in future Device OS releases. This memory can be partially reclaimed by rebuilding the application.

SoftDevice update

Customers affected by https://github.com/particle-iot/device-os/issues/1855 may manually update the Nordic SoftDevice S140 to version 7.0.0 using the binaries provided in this release.

Starting with 1.4.0 Device OS update will automatically trigger SoftDevice update.

Prerequisites

particle-cli version 1.43.3.

Upgrading OTA or using YModem (--serial)

Not supported in this release.

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.3.1-rc.1
  2. (optional, not required) Update the bootloader to 1.3.1-rc.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.3.1-rc.1.bin

FEATURES

  • [gen 3] Nordic SoftDevice update support #1816
  • [gen 3] API for selecting BLE antenna for BLE radio #1847
  • [gen 3] API for setting/getting BLE device name #1847
  • [gen 3] API for setting BLE device address #1847
  • [gen 3] API for manually discovering peer device’s BLE services and characteristics #1847
  • [gen 3] API for fetching discovered peer’s services and characteristics #1847
  • [gen 3] API in BlePeerDevice for establishing BLE connection without scanning required #1847
  • [gen 3] API for manually subscribing/unsubscribing peer characteristic’s notification #1847
  • [gen 3] API for disconnecting all on-going BLE connections #1847

ENHANCEMENTS

  • [Boron/BSoM] power: Increases charging current to 900mA when powered through VIN (VUSB) pin #1846
  • Cancel network connection when processing a USB request that resets the device #1830
  • Particle.connected() should return true only after handshake messages are acknowledged #1825
  • [gen 3] USB state tracking enhancements #1871
  • [gen 3] Adds timeouts to I2C HAL operations #1875
  • [gen 3] Refactors BLE event dispatching #1847
  • [gen 3] Decreases BLE runtime RAM consumption #1847
  • [gen 3] Supports up to 23 local characteristics, 20 of them are available for user application #1847
  • [gen 3] Supports up to 3 central links #1847
  • [gen 3] More convenient methods provided in BleUuid class #1847
  • ensures AT interface is responsive #1886

BUG FIXES

  • fixes RSSI regression on G350 (2G) devices #1841
  • [electron, gen3] Temporarily increase IDLE task priority whenever a thread exits (calls vTaskDelete) to resolve a memory leak that resulted in device being stuck “blinking green” until reset in some cases. #1862
  • [gen 3] Fixes mesh pub/sub socket consuming all packet buffers #1839
  • [Photon/P1] Bootloader correctly re-imports the DCT functions from system firmware after its modification through DFU #1868
  • [gen 3] Mesh.off() disconnects the cloud. Resolves an issue with loop() not being executed in SEMI_AUTOMATIC mode after Mesh.off() #1857
  • [Argon] Fixes the issue being unable to reset the device through RST pin by changing the ESPEN mode to OUTPUT_OPEN_DRAIN #1870
  • [Electron/LTE] devices drop Cloud connection every time user firmware opens and closes a TCP socket ch34976 #1854
  • [gen 2] Fixes an issue with clock stretching in I2C slave mode with underrun reads with certain I2C masters (e.g. Gen 3 devices) #1829
  • Fix to ensure device resets after bootloader update #1873
  • Fixes boot issue for Core introduced in 1.2.1-rc.3 #1873
  • [gen 3] Resolved a HardFault after USB cable is unplugged under certain conditions #1871
  • [gen 3] BLE advertising parameters didn’t apply, issue #1874 #1847
  • [gen 3] BLE scanning parameters didn’t apply, issue #1859 and #1855 #1847
  • [gen 3] Local characteristic notification causes SOS: #1847
  • [gen 3] BLE address order reversed #1847
  • [gcc] fixes virtual platform exception on startup #1878

INTERNAL

  • Add coverage to CMake unit-tests #1860
  • Pull test implementation out of source file #1867
  • [gen 3] Changes WKP pin to A7 for SoM platforms to avoid an overlap with Ethernet chip on EVB ESPEN mode to OUTPUT_OPEN_DRAIN #1837
  • [hal] Fixes WIFIEN pin mode for ASoM #1889
  • Refactor/move catch test #1869
  • fixes to communications public interface #1863
  • Refactors platform pinmap to be in platform-specific headers #1838
  • Improve compatibility with recent versions of GCC #1806
  • Set path to Boost libraries #1872

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/tag/v1.3.1-rc.1


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.

1 Like

Device OS 1.4.0-rc.1 Release Candidate is out on the Web IDE for (Core/Photon/P1/Electron/Argon/Boron/Xenon/A SoM/B SoM/X SoM)

released on August 30th, 2019


:white_check_mark: This 1.4.0-rc.1 Release Candidate will be defaulted to 1.4.0 on September 10th, 2019 unless there are regressions found that require further patches. :pencil2: Testing on your applications is encouraged and appreciated, thank you! :bowing_man:


Note: This is a Release Candidate (RC) and is not intended for production yet. We’ve tested this RC to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this RC, and be sure to upgrade to the final release when it’s available. This RC will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. Then update to 1.4.0-rc.1

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.4.0-rc.1 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 using particle 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 using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

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-rc.1

Note: If your Gen 2 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with particle flash --serial bootloader.bin (bootloaders found in Github release). Gen 3 devices should not need an updated bootloader this release.

This release contains v500 bootloaders.

SoftDevice update

Customers affected by https://github.com/particle-iot/device-os/issues/1855 may manually update the Nordic SoftDevice S140 to version 7.0.0 using the binaries provided in this release.

Starting with 1.4.0 (final) Device OS update will automatically trigger SoftDevice update.

Prerequisites

particle-cli version 1.43.3.

Upgrading OTA

  1. Upgrade to 1.4.0-rc.1
  2. Manually flash 1.4.0-rc.1 bootloader: particle flash <deviceId> boron-bootloader@1.4.0-rc.1.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.4.0-rc.1.bin

Upgrading using YModem

  1. Upgrade to 1.4.0-rc.1
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.4.0-rc.1 bootloader: particle flash --serial boron-bootloader@1.4.0-rc.1.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.4.0-rc.1.bin

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.4.0-rc.1
  2. (optional, not required) Update the bootloader to 1.4.0-rc.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.4.0-rc.1.bin

FEATURES

  • [Gen 3] Introduces BLE.begin() and BLE.end() wiring APIs #1890
  • [Gen 3] Exposes POSIX select() and poll() from socket HAL dynalib #1895

ENHANCEMENTS

BUGFIXES

  • [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

  • [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-rc.1/particle_device-os@1.4.0-rc.1.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.

4 Likes

Device OS 1.3.1 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 6th, 2019

:pencil2: Please read all notes below

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.3.1 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.3.x-rc.x on a device, please re-flash it with 1.3.1.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. Then update to 1.3.1

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.3.1 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 using particle 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 using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

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

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.
This release contains v401 bootloaders.

SoftDevice update

Customers affected by https://github.com/particle-iot/device-os/issues/1855 may manually update the Nordic SoftDevice S140 to version 7.0.0 using the binaries provided in this release.

Starting with 1.4.0 (final) Device OS update will automatically trigger SoftDevice update.

Prerequisites

particle-cli version 1.46.1.

Upgrading OTA

  1. Upgrade to 1.3.1
  2. Manually flash 1.3.1 bootloader: particle flash <deviceId> boron-bootloader@1.3.1.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.3.1.bin

Upgrading using YModem

  1. Upgrade to 1.3.1
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.3.1 bootloader: particle flash --serial boron-bootloader@1.3.1.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.3.1.bin

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.3.1
  2. (optional, not required) Update the bootloader to 1.3.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.3.1.bin

FEATURES

  • [gen 3] Nordic SoftDevice update support #1816
  • [gen 3] API for selecting BLE antenna for BLE radio #1847
  • [gen 3] API for setting/getting BLE device name #1847
  • [gen 3] API for setting BLE device address #1847
  • [gen 3] API for manually discovering peer device’s BLE services and characteristics #1847
  • [gen 3] API for fetching discovered peer’s services and characteristics #1847
  • [gen 3] API in BlePeerDevice for establishing BLE connection without scanning required #1847
  • [gen 3] API for manually subscribing/unsubscribing peer characteristic’s notification #1847
  • [gen 3] API for disconnecting all on-going BLE connections #1847
  • [gen 3] BLE support #1740
  • [gen 3] NFC support #1606

ENHANCEMENTS

  • [Boron/BSoM] power: Increases charging current to 900mA when powered through VIN (VUSB) pin #1846
  • Cancel network connection when processing a USB request that resets the device #1830
  • Particle.connected() should return true only after handshake messages are acknowledged #1825
  • [gen 3] USB state tracking enhancements #1871
  • [gen 3] Adds timeouts to I2C HAL operations #1875
  • [gen 3] Refactors BLE event dispatching #1847
  • [gen 3] Decreases BLE runtime RAM consumption #1847
  • [gen 3] Supports up to 23 local characteristics, 20 of them are available for user application #1847
  • [gen 3] Supports up to 3 central links #1847
  • [gen 3] More convenient methods provided in BleUuid class #1847
  • ensures AT interface is responsive #1886
  • [enhancement] Cache cellular diagnostics #1810
  • [enhancement] allow the bootloader to be flashed over DFU #1788

BUG FIXES

  • [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
  • 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
  • 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
  • fixes RSSI regression on G350 (2G) devices #1841
  • [electron, gen3] Temporarily increase IDLE task priority whenever a thread exits (calls vTaskDelete) to resolve a memory leak that resulted in device being stuck “blinking green” until reset in some cases. #1862
  • [gen 3] Fixes mesh pub/sub socket consuming all packet buffers #1839
  • [Photon/P1] Bootloader correctly re-imports the DCT functions from system firmware after its modification through DFU #1868
  • [gen 3] Mesh.off() disconnects the cloud. Resolves an issue with loop() not being executed in SEMI_AUTOMATIC mode after Mesh.off() #1857
  • [Argon] Fixes the issue being unable to reset the device through RST pin by changing the ESPEN mode to OUTPUT_OPEN_DRAIN #1870
  • [Electron/LTE] devices drop Cloud connection every time user firmware opens and closes a TCP socket ch34976 #1854
  • [gen 2] Fixes an issue with clock stretching in I2C slave mode with underrun reads with certain I2C masters (e.g. Gen 3 devices) #1829
  • Fix to ensure device resets after bootloader update #1873
  • Fixes boot issue for Core introduced in 1.2.1-rc.3 #1873
  • [gen 3] Resolved a HardFault after USB cable is unplugged under certain conditions #1871
  • [gen 3] BLE advertising parameters didn’t apply, issue #1874 #1847
  • [gen 3] BLE scanning parameters didn’t apply, issue #1859 and #1855 #1847
  • [gen 3] Local characteristic notification causes SOS: #1847
  • [gen 3] BLE address order reversed #1847
  • [gcc] fixes virtual platform exception on startup #1878
  • Add two-digit mnc diagnostic flag #1804
  • BLE fixes from 1.3.0-alpha.1 #1817
  • NFC Context parameter is missing and NFC.update() will remove callback, fixes from 1.3.0-alpha.1 #1818
  • [lte] cellular fixes #1824
  • fixes #1811 - increases the number of event handlers to 6 #1822
  • [gen 3] fixes memory usage diagnostics (reported negative values in safe mode) #1819
  • System.disableUpdates() operates asynchronously #1801
  • [gen 3] [bsom] Building platform BSOM results flash overflow. #1802
  • [gen 3] [hal] fixes early wakeup by RTC from STOP sleep mode #1803

INTERNAL

  • Adjusts on-device tests #1898
  • Add coverage to CMake unit-tests #1860
  • Pull test implementation out of source file #1867
  • [gen 3] Changes WKP pin to A7 for SoM platforms to avoid an overlap with Ethernet chip on EVB ESPEN mode to OUTPUT_OPEN_DRAIN #1837
  • [hal] Fixes WIFIEN pin mode for ASoM #1889
  • Refactor/move catch test #1869
  • fixes to communications public interface #1863
  • Refactors platform pinmap to be in platform-specific headers #1838
  • Improve compatibility with recent versions of GCC #1806
  • Set path to Boost libraries #1872
  • [docs] Updates spark_publish_vitals and build scripts documentation. #1800
  • [docs] update the test documentation #1683

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.3.1/particle_device-os@1.3.1.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.

1 Like

Hi friends!

We just updated release/stable and master branches of the device-os repo to be current with release/v1.3.1.

Because we had to force push these changes, you’ll likely have merge conflicts if you git pull the latest changes for those branches. Because of this you will need to hard reset your local copy of each branch to match the remote.

:warning: Before doing this, make sure you save any changes you have been making in your local copy of release/stable or master (hopefully you are not doing that though and using a feature/branch based on these :wink: )

Hard Reset release/stable

git checkout release/stable && git fetch origin && git reset --hard origin/release/stable

Hard Reset master

git checkout master && git fetch origin && git reset --hard origin/master

You should now be sync’d up again with the most recent release/stable and master

1 Like

:+1::+1::+1:

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

:pencil2: 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)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. 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 using particle 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 using particle 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

  1. Put the device into DFU mode
  2. Run particle update

DeviceOS, bootloader and SoftDevice should get correctly updated.

Upgrading OTA

  1. Upgrade to 1.4.0
  2. Manually flash 1.4.0 bootloader: particle flash <deviceId> boron-bootloader@1.4.0.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.4.0.bin

Upgrading using YModem

  1. Upgrade to 1.4.0
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.4.0 bootloader: particle flash --serial boron-bootloader@1.4.0.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.4.0.bin

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.4.0
  2. Update the bootloader to 1.4.0 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. 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() and poll() from socket HAL dynalib #1895

ENHANCEMENTS

BUGFIXES

  • Fixes an issue in IPAddress::operator bool() causing the operator to return false 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 templated getValue() and setValue() 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 and wiring/no_fixture_long_running tests #1912
  • [Git] Fixes whitespace issues in .gitmodules #1910
  • [Gen 3] Adds wiring/no_fixture_ble, wiring/ble_central_peripheral and wiring/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.

Hi friends!

We just updated release/stable and master branches of the device-os repo to be current with release/v1.4.0.

Because we had to force push these changes, you’ll likely have merge conflicts if you git pull the latest changes for those branches. Because of this you will need to hard reset your local copy of each branch to match the remote.

:warning: Before doing this, make sure you save any changes you have been making in your local copy of release/stable or master (hopefully you are not doing that though and using a feature/branch based on these :wink: )

Hard Reset release/stable

git checkout release/stable && git fetch origin && git reset --hard origin/release/stable

Hard Reset master

git checkout master && git fetch origin && git reset --hard origin/master

You should now be sync’d up again with the most recent release/stable and master

1 Like

Device OS 1.4.1-rc.1 Release Candidate is out on the Web IDE for (Core/Photon/P1/Electron/Argon/Boron/Xenon/A SoM/B SoM/X SoM)

released on October 1st, 2019


:white_check_mark: This 1.4.1-rc.1 Release Candidate will be defaulted to 1.4.1 on October 14th, 2019 unless there are regressions found that require further patches. :pencil2: Testing on your applications is encouraged and appreciated, thank you! :bowing_man:


Note: This is a Release Candidate (RC) and is not intended for production yet. We’ve tested this RC to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this RC, and be sure to upgrade to the final release when it’s available. This RC will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. Then update to 1.4.1-rc.1

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.4.1-rc.1 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 using particle 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 using particle 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.1-rc.1

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with particle flash --serial bootloader.bin (bootloaders found in Github release). 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 OTA

  1. Upgrade to 1.4.1-rc.1
  2. Manually flash 1.4.1-rc.1 bootloader: particle flash <deviceId> boron-bootloader@1.4.1-rc.1.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.4.1-rc.1.bin

Upgrading using YModem

  1. Upgrade to 1.4.1-rc.1
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.4.1-rc.1 bootloader: particle flash --serial boron-bootloader@1.4.1-rc.1.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.4.1-rc.1.bin

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.4.1-rc.1
  2. Update the bootloader to 1.4.1-rc.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.4.1-rc.1.bin

FEATURES

  • [Gen 2] Adds support for serial number, NCP type and mobile secret in STM32F2 OTP area #1927 #1931

ENHANCEMENTS

  • [Electron, Boron] Increase the PMIC input current limit from 900mA to 1500mA and limit charging current to 896mA to allow 2G/3G devices to function when powered by sufficient power supply through VIN without the battery #1921
  • DTLS handshake timeout increased to 24 seconds to allow 3 retransmission attempts #1914

BUGFIXES

  • [Electron] Fixes RSSI failing due to Power Saving mode active #1917 #1892
  • [Gen 3] Fixes memory leak when scanning for BLE devices #1929 #1926
  • [Gen 3] Fixes reporting of discovered BLE peer characteristic descriptors #1916
  • [Gen 3] Fixes BleCharacteristic::setValue() with default BLeTxRxType argument (BleTxRxType::AUTO) for characteristics with WRITE property #1915 #1913 #1924

INTERNAL

  • [ci] Buildpack builder updated to unreleased branch feature/buildpack-runnable-without-travis to move buildpack builds off of Travis
  • [docs] Adds Artifact Versioning and Tagging (1.0.0) artifacts.md #1703

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.4.1-rc.1/particle_device-os@1.4.1-rc.1.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.

2 Likes

Device OS 1.4.1 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 October 16th, 2019

:pencil2: 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.1 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.1-rc.x on a device, please re-flash it with 1.4.1.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. Then update to 1.4.1

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.4.1 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 using particle 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 using particle 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.1

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

Upgrading using particle update

  1. Put the device into DFU mode
  2. Run particle update

DeviceOS, bootloader and SoftDevice should get correctly updated.

Upgrading OTA

  1. Upgrade to 1.4.1
  2. Manually flash 1.4.1 bootloader: particle flash <deviceId> boron-bootloader@1.4.1.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.4.1.bin

Upgrading using YModem

  1. Upgrade to 1.4.1
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.4.1 bootloader: particle flash --serial boron-bootloader@1.4.1.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.4.1.bin

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.4.1
  2. Update the bootloader to 1.4.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.4.1.bin

FEATURES

  • [Gen 2] Adds support for serial number, NCP type and mobile secret in STM32F2 OTP area #1927 #1931

ENHANCEMENTS

  • Implements a command to reset all network interfaces of a device remotely #1943
  • [Electron] Disables usage of AT+UDNSRN on 2G/3G Electrons in favor of a standalone socket-based DNS client #1940
  • [Electron, Boron] Increase the PMIC input current limit from 900mA to 1500mA and limit charging current to 896mA to allow 2G/3G devices to function when powered by sufficient power supply through VIN without the battery #1921
  • DTLS handshake timeout increased to 24 seconds to allow 3 retransmission attempts #1914

BUGFIXES

  • [Photon / P1] Limits maximum TLS version to TLS1.1 for WPA Enterprise authentication as TLS1.2 seems to be broken in WICED 3.7.0-7 #1945
  • [Boron] Fixes attachInterrupt(D7, ...) not working due to a constraint introduced previously for cellular devices (Electron) #1939 #1944
  • Send safe mode event when the session is resumed #1935
  • [LTE, u-blox] adds a mitigation to keep DNS Client responsive ch38990 #1938
  • [Electron] Fixes RSSI failing due to Power Saving mode active #1917 #1892
  • [Gen 3] Fixes memory leak when scanning for BLE devices #1929 #1926
  • [Gen 3] Fixes reporting of discovered BLE peer characteristic descriptors #1916
  • [Gen 3] Fixes BleCharacteristic::setValue() with default BLeTxRxType argument (BleTxRxType::AUTO) for characteristics with WRITE property #1915 #1913 #1924

INTERNAL

  • [test] i2c_mcp23017: implements HighPriorityInterruptInterferer for nRF52840-based platforms #1947
  • [LTE] Removes log noise by closing only untracked socket handles that are open ch37610 #1938
  • [ci] Buildpack builder updated to 0.0.8 to move buildpack builds off of Travis
  • [docs] Adds Artifact Versioning and Tagging (1.0.0) artifacts.md #1703

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.4.1/particle_device-os@1.4.1.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.

Hello Friends!

Just a quick update that firmware repo branches release/stable and master have been updated to point to release/v1.4.1

You can update your local versions with either of these commands:

git checkout release/stable && git pull
git checkout master && git pull

If you have any trouble with this, please reference this previous post Particle Device OS Updates Thread

:warning: October 17th, 2019

We have identified a critical issue affecting Gen 3 bootloaders in DeviceOS releases 1.2.1 - 1.4.1.

It has been confirmed to mostly affect some number of Borons, but other Gen 3 platforms may present it as well.

We have confirmed a fix and will be releasing a new DeviceOS version this week. As a temporary measure we are suggesting manually updating bootloaders on Borons using the binary from the GitHub PR.

Device OS 1.4.2 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 October 18th, 2019

:pencil2: Please read all notes below :necktie:

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.2 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 or release versions of 1.4.x on a device, please re-flash it with 1.4.2.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. Then update to 1.4.2

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.4.2 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 using particle 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 using particle 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.2

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 v501 bootloaders.

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 1.49.0.

Upgrading using particle update

  1. Put the device into DFU mode
  2. Run particle update

DeviceOS, bootloader and SoftDevice should get correctly updated.

Upgrading OTA

  1. Upgrade to 1.4.2
  2. Manually flash 1.4.2 bootloader: particle flash <deviceId> boron-bootloader@1.4.2.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.4.2.bin

Upgrading using YModem

  1. Upgrade to 1.4.2
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.4.2 bootloader: particle flash --serial boron-bootloader@1.4.2.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.4.2.bin

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.4.2
  2. Update the bootloader to 1.4.2 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.4.2.bin

BUGFIXES

  • [Gen 3] Fixes a boot/crash-loop due to a POWER_CLOCK_IRQn firing in between the jump into the system firmware from the bootloader #1948

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.4.2/particle_device-os@1.4.2.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.

Hello Friends!

Just a quick update that firmware repo branches release/stable and master have been updated to point to release/v1.4.2

You can update your local versions with either of these commands:

git checkout release/stable && git pull
git checkout master && git pull

If you have any trouble with this, please reference this previous post Particle Device OS Updates Thread

Device OS 1.4.3 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 November 25th, 2019

:pencil2: 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.3 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 or release versions of 1.4.x on a device, please re-flash it with 1.4.3.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. Then update to 1.4.3

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.4.3 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 using particle 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 using particle 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.3

This release resolves a thread-safety issue on Gen 2 devices (Photon, P1, Electron), affecting non-reentrant C standard library functions requiring temporary non-stack storage. It is recommended to update any Gen 2 devices to this release.

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 v501 bootloaders.

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 1.52.0.

Upgrading using particle update

  1. Put the device into DFU mode
  2. Run particle update

DeviceOS, bootloader and SoftDevice should get correctly updated.

Upgrading OTA

  1. Upgrade to 1.4.3
  2. Manually flash 1.4.3 bootloader: particle flash <deviceId> boron-bootloader@1.4.3.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.4.3.bin

Upgrading using YModem

  1. Upgrade to 1.4.3
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.4.3 bootloader: particle flash --serial boron-bootloader@1.4.3.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.4.3.bin

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.4.3
  2. Update the bootloader to 1.4.3 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.4.3.bin

BUGFIXES

  • [Photon/P1/Electron] Fixes thread-safety issues with non-reentrant C standard library functions requiring temporary thread-local storage #1970

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.4.3/particle_device-os@1.4.3.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.

Hello Friends!

Just a quick update that firmware repo branches release/stable and master have been updated to point to release/v1.4.3

You can update your local versions with either of these commands:

git checkout release/stable && git pull
git checkout master && git pull

If you have any trouble with this, please reference this previous post Particle Device OS Updates Thread

Device OS 1.4.4 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 December 4th, 2019

:pencil2: Please read all notes below :tophat:

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.4 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 or release versions of 1.4.x on a device, please re-flash it with 1.4.4.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. Then update to 1.4.4

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.4.4 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 using particle 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 using particle 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.4

This release resolves a bug in handling of incorrectly initialized WiFi credentials list, resulting in crashes on a number of Photons and P1s manufactured with DeviceOS 1.2.1 - 1.4.2. It is recommended to update Photons and P1s with factory 1.2.1 - 1.4.2 DeviceOS to this release.

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 v501 bootloaders.

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 1.53.0.

Upgrading using particle update

  1. Put the device into DFU mode
  2. Run particle update

DeviceOS, bootloader and SoftDevice should get correctly updated.

Upgrading OTA

  1. Upgrade to 1.4.4
  2. Manually flash 1.4.4 bootloader: particle flash <deviceId> boron-bootloader@1.4.4.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.4.4.bin

Upgrading using YModem

  1. Upgrade to 1.4.4
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.4.4 bootloader: particle flash --serial boron-bootloader@1.4.4.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.4.4.bin

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.4.4
  2. Update the bootloader to 1.4.4 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.4.4.bin

BUGFIXES

  • [Photon/P1] Fixes handling of invalid WiFi access point config entries in DCT #1976

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.4.4/particle_device-os@1.4.4.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.

stable and master DeviceOS repository branches

DeviceOS repository branches release/stable and master have been updated to point to release/v1.4.4

You can update your local versions with either of these commands:

git checkout release/stable && git pull
git checkout master && git pull

If you have any trouble with this, please reference this previous post Particle Device OS Updates Thread

1 Like

Device OS 1.5.0-rc.1 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/Xenon/B SoM/B5 SoM)

released on February 6th, 2020


:white_check_mark: This 1.5.0-rc.1 Release Candidate will be defaulted to 1.5.0 on February 21st, 2020 unless there are regressions found that require further patches. :pencil2: Testing on your applications is encouraged and appreciated, thank you! :bowing_man:


Note: This is a Release Candidate (RC) and is not intended for production yet. We’ve tested this RC to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this RC, and be sure to upgrade to the final release when it’s available. This RC will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. Then update to 1.5.0-rc.1

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.5.0-rc.1 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 using particle 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/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/B SoM/B5 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.5.0-rc.1

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with particle flash --serial bootloader.bin (bootloaders found in Github release). 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 v501 bootloaders.

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.0.1.

Upgrading OTA

  1. Upgrade to 1.5.0-rc.1
  2. Manually flash 1.5.0-rc.1 bootloader: particle flash <deviceId> boron-bootloader@1.5.0-rc.1.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.5.0-rc.1.bin

Upgrading using YModem

  1. Upgrade to 1.5.0-rc.1
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.5.0-rc.1 bootloader: particle flash --serial boron-bootloader@1.5.0-rc.1.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.5.0-rc.1.bin

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.5.0-rc.1
  2. Update the bootloader to 1.5.0-rc.1 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.5.0-rc.1.bin

1.5.0-rc.1

DEPRECATION

  • Spark Core End-Of-Life. 1.5.x+ releases no longer support Spark Core #2003

FEATURES

  • Sleep 2.0 #1986
  • Enables C++14 chrono string literals for wiring APIs #1709
  • [Gen 3] Implements persistent antenna selection (Mesh.selectAntenna()) #1933
  • GCC 8 support #1971
  • [B5 SoM] B5 SoM platform support
  • [Boron/Electron/B5 SoM] Reverts default PMIC settings changes, adds higher level power configuration API #1992

ENHANCEMENTS

  • Enables Workbench DeviceOS local development (deviceOS@source) #1957
  • [Gen 3/Cellular] Enables logging of modem AT commands and data transmissions by default in modular builds #1994
  • [Gen 2] Removes write protection enforcement of system firmware on boot #2009
  • [Cellular] Adds SystemPowerFeature::DISABLE to disable system power management #2015

BUGFIXES

  • [Boron/BSoM] Enables advance SETUP/MODE button features (single click - RSSI, double click - soft poweroff) #1918
  • Fixes a call to objdump when the compiler is not in PATH #1961
  • [gcc] Ensure GPIO pinmap is initialized on first use #1963
  • [Gen 3] Fixes too many connection attempts with deactivated SIM #1969
  • [Gen 3] Fixes NCP issue with devices stuck in a seemingly connected state #1980
  • [Photon/P1] Fixes a hardfault when calling certain WiFI class methods with WICED networking stack uninitialized #1949
  • [Gen 3] Fixes .particle/toolchains/gcc-arm/5.3.1/bin/objdump: not found issues in Workbench #1996
  • [B5 SoM] Temporarily disables hardware flow control #1999
  • [Gen 3] Fixes retained variables first-time initialization #2001
  • [B5 SoM] Removes unsupported AT+CGDCONT call with CHAP:<APN> #2006
  • [Boron] Increases AT+COPS=0 timeout, lowers baudrate to 115200 #2008
  • Prevents expansion of EXTRA_CFLAGS variable #2012
  • [Gen 3] Workaround for QSPI/XIP nRF52840 hardware anomaly 215 #2010
  • Fixes a potential buffer overflow in Time.format() #1973
  • [Gen 2] Clear WLAN_WD when disconnect() is called #2016
  • [Gen 3] Fixes concurrency/thread-safety SPI issues with Ethernet Featherwing #1879

INTERNAL

  • Increase VitalsPublisher test coverage #1920
  • Adds missing platforms to manifest.json #1959
  • Add support for control requests sent by the test runner #1987
  • Add support for chunked transfer of USB request/reply data #1991
  • Implements EnumFlags class for bitwise operations on C++ enum classes #1978
  • Improves cellular test coverage #1930
  • [Gen 3] Frees up some flash space in system-part1 #2000
  • [Cellular] Internal function to modify cellular registration timeout #2007 #2014
  • Removes xsom and asom platforms #2011

DOCUMENTATION

  • Documents adding custom CFLAGS during DeviceOS application build #2004

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.5.0-rc.1/particle_device-os@1.5.0-rc.1.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.

Device OS 1.5.0-rc.2 Release Candidate is out on the Web IDE for (Photon/P1/Electron/Argon/Boron/Xenon/B SoM/B5 SoM)

released on March 6th, 2020


:white_check_mark: This 1.5.0-rc.2 Release Candidate will be defaulted to 1.5.0 on March 20th, 2020 unless there are regressions found that require further patches. :pencil2: Testing on your applications is encouraged and appreciated, thank you! :bowing_man:


Note: This is a Release Candidate (RC) and is not intended for production yet. We’ve tested this RC to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this RC, and be sure to upgrade to the final release when it’s available. This RC will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 1.2.1 (if the current version is less than that)
  5. Then update to 1.5.0-rc.2

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 1.5.0-rc.2 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 using particle 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/B SoM/B5 SoM
If your device is offline, the bootloader must be manually updated using particle flash --serial <bootloader.bin>. This can be done before or after upgrading system firmware.

Note: Argon/Boron/Xenon/B SoM/B5 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.5.0-rc.2

Note: If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with particle flash --serial bootloader.bin (bootloaders found in Github release). 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 v501 bootloaders.

SoftDevice update

This Device OS release will automatically update the SoftDevice for devices connected to the cloud.

Prerequisites

particle-cli version 2.0.1.

Upgrading OTA

  1. Upgrade to 1.5.0-rc.2
  2. Manually flash 1.5.0-rc.2 bootloader: particle flash <deviceId> boron-bootloader@1.5.0-rc.2.bin
  3. Flash SoftDevice: particle flash <deviceId> boron-softdevice@1.5.0-rc.2.bin

Upgrading using YModem

  1. Upgrade to 1.5.0-rc.2
  2. Put the device into listening mode (blinking blue) by holding MODE button
  3. Manually flash 1.5.0-rc.2 bootloader: particle flash --serial boron-bootloader@1.5.0-rc.2.bin
  4. Flash SoftDevice: particle flash --serial boron-softdevice@1.5.0-rc.2.bin

Upgrading using DFU (–usb only works for SoftDevice, not bootloader yet)

  1. Upgrade Device OS to 1.5.0-rc.2
  2. Update the bootloader to 1.5.0-rc.2 with the OTA or YModem process above
  3. Put the device into DFU mode (blinking yellow)
  4. Flash the SoftDevice: particle flash --usb boron-softdevice@1.5.0-rc.2.bin

FEATURES

  • Introduce configurable I2C buffer #2022
  • Support for > 255 I2C buffers and transfers, configurable timeouts #2035
  • Thread-safe cloud variables #1998

ENHANCEMENTS

  • [B5 SoM] Enable hardware flow control for Quectel modem during runtime and add support for EG91-EX #2042

BUGFIXES

  • [Workbench] Workaround for failing Device OS builds on Windows #2037
  • [Gen 2] platform: fix FLASH_Update() for unaligned writes #2036
  • Fixes the issue with SPI default SS pin being not configured #2039
  • [gcc] fixes builds on osx and enables usage of the latest gcc versions #2041
  • [Gen 3] Fixes renegotiation of options and adds IPCP packet parsing #2029
  • [Gen 3] Fix parsing of large AT command responses #2017
  • String::substring() unnecessarily modifies the source buffer #2026
  • [B5 SoM] Fix CGI for Quectel modems #2019
  • [Gen 2] Fixes socket leak in UDP.begin() #2031
  • [Gen 3] Fixes Serial.read() returning -1 instead of 0 when there’s no data to read #2034
  • [Gen 3] Fixes BLE UUID conversion issue #1997
  • [wiring] Fixes a regression in SPI due to thread-safety additions from #1879 #2023

INTERNAL

  • [test] unit: fixes Print tests failing #2027
  • [B5 SoM] Change the prefix of BLE broadcasting name for B5SoM #2030
  • update workbench manifest with latest buildscripts dependency #2020

System Binaries (all devices)

https://github.com/particle-iot/device-os/releases/download/v1.5.0-rc.2/particle_device-os@1.5.0-rc.2.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.