UNPKG

cordova-plugin-nordic-update

Version:

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

58 lines (36 loc) 2.57 kB
# 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](https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v12-2-0/lib_bootloader_dfu) 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. - Supported SDKs: - Android: [v1.9.0](https://github.com/NordicSemiconductor/Android-DFU-Library/tree/v1.9.0) - iOS: [v4.4.1](https://github.com/NordicSemiconductor/IOS-Pods-DFU-Library/tree/4.4.1) (Uses Swift) ## 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 ```javascript 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). 1. Put the file ending with `.zip` on your phone in a spot where you know the File URL. 1. Get the MAC address of the dev board (use nRF Connect and look for a device called "Nordic_Buttonless") 1. Use the File URL and MAC address with this plugin. 1. 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](https://github.com/fxe-gear/cordova-plugin-ble-central) by [@fxe-gear](https://github.com/fxe-gear). Thanks!