{"id":22560152,"url":"https://github.com/robsonos/nordic-dfu","last_synced_at":"2025-11-08T06:03:13.988Z","repository":{"id":211173608,"uuid":"697166284","full_name":"robsonos/nordic-dfu","owner":"robsonos","description":"Capacitor plugin to interface with Nordic's IOS-DFU-Library and Android-DFU-Library.","archived":false,"fork":false,"pushed_at":"2025-01-01T14:55:14.000Z","size":1117,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T09:04:23.604Z","etag":null,"topics":["capacitor-plugin","capacitorjs","nordic-bluetooth","nordic-semiconductor","nrf52"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/capacitor-community-nordic-dfu","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robsonos.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-27T07:30:29.000Z","updated_at":"2024-12-30T03:44:58.000Z","dependencies_parsed_at":"2023-12-18T22:38:09.097Z","dependency_job_id":"c1f98727-5ade-422a-8cea-0e3f7ebdfbe7","html_url":"https://github.com/robsonos/nordic-dfu","commit_stats":{"total_commits":42,"total_committers":2,"mean_commits":21.0,"dds":"0.19047619047619047","last_synced_commit":"4fffdc293ff4188b8402fe6818268d15304f0e12"},"previous_names":["robsonos/nordic-dfu"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robsonos%2Fnordic-dfu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robsonos%2Fnordic-dfu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robsonos%2Fnordic-dfu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robsonos%2Fnordic-dfu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robsonos","download_url":"https://codeload.github.com/robsonos/nordic-dfu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248192686,"owners_count":21062726,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["capacitor-plugin","capacitorjs","nordic-bluetooth","nordic-semiconductor","nrf52"],"created_at":"2024-12-07T21:11:43.279Z","updated_at":"2025-11-08T06:03:13.982Z","avatar_url":"https://github.com/robsonos.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cbr\u003e\u003cimg src=\"https://user-images.githubusercontent.com/236501/85893648-1c92e880-b7a8-11ea-926d-95355b8175c7.png\" width=\"128\" height=\"128\" /\u003e\u003c/p\u003e\n\u003ch3 align=\"center\"\u003eNordic DFU\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\u003cstrong\u003e\u003ccode\u003ecapacitor-community-nordic-dfu\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  Capacitor plugin to interface with Nordic DFU's \u003ca href=\"https://github.com/NordicSemiconductor/IOS-DFU-Library\"\u003eIOS-DFU-Library\u003c/a\u003e and \u003ca href=\"https://github.com/NordicSemiconductor/Android-DFU-Library\"\u003eAndroid-DFU-Library\u003c/a\u003e.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg \n      alt=\"Maintenance status\"\n      src=\"https://img.shields.io/maintenance/yes/2025?style=flat-square\"/\u003e\n  \u003ca\n    href=\"https://github.com/robsonos/nordic-dfu/actions/workflows/ci.yml\"\n    style=\"color: inherit; text-decoration: none;\"\u003e\n    \u003cimg\n      alt=\"GitHub Workflow Status (with event)\"\n      src=\"https://img.shields.io/github/actions/workflow/status/robsonos/nordic-dfu/ci.yml\"/\u003e\n  \u003c/a\u003e\n  \u003ca\n    href=\"https://www.npmjs.com/package/capacitor-community-nordic-dfu\"\n    style=\"color: inherit; text-decoration: none;\"\u003e\n    \u003cimg\n      alt=\"GitHub License\"\n      src=\"https://img.shields.io/npm/l/capacitor-community-nordic-dfu?style=flat-square\"/\u003e\n  \u003c/a\u003e\n  \u003cbr /\u003e\n  \u003ca\n    href=\"https://www.npmjs.com/package/capacitor-community-nordic-dfu\"\n    style=\"color: inherit; text-decoration: none;\"\u003e\n    \u003cimg\n      alt=\"Version from npmjs\"\n      src=\"https://img.shields.io/npm/v/capacitor-community-nordic-dfu?style=flat-square\"/\u003e\n  \u003c/a\u003e\n  \u003ca\n    href=\"https://www.npmjs.com/package/capacitor-community-nordic-dfu\"\n    style=\"color: inherit; text-decoration: none;\"\u003e\n    \u003cimg\n      alt=\"Downloads from npmjs\"\n      src=\"https://img.shields.io/npm/dw/capacitor-community-nordic-dfu?style=flat-square\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"#contributors\"\n    style=\"color: inherit; text-decoration: none;\"\u003e\n    \u003cimg\n      alt=\"GitHub contributors from allcontributors.org\"\n      src=\"https://img.shields.io/github/all-contributors/robsonos/nordic-dfu\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Table of Contents\n\n- [Maintainers](#maintainers)\n- [Installation](#installation)\n- [Permissions](#permissions)\n- [API](#api)\n- [Contributors](#contributors)\n\n## Maintainers\n\n| Maintainer | GitHub                                  | Active |\n| ---------- | --------------------------------------- | ------ |\n| robsonos   | [robsonos](https://github.com/robsonos) | yes    |\n\n## Installation\n\n```bash\nnpm install capacitor-community-nordic-dfu\nnpx cap sync\n```\n\n## Permissions\n\nPlease check the sample permissions in [Android](./example/android/app/src/main/AndroidManifest.xml) and [iOS](./example/ios/App/App/Info.plist) folders.\n\n## API\n\n\u003cdocgen-index\u003e\n\n- [`startDFU(...)`](#startdfu)\n- [`checkPermissions()`](#checkpermissions)\n- [`requestPermissions()`](#requestpermissions)\n- [`addListener('DFUStateChanged', ...)`](#addlistenerdfustatechanged-)\n- [`removeAllListeners()`](#removealllisteners)\n- [Interfaces](#interfaces)\n- [Type Aliases](#type-aliases)\n- [Enums](#enums)\n\n\u003c/docgen-index\u003e\n\n\u003cdocgen-api\u003e\n\u003c!--Update the source file JSDoc comments and rerun docgen to update the docs below--\u003e\n\nDefines the plugin for handling Nordic DFU processes.\nIncludes methods to start the DFU process, check permissions, and manage event listeners.\n\n### startDFU(...)\n\n```typescript\nstartDFU(dfuUpdateOptions: DfuUpdateOptions) =\u003e Promise\u003cvoid | PluginResultError\u003e\n```\n\nInitiates the DFU process with the specified options.\n\n| Param                  | Type                                                          | Description                  |\n| ---------------------- | ------------------------------------------------------------- | ---------------------------- |\n| **`dfuUpdateOptions`** | \u003ccode\u003e\u003ca href=\"#dfuupdateoptions\"\u003eDfuUpdateOptions\u003c/a\u003e\u003c/code\u003e | Options for the DFU process. |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;void | \u003ca href=\"#pluginresulterror\"\u003ePluginResultError\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n**Since:** 1.0.0\n\n---\n\n### checkPermissions()\n\n```typescript\ncheckPermissions() =\u003e Promise\u003cPermissionStatus\u003e\n```\n\nCheck status of permissions needed by the plugin\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#permissionstatus\"\u003ePermissionStatus\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n**Since:** 1.0.0\n\n---\n\n### requestPermissions()\n\n```typescript\nrequestPermissions() =\u003e Promise\u003cPermissionStatus\u003e\n```\n\nRequest permissions needed by the plugin\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#permissionstatus\"\u003ePermissionStatus\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n**Since:** 1.0.0\n\n---\n\n### addListener('DFUStateChanged', ...)\n\n```typescript\naddListener(eventName: 'DFUStateChanged', handler: (update: DfuUpdate) =\u003e void) =\u003e Promise\u003cPluginListenerHandle\u003e \u0026 PluginListenerHandle\n```\n\nListen for when the DFU state changes\n\n| Param           | Type                                                                 | Description                                                      |\n| --------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------- |\n| **`eventName`** | \u003ccode\u003e'DFUStateChanged'\u003c/code\u003e                                       | The name of the event to listen for                              |\n| **`handler`**   | \u003ccode\u003e(update: \u003ca href=\"#dfuupdate\"\u003eDfuUpdate\u003c/a\u003e) =\u0026gt; void\u003c/code\u003e | The handler function that will be called when the event is fired |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#pluginlistenerhandle\"\u003ePluginListenerHandle\u003c/a\u003e\u0026gt; \u0026 \u003ca href=\"#pluginlistenerhandle\"\u003ePluginListenerHandle\u003c/a\u003e\u003c/code\u003e\n\n**Since:** 1.0.0\n\n---\n\n### removeAllListeners()\n\n```typescript\nremoveAllListeners() =\u003e Promise\u003cvoid\u003e\n```\n\nRemoves all listeners for the DFUStateChanged event\n\n**Since:** 1.0.0\n\n---\n\n### Interfaces\n\n#### PluginResultError\n\n| Prop          | Type                |\n| ------------- | ------------------- |\n| **`message`** | \u003ccode\u003estring\u003c/code\u003e |\n\n#### DfuUpdateOptions\n\nSpecifies the options required for initiating the DFU process.\n\n| Prop                | Type                                              | Description                                                                                                                               | Since |\n| ------------------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`deviceAddress`** | \u003ccode\u003estring\u003c/code\u003e                               | The target device address. On **Android** this is the BLE MAC address. On **iOS** and **web** it is a randomly generated UUID identifier. | 1.0.0 |\n| **`deviceName`**    | \u003ccode\u003estring\u003c/code\u003e                               | The name of the device                                                                                                                    | 1.0.0 |\n| **`filePath`**      | \u003ccode\u003estring\u003c/code\u003e                               | The path to the firmware file                                                                                                             | 1.0.0 |\n| **`dfuOptions`**    | \u003ccode\u003e\u003ca href=\"#dfuoptions\"\u003eDfuOptions\u003c/a\u003e\u003c/code\u003e | The additional options for the DFU process                                                                                                | 1.0.0 |\n\n#### DfuOptions\n\nOutlines additional options for configuring the DFU process.\n\n| Prop                                                        | Type                 | Description                                                                                                                                                                                                                                                                                                                                                                                                                                        | Default            | Since |\n| ----------------------------------------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ----- |\n| **`disableNotification`**                                   | \u003ccode\u003eboolean\u003c/code\u003e | Sets whether the progress notification in the status bar should be disabled.                                                                                                                                                                                                                                                                                                                                                                       | \u003ccode\u003efalse\u003c/code\u003e | 1.0.0 |\n| **`startAsForegroundService`**                              | \u003ccode\u003eboolean\u003c/code\u003e | Sets whether the progress notification in the status bar should be disabled.                                                                                                                                                                                                                                                                                                                                                                       | \u003ccode\u003efalse\u003c/code\u003e | 1.0.0 |\n| **`keepBond`**                                              | \u003ccode\u003eboolean\u003c/code\u003e | Sets whether the bond information should be preserver after flashing new application.                                                                                                                                                                                                                                                                                                                                                              | \u003ccode\u003efalse\u003c/code\u003e | 1.0.0 |\n| **`restoreBond`**                                           | \u003ccode\u003eboolean\u003c/code\u003e | Sets whether a new bond should be created after the DFU is complete. The old bond information will be removed before.                                                                                                                                                                                                                                                                                                                              | \u003ccode\u003efalse\u003c/code\u003e | 1.0.0 |\n| **`dataObjectDelay`**                                       | \u003ccode\u003enumber\u003c/code\u003e  | Sets the initial delay (in milliseconds) that the service will wait before sending each data object.                                                                                                                                                                                                                                                                                                                                               | \u003ccode\u003e0\u003c/code\u003e     | 1.0.0 |\n| **`packetReceiptNotificationsEnabled`**                     | \u003ccode\u003eboolean\u003c/code\u003e | Enables or disables the Packet Receipt Notification (PRN) procedure. By default the PRNs are disabled on devices with Android Marshmallow or newer and enabled on older ones.                                                                                                                                                                                                                                                                      |                    | 1.0.0 |\n| **`packetsReceiptNotificationsValue`**                      | \u003ccode\u003enumber\u003c/code\u003e  | If Packet Receipt Notification procedure is enabled, this method sets the number of packets to be sent before receiving a PRN.                                                                                                                                                                                                                                                                                                                     | \u003ccode\u003e12\u003c/code\u003e    | 1.0.0 |\n| **`forceDfu`**                                              | \u003ccode\u003eboolean\u003c/code\u003e | Setting force DFU to true will prevent from jumping to the DFU Bootloader mode in case there is no DFU Version characteristic (Legacy DFU only!). Use this if the DFU operation can be handled by your device running in the application mode. This method is ignored in Secure DFU.                                                                                                                                                               | \u003ccode\u003efalse\u003c/code\u003e | 1.0.0 |\n| **`rebootTime`**                                            | \u003ccode\u003enumber\u003c/code\u003e  | Sets the time (in milliseconds) required by the device to reboot. The library will wait for this time before scanning for the device in bootloader mode.                                                                                                                                                                                                                                                                                           | \u003ccode\u003e0\u003c/code\u003e     | 1.0.0 |\n| **`scanTimeout`**                                           | \u003ccode\u003enumber\u003c/code\u003e  | Sets the scan duration (in milliseconds) when scanning for DFU Bootloader.                                                                                                                                                                                                                                                                                                                                                                         | \u003ccode\u003e5000\u003c/code\u003e  | 1.0.0 |\n| **`forceScanningForNewAddressInLegacyDfu`**                 | \u003ccode\u003eboolean\u003c/code\u003e | When this is set to true, the Legacy Buttonless Service will scan for the device advertising with an incremented MAC address, instead of trying to reconnect to the same device.                                                                                                                                                                                                                                                                   | \u003ccode\u003efalse\u003c/code\u003e | 1.0.0 |\n| **`disableResume`**                                         | \u003ccode\u003eboolean\u003c/code\u003e | This options allows to disable the resume feature in Secure DFU. When the extra value is set to true, the DFU will send Init Packet and Data again, despite the firmware might have been send partially before. By default, without setting this extra, or by setting it to false, the DFU will resume the previously cancelled upload if CRC values match.                                                                                        | \u003ccode\u003efalse\u003c/code\u003e | 1.4.0 |\n| **`numberOfRetries`**                                       | \u003ccode\u003enumber\u003c/code\u003e  | Sets the number of retries that the DFU service will use to complete DFU.                                                                                                                                                                                                                                                                                                                                                                          | \u003ccode\u003e0\u003c/code\u003e     | 1.0.0 |\n| **`mtu`**                                                   | \u003ccode\u003enumber\u003c/code\u003e  | Sets the Maximum Transfer Unit (MTU) value that the Secure DFU service will try to request before performing DFU. **Available for Android only.** By default, value 517 will be used, which is the highest supported y Android. However, as the highest supported MTU by the Secure DFU from SDK 15 (first which supports higher MTU) is 247, the sides will agree on using MTU = 247 instead if the phone supports it (Lollipop or newer device). |                    | 1.0.0 |\n| **`currentMtu`**                                            | \u003ccode\u003enumber\u003c/code\u003e  | Sets the current MTU value. This method should be used only if the device is already connected and MTU has been requested before DFU service is started. **Available for Android only.**                                                                                                                                                                                                                                                           | \u003ccode\u003e23\u003c/code\u003e    | 1.0.0 |\n| **`disableMtuRequest`**                                     | \u003ccode\u003eboolean\u003c/code\u003e | Disables MTU request. **Available for Android only.**                                                                                                                                                                                                                                                                                                                                                                                              | \u003ccode\u003efalse\u003c/code\u003e | 1.4.0 |\n| **`scope`**                                                 | \u003ccode\u003enumber\u003c/code\u003e  | This method allows to narrow the update to selected parts from the ZIP, for example to allow only application update from a ZIP file that has SD+BL+App. System components scope include the Softdevice and/or the Bootloader (they can't be separated as they are packed in a single bin file and the library does not know whether it contains only the softdevice, the bootloader or both) Application scope includes the application only.     |                    | 1.0.0 |\n| **`mbrSize`**                                               | \u003ccode\u003enumber\u003c/code\u003e  | This method sets the size of an MBR (Master Boot Record). It should be used only when updating a file from a HEX file. If you use BIN or ZIP, value set here will be ignored.                                                                                                                                                                                                                                                                      | \u003ccode\u003e4096\u003c/code\u003e  | 1.0.0 |\n| **`unsafeExperimentalButtonlessServiceInSecureDfuEnabled`** | \u003ccode\u003eboolean\u003c/code\u003e | Set this flag to true to enable experimental buttonless feature in Secure DFU. When the experimental Buttonless DFU Service is found on a device, the service will use it to switch the device to the bootloader mode, connect to it in that mode and proceed with DFU.                                                                                                                                                                            | \u003ccode\u003efalse\u003c/code\u003e | 1.0.0 |\n\n#### PermissionStatus\n\nRepresents the current status of permissions in the plugin.\n\n| Prop                | Type                                                        | Description                                      | Since |\n| ------------------- | ----------------------------------------------------------- | ------------------------------------------------ | ----- |\n| **`notifications`** | \u003ccode\u003e\u003ca href=\"#permissionstate\"\u003ePermissionState\u003c/a\u003e\u003c/code\u003e | Indicates the permission state of notifications. | 1.0.0 |\n\n#### PluginListenerHandle\n\n| Prop         | Type                                      |\n| ------------ | ----------------------------------------- |\n| **`remove`** | \u003ccode\u003e() =\u0026gt; Promise\u0026lt;void\u0026gt;\u003c/code\u003e |\n\n#### DfuUpdate\n\nThe DFU update object that is passed to the DFUStateChanged event\n\n| Prop        | Type                                                    | Description                                                                          | Since |\n| ----------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------ | ----- |\n| **`state`** | \u003ccode\u003e\u003ca href=\"#dfustate\"\u003eDfuState\u003c/a\u003e\u003c/code\u003e           | Defines the structure for the DFU update object passed to the DFUStateChanged event. | 1.0.0 |\n| **`data`**  | \u003ccode\u003e\u003ca href=\"#dfuupdatedata\"\u003eDfuUpdateData\u003c/a\u003e\u003c/code\u003e | The DFU data that is passed to the \u003ca href=\"#dfuupdate\"\u003eDfuUpdate\u003c/a\u003e object         | 1.0.0 |\n\n#### DfuUpdateData\n\nContains data related to the DFU update process, such as progress and speed.\n\n| Prop                | Type                | Description                                                                                                                                                                                                                   | Since |\n| ------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`percent`**       | \u003ccode\u003enumber\u003c/code\u003e | The current status of upload (0-99).                                                                                                                                                                                          | 1.0.0 |\n| **`speed`**         | \u003ccode\u003enumber\u003c/code\u003e | The current speed in bytes per millisecond.                                                                                                                                                                                   | 1.0.0 |\n| **`avgSpeed`**      | \u003ccode\u003enumber\u003c/code\u003e | The average speed in bytes per millisecond.                                                                                                                                                                                   | 1.0.0 |\n| **`currentPart`**   | \u003ccode\u003enumber\u003c/code\u003e | The number of parts being sent. In case the ZIP file contains a Soft Device and/or a Bootloader together with the application the SD+BL are sent as part 1, then the service starts again and send the application as part 2. | 1.0.0 |\n| **`partsTotal`**    | \u003ccode\u003enumber\u003c/code\u003e | The total number of parts.                                                                                                                                                                                                    | 1.0.0 |\n| **`duration`**      | \u003ccode\u003enumber\u003c/code\u003e | The total time elapsed since the start of the DFU process in milliseconds                                                                                                                                                     | 1.1.0 |\n| **`remainingTime`** | \u003ccode\u003enumber\u003c/code\u003e | The estimated remaining time to the end of the DFU process in milliseconds                                                                                                                                                    | 1.1.0 |\n\n### Type Aliases\n\n#### PermissionState\n\n\u003ccode\u003e'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'\u003c/code\u003e\n\n### Enums\n\n#### DfuState\n\n| Members                    | Value                               | Description                                                            | Since |\n| -------------------------- | ----------------------------------- | ---------------------------------------------------------------------- | ----- |\n| **`DEVICE_CONNECTING`**    | \u003ccode\u003e'DEVICE_CONNECTING'\u003c/code\u003e    | The device is currently connecting.                                    | 1.0.0 |\n| **`DEVICE_CONNECTED`**     | \u003ccode\u003e'DEVICE_CONNECTED'\u003c/code\u003e     | The device has successfully connected. **Available for Android only.** | 1.0.0 |\n| **`DFU_PROCESS_STARTING`** | \u003ccode\u003e'DFU_PROCESS_STARTING'\u003c/code\u003e | The DFU process is about to start.                                     | 1.0.0 |\n| **`DFU_PROCESS_STARTED`**  | \u003ccode\u003e'DFU_PROCESS_STARTED'\u003c/code\u003e  | The DFU process has started. **Available for Android only.**           | 1.0.0 |\n| **`ENABLING_DFU_MODE`**    | \u003ccode\u003e'ENABLING_DFU_MODE'\u003c/code\u003e    | The device is enabling DFU mode.                                       | 1.0.0 |\n| **`DFU_PROGRESS`**         | \u003ccode\u003e'DFU_PROGRESS'\u003c/code\u003e         | The DFU process is in progress.                                        | 1.0.0 |\n| **`VALIDATING_FIRMWARE`**  | \u003ccode\u003e'VALIDATING_FIRMWARE'\u003c/code\u003e  | The firmware is currently being validated.                             | 1.0.0 |\n| **`DEVICE_DISCONNECTING`** | \u003ccode\u003e'DEVICE_DISCONNECTING'\u003c/code\u003e | The device is disconnecting.                                           | 1.0.0 |\n| **`DEVICE_DISCONNECTED`**  | \u003ccode\u003e'DEVICE_DISCONNECTED'\u003c/code\u003e  | The device has disconnected. **Available for Android only.**           | 1.0.0 |\n| **`DFU_COMPLETED`**        | \u003ccode\u003e'DFU_COMPLETED'\u003c/code\u003e        | The DFU process has completed successfully.                            | 1.0.0 |\n| **`DFU_ABORTED`**          | \u003ccode\u003e'DFU_ABORTED'\u003c/code\u003e          | The DFU process has been aborted.                                      | 1.0.0 |\n| **`DFU_FAILED`**           | \u003ccode\u003e'DFU_FAILED'\u003c/code\u003e           | The DFU process has failed.                                            | 1.0.0 |\n\n\u003c/docgen-api\u003e\n\n## Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobsonos%2Fnordic-dfu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobsonos%2Fnordic-dfu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobsonos%2Fnordic-dfu/lists"}