An iOS and macOS library for performing Over-The-Air Device Firmware Updates on Nordic Semiconductor nRF5x Bluetooth SoCs.
Nordic Semiconductor's iOS DFU Library is a Swift library that enables Over-The-Air Device Firmware Updates (OTA-DFU) for nRF5x Series Bluetooth SoCs from iOS and macOS devices. It solves the problem of wirelessly updating firmware on embedded devices in the field, allowing developers to fix bugs and add features post-deployment. The library handles BLE communication, bootloader switching, and firmware transfer securely and reliably.
iOS and macOS developers building applications that manage or update firmware on Nordic Semiconductor nRF5x-based Bluetooth devices, such as IoT products, wearables, or embedded systems.
Developers choose this library because it is the official, tested solution from Nordic Semiconductor, ensuring compatibility with all nRF5x DFU bootloader versions. It simplifies complex BLE update procedures, supports both Legacy and Secure DFU, and integrates easily with standard iOS dependency managers.
OTA DFU Library for Mac and iOS, compatible with nRF5x SoCs
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Maintained by Nordic Semiconductor, ensuring deep compatibility with nRF5x chips and regular updates for new SDK versions, as highlighted in the documentation and version history.
Supports both Legacy and Secure DFU across multiple nRF5 SDK versions (from 4.3.0 to 15.0.0+), handling backwards compatibility seamlessly for various device configurations.
Enables firmware upgrades without physical buttons, with specific support for bonded and non-bonded devices since SDK 14.0.0, simplifying user interactions in field deployments.
Available via CocoaPods, Carthage, and Swift Package Manager, making it straightforward to add to iOS and macOS projects with minimal setup, as detailed in the installation instructions.
Exclusively designed for Nordic Semiconductor nRF5x Series chips, offering no support for other Bluetooth SoCs, which limits its utility in mixed-hardware environments.
Requires meticulous management of Service Changed characteristics and bonding scenarios, with workarounds like MAC address changes for older SDKs, adding setup complexity as noted in the README.
For SDK 12 experimental buttonless services, enabling requires setting an unsafe flag (enableUnsafeExperimentalButtonlessServiceInSecureDfu), which could compromise reliability if misconfigured.