NRF BLE DFU (Core)

The core Nordic DFU over BLE library in pure Dart. This package helps enable firmware updates of BLE devices over Bluetooth Low Energy (BLE) in a platform-independent way.

It provides a decoupled implementation of the Nordic DFU protocol (CRC32 calculations, data packeting, command control states) without depending on the Flutter SDK.

If you are building a Flutter application with ready-to-use widgets and plugin bindings (like flutter_blue_plus and shared_preferences), please use the flutter_nrf_ble_dfu package instead.

Getting Started

To use this core library, you must provide your own platform adapters implementing the required interfaces:

  • DfuBleAdapter, DfuBleDevice, DfuBleCharacteristic, DfuBleService
  • DfuStorageAdapter
  • DfuPathAdapter
  • DfuDatabaseAdapter

Then initialize the engine:

import 'package:nrf_ble_dfu/nrf_ble_dfu.dart';

void main() {
  NrfBleDfu().initialize(
    bleAdapter: MyBleAdapter(),
    storageAdapter: MyStorageAdapter(),
    pathAdapter: MyPathAdapter(),
    databaseAdapter: MyDatabaseAdapter(),
  );
}

Libraries

nrf_ble_dfu