Standard Modes

These modes are the typical behaviors you will see from your Boron on a regular basis. They are the light patterns of a healthy Boron.

Here's the typical pattern of a Boron after power up.

Connected

When it is breathing cyan, your Boron is happily connected to the Internet. When it is in this mode, you can call functions and flash code.

OTA Firmware Update

If your Boron is blinking magenta (red and blue at the same time), it is currently loading an app or updating its firmware. This state is triggered by a firmware update or by flashing code from the Web IDE or Desktop IDE. You might see this mode when you connect your Boron to the cloud for the first time.

Note that, if you enter this mode by holding MODE on boot, blinking magenta indicates that letting go of the MODE button will enter safe mode to connect to the cloud and not run application firmware.

Looking For Internet

If your Boron is blinking green, it is trying to connect to cellular.

More information

Connecting to the Cloud

When the Boron is in the process of connecting to the cloud, it will rapidly blink cyan. You often see this mode when you first connect your Boron to a network, after it has just blinked green.

Listening Mode

When your Boron is in Listening Mode, it is waiting for you to configure your mesh network, or is waiting for configuration by USB serial.

To put your Boron in Listening Mode, hold the MODE button for three seconds, until the RGB LED begins blinking blue.

Cellular Signal Strength

Tapping the MODE button on your Boron will blink out the bars of signal strength. More blinks indicate a stronger signal.

Network Reset (fast blinking blue)

To erase the stored network settings on your Boron, hold the MODE button blinks dark blue, the continue to hold it down for about ten seconds longer, until the RGB LED blinks blue rapidly, then release.

  • For all mesh devices it will clear the mesh settings and the setup complete flag, so the device will go back into setup mode (listening mode)
  • For the Argon it will also clear Wi-Fi settings.
  • For the Boron, it will also clear the cellular APN and SIM selection.
  • For Ethernet, it will also clear the using Ethernet flag.

Cellular Off

If your Boron is breathing white, the cellular module is off. You might see this mode if:

  • You have set your module to MANUAL or SEMI_AUTOMATIC in your user firmware
  • You have called in your user firmware

Safe Mode

Safe mode, breathing magenta (red and blue at the same time), connects the Boron to the cloud, but does not run any application firmware. This mode is one of the most useful for development or for troubleshooting. If something goes wrong with the app you loaded onto your device, you can set your device to Safe Mode. This runs the Device OS but doesn't execute any application code, which can be useful if the application code contains bugs that stop the device from connecting to the cloud.

The Boron indicates that it is in Safe Mode with the LED breathing magenta.

To put your device in Safe Mode:

  1. Hold down BOTH buttons
  2. Release only the RESET button, while holding down the MODE button.
  3. Wait for the LED to start blinking magenta
  4. Release the MODE button

Before entering safe mode, the Boron will proceed through the normal steps of connecting to the cloud; blinking green, blinking cyan, and fast blinking cyan. If you're unable to connect to the cloud, you won't be able to enter safe mode.

The device will itself automatically enter safe mode if there is no application code flashed to the device or when the application is not valid.

DFU Mode (Device Firmware Upgrade)

If you wish to program your Boron with a custom firmware via USB, you'll need to use this mode. This mode triggers the on-board bootloader that accepts firmware binary files via dfu-util

Installation tutorial can be found here.

And a usage guide here.

To enter DFU Mode:

  1. Hold down BOTH buttons
  2. Release only the RESET button, while holding down the MODE button.
  3. Wait for the LED to start flashing yellow (it will flash magenta first)
  4. Release the MODE button

The Boron now is in the DFU mode.

DFU mode requires device drivers under Windows. These should automatically be installed by the Particle CLI installer, but if you think you are having driver issues, there are additional DFU troubleshooting tips here.

Some users have reported issues with dfu-util on a USB3 ports (typically the blue ones). Use a USB2 port if the USB3 port doesn't work.

Firmware Reset

Mesh devices can store a backup copy of any desired user firmware in flash memory at address 0x80200000, separate from user flash memory which is located at 0x000D4000. This backup copy of firmware can be restored to user memory with a button sequence that is only available when the backup copy flash memory contains a valid firmware image.

To program your device with a backup copy of user firmware via USB, you'll need to put it in DFU Mode and run a command like one of the following:

Argon:

dfu-util -d 2b04:d00c -a 2 -s 0x80200000 -D tinker-0.8.0-rc.25-argon.bin

Boron:

dfu-util -d 2b04:d00d -a 2 -s 0x80200000 -D tinker-0.8.0-rc.25-boron.bin

Xenon:

dfu-util -d 2b04:d00e -a 2 -s 0x80200000 -D tinker-0.8.0-rc.25-xenon.bin

You don't have to flash tinker, of course, that's just an example. Note that the d00c, d00d, or d00e varies depending on the type of device which is why there are three different commands.

To factory reset the user firmware after flashing valid firmware using the previous step:

Hold down the MODE button and tap RESET. The status LED will blink:

  • Magenta (red and blue at the same time, safe mode)
  • Yellow (DFU mode)
  • Fast blinking yellow (restore factory firmware)

Be sure to release the mode button as soon as you get to fast blinking yellow, otherwise you'll go one step farther and clear all of your settings as well.

Factory Reset

Mesh devices from the factory somewhat ironically do not have a factory user firmware backup image installed. Thus it's best if you pre-install one using the steps above first.

To factory reset, hold down the MODE button and tap RESET. The status LED will blink:

  • Magenta (red and blue at the same time, safe mode)
  • Yellow (DFU mode)
  • Fast blinking yellow (restore factory firmware)
  • Fast blinking white (factory reset)

This will:

  • Restore the factory backup user firmware (if present)
  • Clear mesh credentials
  • Boron: Clear any saved APN and default to internal SIM
  • Argon: Clear Wi-Fi credentials
  • Ethernet: Clear the using Ethernet flag
  • Clear the setup complete flag, to force setup mode again

Troubleshooting Modes

These modes let you know about more atypical issues your Boron might be exhibiting. Use this section to troubleshoot strange colors you might see from your Boron.

Cloud Not Connected

When your Boron is connected to cellular but not to the cloud, it will be breathing green.

More information

Rainbows/Nyan

Using the Signal option in the Web IDE, or the particle cloud nyan CLI command, you can have a device's status LED display a rainbow pattern. This is handy if you have multiple devices nearby and are not sure which one is which.

Blinking red indicates various errors.

While connecting to the Cloud, the RGB LED will be blinking cyan followed by:

  • 1 orange blink: Decryption error.
  • 2 orange blinks: Could not reach the internet.
  • 3 orange blinks: Connected to the internet, but could not reach the Particle Device Cloud. This sometimes is seen as yellow or red and indicates bad server keys.
  • 1 magenta blink: Authentication error.
  • 1 red blink: Generic handshake error. The device could have the wrong keys or has just encountered a generic error in the handshake process.

Repair instructions

Red Flash SOS

Is your Boron blinking red? Oh no!

A pattern of more than 10 red blinks is caused by the firmware crashing. The pattern is 3 short blinks, 3 long blinks, 3 short blinks (SOS pattern), followed by a number of blinks that depend on the error, then the SOS pattern again.

There are a number of other red blink codes that may be expressed after the SOS blinks:

  1. Hard fault
  2. Non-maskable interrupt fault
  3. Memory Manager fault
  4. Bus fault
  5. Usage fault
  6. Invalid length
  7. Exit
  8. Out of heap memory
  9. SPI over-run
  10. Assertion failure
  11. Invalid case
  12. Pure virtual call
  13. Stack overflow

The two most common ones are:

Hard Fault (1 blink between 2 SOS patterns)

Some causes of hard fault include:

  • Using an invalid pointer.
  • Memory corruption caused by freeing memory twice, overwriting the end of a block of memory, etc.
  • Making Wire (I2C) calls without calling Wire.begin().

Out of heap memory (8 blinks between 2 SOS patterns)

If your Boron crashes repeatedly with an SOS code, first try recovering with Safe Mode and flashing Tinker with the CLI to see if it was something recently added in your user application.

particle flash <mydevice> tinker

If it's not possible to enter Safe Mode, your Device OS may be corrupted. Use the Device Doctor feature of the CLI to put your Boron into a healthy state.

particle device doctor

Some tips for reducing the memory used by your firmware can be found here.

Stack overflow (13 blinks between 2 SOS patterns)

Stack overflow occurs when you try to store too much data on the stack. The size is quite limited, and storing large temporary objects on the stack can cause problems.

  • Main loop thread: 6144 bytes
  • Software timer callbacks: 1024 bytes

Solid colors

Solid colors are rare. There only expected situation is:

  • Solid magenta if you are loading code in ymodem serial mode.

In most cases, solid colors are the side effect of a bug. If code crashes or infinitely loops with interrupts disabled, it's possible that the LED animation will stop. The color of the LED is the color it last was before failure. So for example, it could be solid cyan if it was previously breathing cyan, or solid red if it was trying to output an SOS pattern.

No status LED

If you power up your Boron and the status LED never comes on, you could have a missing or corrupted bootloader.

  • Unplug the USB (and battery, if you are using one)
  • Hold down the SETUP button while plugging in the USB power

If you still see no change in the status LED you probably have a missing or corrupted bootloader.

This can be corrected using a JTAG/SWD programmer if you have one. Otherwise, you should contact support.