This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Creating 3rd party Android/iOS application for nRF DFU

Hi Nordic DevTeam,

I have successfully done DFU through nRF Connect both on Android and iOS after merging ble_app_uart (combine ble_dfu_buttonless application here) & secure_bootloader & s140 softdevices hex files. PCA10056 S140.

Now, I am looking on how to integrate this DFU process into my own custom Android/iOS app. I will try to separate my questions nicely.

1. Since the nRF Connect source code is not shared, I look at nRF Toolbox's (shared on github) instead. In nRF Toolbox, I pressed SELECT DEVICE on DFU options and choose my device but nothing happened (it seems like it doesn't select the device at all) and the bootloader in my board is already at DFU mode. Do you guys know why this happened? Would nRF Toolbox be a good reference to write the DFU Android App? 

2. In my current custom android app, I did onServicesDiscovered() to look at all the services and characteristics the device have, I could print all my other services UUID or characteristics UUID I couldn't find any Nordic proprietary UUID that I expected to show up (see below). However I can locate them using nRF Connect or even BLE Scanner (most popular scanner app on Play Store). Would you guys know why this happened?

private val UUID_SECURE_DFU_CS3_SERVICE = UUID.fromString("0000FE59-0000-1000-8000-00805F9B34FB")
        private val UUID_SECURE_DFU_CONTROL_POINT_CS3_CHAR = UUID.fromString("8EC90001-F315-4F60-9FB8-838830DAEA50")
        private val UUID_SECURE_DFU_DATA_PACKET_CS3_CHAR = UUID.fromString("8EC90002-F315-4F60-9FB8-838830DAEA50")
        private val UUID_SECURE_DFU_WITHOUT_BONDS_CS3_CHAR = UUID.fromString("8EC90003-F315-4F60-9FB8-838830DAEA50")

3. If I am about to create a 3rd party app for DFU protocol, do you guys have any examples in Android apps on how to do it? I really like how the app is handling the nRF Connect DFU process especially in the iOS app, I wish to replicate similar thing. (probably just a button that says "Update Firmware" if newer firmware version is available)

Thanks!

Parents Reply Children
No Data
Related