iOS DFU Library
Installation
Method 1: Via Cocoapods (Recommended method)
-
Open up a terminal window and cd to your project's root directory
-
Create a Podfile with the following content. Replace "YourAppTargetName" with the name of the main target in your app.
target 'YourAppTargetName' do use_frameworks! pod 'iOSDFULibrary' end
-
Install dependencies
pod install
-
Open the newly created
.xcworkspace
and begin working on your project.
Method 2: Building from source
-
Create a new blank XCode workspace
/path/to/workspace
and open it -
In Finder, drag your main project's
xcodeproject
file from/path/to/myProject
into the new workspace -
Clone the repository our other repository into
/path/to/dfuLibrary
cd /path/to/dfuLibrary && git clone git@github.com:NordicSemiconductor/IOS-DFU-Library.git
-
In Finder, Drag the librarie's
xcodeproject
file into your workspace -
Begin working on your project from within the workspace.
Device Firmware Update (DFU)
The nRF5x Series chips are flash-based SoCs, and as such they represent the most flexible solution available. A key feature of the nRF5x Series and their associated software architecture and S-Series SoftDevices is the possibility for Over-The-Air Device Firmware Upgrade (OTA-DFU). See Figure 1. OTA-DFU allows firmware upgrades to be issued and downloaded to products in the field via the cloud and so enables OEMs to fix bugs and introduce new features to products that are already out on the market. This brings added security and flexibility to product development when using the nRF5x Series SoCs.
This repository contains a tested library for iOS 8+ platform which may be used to perform Device Firmware Update on the nRF5x device using an iPhone or an iPad.
DFU library has been designed to make it very easy to include these devices into your application. It is compatible with all Bootloader/DFU versions.
Documentation
See the documentation for more information.
Requirements
The library is compatible with nRF51 and nRF52 devices with S-Series Soft Device and the DFU Bootloader flashed on.
DFU History
- SDK 4.3.0 - First version of DFU over Bluetooth Smart. DFU supports Application update.
- SDK 6.0.0 - DFU Bootloader supports Soft Device and Bootloader update. As the updated Bootloader may be dependent on the new Soft Device, those two may be sent and installed together.
- SDK 6.1.0 - Buttonless update support for non-bonded devices.
- SDK 7.0.0 - The extended init packet is required. The init packet contains additional validation information: device type and revision, application version, compatible Soft Devices and the firmware CRC.
- SDK 8.0.0 - The bond information may be preserved after an application update. The new application, when first started, will send the Service Change indication to the phone to refresh the services.
- Buttonless update support for bonded devices - sharing the LTK between an app and the bootloader.
Check platform folders for mode details about compatibility for each library.
Resources
- DFU Introduction
- How to create init packet
- nRF51 Development Kit (DK) (compatible with Arduino Uno Revision 3)
- nRF52 Development Kit (DK) (compatible with Arduino Uno Revision 3)