nordic_dfu 7.0.0 copy "nordic_dfu: ^7.0.0" to clipboard
nordic_dfu: ^7.0.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.

Resources #

39
likes
160
points
3.14k
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