#dfu #nordic #nrf #protocols #firmware #ble #devices

no-std nrf-dfu-target

Implementation of the Nordic nRF DFU protocol for devices

2 releases

0.1.1 Mar 26, 2024
0.1.0 Aug 2, 2023

#1709 in Embedded development

Download history 5/week @ 2024-02-21 8/week @ 2024-02-28 50/week @ 2024-03-20 147/week @ 2024-03-27 34/week @ 2024-04-03

56 downloads per month


1.5K SLoC


An implementation of the Nordic nRF DFU protocol in Rust that can be used in a no_std environment. It is based on the nRF SDK 17 DFU protocol, but is compatible with older versions as well.

The intention is that any transport (BLE, UART, USB) can use this crate for decoding the request, processing the request and encoding the response for the protocol.

You can use any flash device that implements the embedded-storage traits as the target.

It does not support updating more than one firmware type for each DfuTarget instance at the moment.


For an example usage based on BLE, see the pinetime-embassy firmware which provides the GATT services and event dispatching.