A cross-platform library to perform device firmware upgrades (DFU) for Nordic's NRF52 devices. The API is straightforward and agnostic to the BLE implementation, giving developers a quick way to carry out a DFU from a desktop environment.
src-dfu
NrfDfuServer
)src-dfu-app
src-dfu
library.We have specific scripts to compile the library on each platform. All binaries will be placed in the bin
folder.
.\toolchains\windows\windows_compile.bat
from Powershell.
-c
or -clean
to perform a full rebuild of the project.-a=<ARCH>
or -arch=<ARCH>
to build the libraries for a specific architecture. (Supported values are x86
and x64
.)./toolchains/linux/linux_install.sh
to install the OS dependencies. This should be required only once../toolchains/linux/linux_compile.sh
to build the project.
-c
or -clean
to perform a full rebuild of the project.brew install cmake
to install CMake../toolchains/macos/macos_compile.sh
to build the project.
-c
or -clean
to perform a full rebuild of the project.
The library will be compiled into a .dylib
and saved into bin/darwin
.To perform a DFU with the bundled application that we developed, the following information and files are needed:
Usage: dfu_app.exe <mac_address> <dfu_zip_path>
.\bin\windows-x64\dfu_app.exe EE4200000000 package.zip
./bin/linux/dfu_app EE:42:00:00:00:00 package.zip
./bin/darwin/dfu_app {UUID} package.zip
In an effort to protect privacy, CoreBluetooth (the underlying macOS Bluetooth API) does not expose the MAC address of a device to a user. Instead, it randomizes the MAC address to a UUID (Universal Unique Identifier) that is exposed to the user. Instead, you will need to scan for devices and find the UUID of the desired device to connect to.
All components within this project that have not been bundled from external creators, are licensed under the terms of the MIT Licence.