cordova-plugin-nordic-update

Use Nordic Semiconductor's Device Firmware Update (DFU) service to update a Bluetooth LE device

Usage no npm install needed!

<script type="module">
  import cordovaPluginNordicUpdate from 'https://cdn.skypack.dev/cordova-plugin-nordic-update';
</script>

README

Cordova Nordic DFU plugin

This plugin allows you to use the Nordic DFU service on your BLE devices to update the firmware. See the Nordic documentation for more details.

Supported

  • Android: fully supported
  • iOS: fully supported

Additionally, the device to update must follow the rules as defined in the DFU documentation.

Requirements

  • Cordova: at least version 9
  • Android: Cordova-android of at least 8.0.0

Installation

run: cordova plugin add cordova-plugin-nordic-update

API

The API is available as a global NordicUpdate object

Start update

NordicUpdate.updateFirmware(function successCallback, [function errorCallback], string fileURL, string deviceIdentifier);

Params:

  • successCallback: A function that takes a single argument object. See example later for what this looks like. This will be called multiple times during the update process with different statuses.
  • errorCallback (not required): A function that takes a single argument. The argument will be an error message or an error object.
  • fileURL: A string that is the path to the file to use in the update. It can be either in either cdvfile:// or file:// format. It must be a Zip file and end with .zip (iOS library requirement, Android doesn't have this issue)
  • deviceIdentifier: A string that contains the identifier for the Bluetooth LE device to update. It will either be a MAC address (on Android) or a UUID (on iOS).

Testing

To make it easier to test this plugin, there are two files in the test-files folder.

  1. Install the one ending in .hex on your nRF52-832 dev board by dragging on dropping it into the board's file system (like you would install any example from the nRF5 SDK).
  2. Put the file ending with .zip on your phone in a spot where you know the File URL.
  3. Get the MAC address of the dev board (use nRF Connect and look for a device called "Nordic_Buttonless")
  4. Use the File URL and MAC address with this plugin.
  5. It should start the DFU process and report progress to the success callback.

Credits

This plugin was inspired by the work on this plugin fork by @fxe-gear.

Thanks!