[Updated 3/21/19] Gen 3 known issues

Outstanding issues

Setup Issues

These known issues affect the Particle iOS and Android apps and will be resolved with updates to the Particle mobile application.

  1. Argons unable to connect to wi-fi network in setup flow.
    Status: Reported

    Customers experiencing this issue are able to go through an Argon setup flow up to the point of connecting to a wi-fi network. After inputting the password, the device will attempt to connect until such a point it times out, giving an error on the mobile application. (At this time, this is only tested and identified on Android.)

  2. Using xenon as assisting device prompts wrong password
    Status: Reported
    Example: Mesh password problem with Xenon as assist device
    Workaround: Use your gateway as the assisting device.

Device issues

These known issues affect the Particle Device OS and will be resolved with updates to 3rd Gen hardware over Bluetooth or the Particle CLI.

  1. Mesh.subscribe() with SYSTEM_THREAD(ENABLED) early in setup() may cause an SOS 10 (assertion failure)
    Status: Workaround available, bugfix to be included in 0.8.0-rc.28
    Example: [Workaround identified] Xenon flashing red 10 times after rc.27 upgrade

Mobile Device issues

There have been a number of mobile devices experiencing connectivity or other issues in regards to pairing and setup with mesh devices. As we discover more devices, they will be listed here.

  1. Identified devices with known data matrix barcode scanning issues.
    • Samsung Galaxy S7 Edge

Known limitations

  1. Argons do not currently support connections to IPv6-only networks
  2. Ethernet Featherwings do not support connections to IPv6-only networks
  3. The current version of the CLI (1.38.0) has incomplete support for 3rd gen hardware:
  • Supported
    • compile and flash mesh devices
    • particle keys doctor
    • particle keys server
    • particle flash --usb tinker (also --serial, and with a device ID or name)
  • Not supported
    • particle doctor
    • particle update

Solved Issues

Issues in the section above will be added to this solved issues list along with the version of firmware in which they have been fixed.

Setup Issues (resolved)

  1. Barcode scanning fails for some Xenon devices
    Status: Resolved Android app 2.3.7, iOS app 2.6
    Example: Unable to setup my Xenon

    Customers experiencing this issue are unable to successfully scan and pair with their Xenon and are presented with an error message that reads,
    This is not a Xenon. Please scan Xenon sticker or restart the set up and choose different device type.

  2. Bluetooth pairing does not work for some Android devices (confirmed for Nexus 6)
    Status: Resolved in Device OS 0.8.0-rc.26
    Example: Unable to set up Boron LTE

    Customers experiencing this issue are unable to successfully pair to 3rd Gen devices using Android devices. This issue has been confirmed on the Nexus 6. Note: Because bluetooth pairing fails, a manual upgrade of the device by USB will required if you are experiencing this problem.

  3. DeviceOS updates over Bluetooth fail for some Android users
    Status: Resolved in Device OS 0.8.0-rc.26
    Example: Mesh device setup failing with android app [Solved]

    Customers experiencing this issue are able to pair over Bluetooth with their 3rd Gen devices but are unable to complete the DeviceOS update step using their Android mobile device.

    Note: Because updates fail over bluetooth, a manual upgrade of the device by USB will required if you are experiencing this problem. It’s most common on Android 7 devices.

Device issues (resolved)

  1. 3rd Gen devices cannot reliably reconnect to certain routers with IPv6 enabled (confirmed for Xfinity Arris and X1 routers)
    Status: Fixed in 0.8.0-rc.26
    Example: Mesh: issue with certain? Xfinity routers

    Customers with Xfinity routers (confirmed with “Arris” and “Xfinity X1” brands) have reported connectivity issues with Xenons connected to mesh networks hosted by Argons or Ethernet FeatherWing devices.

  2. Unable to use a Wi-Fi password or connect to SSIDs with a comma, double-quote, or backslash
    Status: Fixed in 0.8.0-rc.26
    Example: Argon can't connect through app

  3. UDP byte ordering bug
    Status: Fixed in 0.8.0-rc.26
    Example: Argon 0.8.0-rc-25 Issues
    Note: You must target your user firmware to 0.8.0-rc.26 in order to get this fix; it’s in the wiring library compiled into your code, not in system firmware itself.

  4. Xenons cannot always reconnect to the Cloud after a gateway update / reset
    Status: Fixed in 0.8.0-rc.26.
    Example: Xenons not making Cloud Connection via mesh

  5. Devices go into SOS 7 panic state
    Status: Fixed in 0.8.0-rc.27: Added a workaround for RTC / TIMER negative drift issue in Nordic 802.15.4 radio driver (#1643)"
    Example: Xenon won’t stay online long enough to flash RC26

  6. SYSTEM_MODE(MANUAL) and SEMI_AUTOMATIC not working properly
    Status: Under investigation (reported in 0.8.0-rc.25)
    Example: Xenon, combining threaded and manual modes can leave Xenon flashing green permanently

Mobile device issues (resolved)

  1. Identified devices with known Bluetooth/BLE connectivity issues.

    • Google Pixel 1
    • Google Nexus 5
    • Google Nexus 6
    • OnePlus 5
    • Samsung Galaxy J7
    • Other devices running Android 7 (Nougat)

    Status: You will need to upgrade the device firmware to 0.8.0-rc.26 via USB to correct this issue. After that, pairing and firmware updates over BLE should work properly.

  2. Xenons with Ethernet FeatherWing and Argons go into a panic state when offered more than 2 DNS servers by the DHCP server
    Status: Fixed in 0.8.0-rc.26

Known limitations (resolved)

  1. 3rd Gen devices are not supported in Particle Workbench
  2. Cellular.command() not implemented on the Boron (added in 0.9.0)
  3. Sleep modes have not been implemented for 3rd Gen devices (added in 0.9.0)
  4. Issues resolve in the CLI since 1.35.2:
  • Supported
    • particle keys server (fixed in 1.38.0)
    • particle serial mac (fixed in 0.8.0.rc-27)
    • particle flash --usb tinker (also --serial, and with a device ID or name) (fixed in 1.38.0)

Updating to the most recent release (v0.9.0)

The most recent release for Particle Mesh is v0.9.0. To update your device to this version of firmware, use the following instructions:

If you previously tried to set up your device using the Android mobile app and got a Bluetooth (BLE) pairing error (Nexus 6) or an error during device firmware upgrade, you should first manually update the device firmware to 0.9.0 using the Using the Particle CLI instructions below. The BLE fix requires a Particle Device OS fix, which for obvious reasons can’t be delivered by BLE during the normal mobile app setup process if BLE is not working, so you’ll need to do the manual upgrade process once by USB to get the device to 0.9.0 or later which contains the fix.

Using the Particle CLI

  • Install the Particle CLI on your computer if you have not already done so.
  • Go to the mesh firmware releases page.
  • Download the hybrid .bin file for your device. For example: hybrid-0.9.0-argon.bin
  • Put your device into DFU mode (blinking yellow), instructions here.
  • Flash the code from a command prompt or terminal window:
cd Downloads
particle flash --usb hybrid-0.9.0-argon.bin

For the Argon, if you are upgrading a factory unit without using the mobile app, you must manually apply the NCP (network coprocessor) update as well. Upgrade your device OS to 0.9.0 first, then go to the Argon NCP Release Page and download argon-ncp-firmware-0.0.5-ota.bin. With the Argon in blinking blue (listening mode):

particle flash --serial argon-ncp-firmware-0.0.5-ota.bin

You may get the error "Error writing firmware: TimeoutError: timed out after 10000ms" but this is normal if the Argon is still blinking magenta rapidly. Let it sit for a minute and then it should reboot and be updated.

Note that this must be done in --serial mode not --dfu. The mobile app does this automatically, so this step isn't required in normal circumstances. Also, the NCP binary does not need to be updated for every system firmware version. At this time, only factory new devices need an update.

Using the Particle app

  • If you have not configured your Particle device
    Complete the setup process using your iOS or Android mobile device. Your devices should automatically be upgraded to the most recent release.

  • If you have already configured your Particle device
    Your devices should already be running Device OS v0.9.0. You can confirm this by:

    • Putting your device into listening mode and typing particle serial identify into the CLI
    • Inspecting your device in the Particle Console (http://console.particle.io) under the Devices tab.

Using the Particle Web IDE (for devices already connected to the Cloud)

If your device is online and breathing cyan, you can upgrade the Device OS by flashing firmware targeting the newer version. Click on the Devices icon (circle with 4 lines on the left side), make sure the device has a gold star before its name, click on the >, then select the version you want to upgrade to, and compile and flash firmware to your device.


This will only upgrade, it will not downgrade to an earlier device OS version.

The first time you flash code from the Web IDE to a device running 0.8.0-rc.25 that targets 0.8.0-rc.26 or later (including 0.9.0), the first flash operation will fail but it will start a mandatory Device OS upgrade. You can then flash your user code again. This will only happen on the first flash from 0.8.0-rc.25 to 0.8.0-rc.26 or later from the Web IDE.

This upgrade can take several minutes of blinking magenta, and the LED may turn off entirely for periods of 30 seconds or longer. If it takes longer then 4 or 5 minutes, you may want to try upgrading by USB using the CLI instead.


Update - Android app v2.3.7 released

This release should be available in the play store in the next 1-3 hours. It includes a fix for the following issue:

We expect a fix for iOS devices to be available early next week. Stay tuned for updates.


Update - iOS mobile app 2.7 released

This version allows data matrix codes that are missing digits to be automatically compensated for, eliminating the “This is not a Xenon” error when scanning some Xenon data matrix codes. (November 3, 2018)


Update - 3rd Gen devices are SUPPORTED in Particle Workbench Dec 4 release


Update - rc.26 released as new default firmware for Mesh devices

v080-rc.26 is now live in all Particle development tools as the default compile target for 3rd Gen devices. The high level fixes include:

  • Improved reliability of OpenThread mesh networking
  • Improved wireless transmission range between 3rd Gen devices over mesh
  • Improved Bluetooth compatibility with Android devices (requires firmware update to device)
  • Improved compatibility with networks with IPv6 enabled

Detailed release notes for rc.26 is available at Github, below:


IMPORTANT: Argon NCP firmware needs to be updated to v0.0.5 after updating to 0.8.0-rc.26 from any release under 0.8.0-rc.25. The release binaries can be found here


  • [Argon] Escape special characters in SSIDs and passwords (#1604)
  • [Gen 3] Network system events are correctly generated (#1585)
  • [Gen 3] Correct C++ contructor array alignment in system-part1 (#1594)
  • [Gen 3] Fixed a conflict between DHCPv4-assigned and ND6-assigned DNS servers (#1596)
  • [Argon / Boron] Fixed a race condition when restarting the GSM07.10 multiplexer causing a memory leak/corruption (#1608)
  • [Gen 3] IPv4 IPAddress endianness issue fixed (#1610)
  • [Boron] Fixed a crash when using STARTUP() macro to manage Cellular credentials (#1613)
  • [Gen 3] Embedded user part update procedure fixed in for hybrid builds (#1617)
  • [communication] Sticky SKIP_SESSION_RESUME_HELLO no longer set immediately after session resume (#1623)
  • [Gen 3] OpenThread locking fixes (#1625)
  • [Gen 3] NetworkManager initiail state initialized in network_setup()
  • [Gen 3] IPv4 IPAddress endianness issue fixed (#1610)
  • [Gen 3] Fixes an assertion failure in LwIP DHCP code when receiving an offer with > 2 DNS servers (#1618)
  • [Argon / Xenon] Wire1 enabled (#1633)


  • [Boron] 3G Borons no longer incur 10 second power-on delay when cold booting (#1584)
  • [Gen 3] Build time significantly improved (#1587)
  • [Gen 3] Hardware-accelerated SHA-1 (#1593)
  • [Gen 3] Newlib 3.0 compatibility (#1599)
  • [Argon / Boron] AT parser immediately interrupted when GSM07.10 multiplexer exits asynchronously (e.g. terminated by the peer or due to keepalive timeout) (#1608)
  • [Gen 3] NAT64 initial base source port randomized on boot (#1609)
  • [Gen 3] LwIP optimizations (#1610)
  • [Gen 3] DHCP hostname option enabled (defaults to DeviceID) (#1595)
  • [Argon] WiFi passwords are not included in the logging output (#1619)
  • [Gen 3] Power failure comparator always configured with 2.8V threshold (#1621)
  • [Gen 3] Default mesh transmit power setting changed from 0dBm to 8dBm (#1629)
  • [Gen 3] BLE MTU and data length changed to default minimum values, while still allowing upgrade by the peer up to the maximums available on nRF52840 (#1634)


  • [Gen 3] SPI slave mode (#1588)
  • [Gen 3] I2C slave mode (#1591)
  • [Gen 3] Servo HAL (#1589)
  • [Gen 3] Implement a control request to retrieve the module info in the protobuf format (#1614)


  • [Gen 3] Run unit tests as part of a CI build (#1604).

Update - Android app v2.3.8 released

This release should be available in the Play store in the next 1-3 hours. It includes the ability to create debug logs to help with troubleshooting, and also fixes the top app crashes.

(The iOS app has had debug log support for a week or so and it has turned out to be very useful.)


Gen 3 improvements update - 12/17

We've put together a status update on past and future engineering efforts to improve the stability and reliability of Gen 3 hardware. To read the latest updates and provide feedback, please visit the update post.

Thank you for your feedback!


Update - Device OS 0.8.0-rc.27


  • [Argon] Sucessful update of the NCP firmware no longer results in SYSTEM_ERROR_INVALID_STATE (#1645)
  • [Argon] m command in listening mode correctly reports WiFi MAC address (#1638)


  • [Gen 3] Added newlib __assert_func() implementation that logs the assertion failure and delegates to AssertionFailure panic handler (#1636)
  • [Gen 3] OpenThread upgraded to 2018/12/17 master (#1643)
  • [Gen 3] Added a workaround for RTC / TIMER negative drift issue in Nordic 802.15.4 radio driver (#1643)
  • [Gen 3] Normalized (lowered) IRQ priorities to a safe 5-7 range (#1643)
  • [Gen 3] timer_hal and rtc_hal migrated to use a single stable monotonic 64-bit microsecond counter provided by OpenThread platform-specific code using the RTC peripheral (#1643)
  • [Gen 3] HAL_disable_irq() / HAL_enable_irq() implementation changed to use __set_BASEPRI() instead of sd_nvic_critical_region_enter() / sd_nvic_critical_region_exit() to avoid assertion failures in Nordic 802.15.4 radio driver (#1643)
  • [Gen 3] Persistent border router prefix (#1647)
  • [Gen 3] Enables USB Serial by default (#1649)

Gen 3 improvements update - 12/20

We've put together a status update on past and future engineering efforts to improve the stability and reliability of Gen 3 hardware. To read the latest updates and provide feedback, please visit the update post.

Thank you for your feedback!


Update - Android release 2.3.9

The latest version of the :android: app, 2.3.9, has been pushed to Google Play!


  • Ensure location services are enabled before starting setup, to allow Bluetooth scanning
  • Don’t allow flashing gen 2 Tinker app to gen 3 hardware
  • Improve error flow handling
  • Improved handling of device disconnects and message timeouts
  • More reliably handle multi-part firmware updates
  • Updated “Pair with commissioner” screen to only show the instructional video

Update - Particle CLI 1.38.0

This version of the CLI adds mesh device support support for:

particle keys server
particle flash --usb tinker
particle flash --serial tinker
particle flash DEVICE_NAME tinker

There was already support for:

particle keys doctor

You should not use particle doctor or particle update with mesh devices yet.


Update - Android release 2.3.10

The latest version of the Android app, 2.3.10, has been pushed to Google Play!


  • Automatic device type detection when starting setup
  • Support for SoM devices (For now, A and B Series devices will appear as Argons and Borons respectively, but the setup process will work as expected.)
  • Support new and unknown device serial numbers by getting product type from the API when necessary

Gen 3 improvements update - 2/12

Our first status update from 2019 on past and future engineering efforts to improve the stability and reliability of Gen 3 hardware. To read the latest updates and provide feedback, please visit the update post.

Thank you for your feedback!

1 Like

Update - Device OS 0.9.0 for Gen3 devices


  • [Gen 3] Fixes system-dynalib incompatibility introduced in 0.9.0-rc.1, causing pre-0.9.0-rc.1 user applications that call certain system-dynalib functions to crash the device [#1692]
  • [Gen 3] WKP pin is configured as pull-down with rising edge trigger when entering STANDBY sleep mode to keep feature parity with Gen 2 devices (#1691)
  • [Boron] PPP thread stack size increased by 1K in order to resolve a very rare stack overflow (#1691)
  • [Gen 3] Fixes a crash when attempting to send constant data residing in flash through Ethernet interface (#1691)
  • [Gen 3] An attempt to unitialize an SPI interface no longer causes an assertion failure if the interface is not initialized (#1663)
  • [Gen 3] Default SPI settings are now recognized correctly (#1663)
  • [Gen 3] Fixed a possible race condition during the Timer’s uninitialization (#1663)
  • [Gen 3] random() is now properly seeded on application startup (#1663)
  • [Boron] Fixes an issue with IMEI and ICCID not being reported in listening mode serial console with v command (#1681)
  • [Gen 3] SPI MISO is no longer configured with a pull-down and user-provided CS pin is not reset to INPUT state when reconfiguring SPI peripheral (#1671)
  • [Argon] Fixes a deadlock when initializing NCP client (#1661)
  • [Gen 3] DFU mode no longer requires driver installation on Windows. Fixes incorrect WCID descriptors (#1653)
  • [Gen 3] Adds missing Arduino-specific definitions (#1658)
  • [Xenon] Makes Serial2 available in user applications (#1660)
  • [Argon] WiFi cipher types are now being correctly reported when scanning or retreiving stored credentials (#1659)


  • [Gen 3] micros() resolution increased by mixing in DWT->CYCCNT (#1682)


  • [Gen 3] STOP sleep mode support (#1682)
  • [Gen 3] STANDBY sleep mode support (#1667)
  • [Gen 3] USB control requests (#1655)
  • [Gen 3] Mesh network diagnostics (#1657)
  • [Boron] Cellular.command() support (#1651)


  • [Gen 3] Most of the wiring/no_fixture tests now successfully run on Xenon, Argon and Boron (#1663)
  • Removed strong dependency on git (#1664)
  • [Gen 3] OpenThread updated to 20190130 master with the fix for negative clock drift between HFCLK and LFCLK (#1684)
  • Submodules now use absolute https URLs (#1699)
  • Fixed an assertion failure (SOS 10) with Mesh.subscribe() and threading enabled (#1652)