nordic_dfu 7.1.0 copy "nordic_dfu: ^7.1.0" to clipboard
nordic_dfu: ^7.1.0 copied to clipboard

This library allows you to do a Device Firmware Update (DFU) of your nrf51 or nrf52 chip from Nordic Semiconductor. Fork of flutter-nordic-dfu.

nordic_dfu #

style: very good analysis pub package mobile_scanner GitHub Sponsors

Fork from flutter_nordic_dfu and updated with latest dependencies, now with macOS support from version 6.0.0.

This library allows you to do a Device Firmware Update (DFU) of your nrf51 or nrf52 chip from Nordic Semiconductor. It works for Android, iOS, and MacOS.

This is the implementation of the reference "react-native-nordic-dfu"

For more info about the DFU process, see: Resources

Run example #

  1. Add your dfu zip file to example/assets/file.zip

  2. Run example project

  3. Scan device

  4. Start dfu

Usage #

You can pass an absolute file path or asset file to NordicDfu

Use absolute file path
await NordicDfu().startDfu(
            'EB:75:AD:E3:CA:CF', '/file/to/zip/path/file.zip'
         );
// With callback
await NordicDfu().startDfu(
      'EB:75:AD:E3:CA:CF',
      'assets/file.zip',
      fileInAsset: true,
      onProgressChanged: (
        deviceAddress,
        percent,
        speed,
        avgSpeed,
        currentPart,
        partsTotal,
      ) {
        print('deviceAddress: $deviceAddress, percent: $percent');
      },
    );
Use asset file path
/// just set [fileInAsset] true
await NordicDfu().startDfu(
            'EB:75:AD:E3:CA:CF', 'assets/file.zip',
            fileInAsset: true,
         );

Parallel DFU #

Available from version 7.0.0

Concurrent DFU Processes #

  • DFU operations can run simultaneously on multiple devices.
  • Callbacks are triggered correctly and independently for each device.

Interface change #

  • Updated abortDfu method to include an optional address parameter:
    • If an address is provided: The DFU process for the specified device will be aborted. (iOS only)
    • If no address is provided: All active DFU processes will be aborted.
  • Added error handling for abortDfu:
    • FlutterError("INVALID_ADDRESS") is thrown if the provided address does not match any active DFU process.
    • FlutterError("NO_ACTIVE_DFU") is thrown if no address is provided and there are no active DFU processes.

iOS #

  • ✅ Devices update in parallel.
  • ✅ Callbacks set in startDfu are called independently for each device.
  • ✅ All active DFU processes can be aborted using the abortDfu method without an address.
  • ✅ DFU processes can be individually aborted using the abortDfu method with an address.

Android #

  • ✅ Devices update in parallel (set limit of 8).
  • ✅ Callbacks set in startDfu are called independently for each device.
  • ✅ All active DFU processes can be aborted using the abortDfu method without an address.
  • ❌ DFU processes cannot be individually aborted using the abortDfu method with an address due to current limitations in the underlying Android-DFU-Library.

Address Mapping #

The Nordic DFU library now includes an address mapping feature to track devices during firmware updates. Read the full documentation to learn how this improves reliability when devices change MAC addresses in DFU mode.

Resources #

45
likes
160
points
4.05k
downloads

Publisher

verified publishersteenbakker.dev

Weekly Downloads

This library allows you to do a Device Firmware Update (DFU) of your nrf51 or nrf52 chip from Nordic Semiconductor. Fork of flutter-nordic-dfu.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on nordic_dfu

Packages that implement nordic_dfu