Skip to content

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

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. ✏️ Testing on your applications is encouraged and appreciated, thank you! 🙇

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.


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


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


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



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


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

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.

Assets 62
You can’t perform that action at this time.