Skip to content

particle-iot/device-os-flash-util

Repository files navigation

Build Status

Device OS Flashing Utility

device-os-flash is a tool that simplifies flashing of Particle devices. It can flash official Device OS releases, as well as user-provided module binaries – via DFU or a debugger.

Status

This tool was developed for Particle internal purposes.

It is currently functioning well for all supported Particle devices, is actively utilized within Particle and is available to be used by Particle customers. However, it is important to note that there is no long-term commitment to providing ongoing updates for this tool. As such, our Product Lifecycle Policy does not apply to this particular tool.

Installation

Install with npm globally:

npm install --global @particle/device-os-flash-util

Prerequisites:

  • OpenOCD. It is recommended to use the version of OpenOCD that is bundled with Workbench.
  • dfu-util. Installing the latest version available via your package manager should be sufficient.
  • Node.js 12 or higher.

Supported Debuggers:

Getting Started

The examples below cover most of the use case scenarios. For the full list of available options, see the tool's help:

device-os-flash -h

Flashing all detected devices with Device OS 2.3.0 via DFU:

device-os-flash --all-devices 2.3.0

device-os-flash automatically downloads release binaries from GitHub. If you are experiencing rate limiting errors, set your GitHub access token via the GITHUB_TOKEN environment variable.

Same as above, but do not flash Tinker:

device-os-flash --all-devices --no-user 2.3.0

Flashing a user application to all detected devices:

device-os-flash --all-devices my_app.bin

Flashing specific devices:

device-os-flash -d my_boron -d my_electon 2.3.0

Resolving device names requires a valid Particle API token. If you are signed in via the Particle CLI, device-os-flash will use the token from the CLI's configuration file. Alternatively, the token can be specified via the PARTICLE_TOKEN environment variable.

Flashing all detected devices via OpenOCD:

device-os-flash --all-devices --openocd 2.3.0