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

Running buttonless DFU example on pca10100.

I seem to be having trouble running the buttonless DFU example on the nRF52833 DK (pca10100). It doesn't show up in nRF Connect as having dfu enabled.

I am using:

1) nRF5 SDK version 17.0.2.

2) s140 soft device

3) secure bootloader pca10100_s140_ble

4) ses dev environment

Example app is "examples\ble_peripheral\ble_app_buttonless_dfu\pca10056" that I have modified for the nRF52833 for the correct processor definitions and memory footprint via the project settings.

I have loaded thebootloader and softdevice with no difficulties and DFU via a button press is working. The buttonless app itself is running, it advertises itself and can attach to it using nRF Connect.  What isn't working is in nRF Connect it says DFU is not enabled and if I try to perform a dfu from nRF Connect (or nRF Toolbox) it says this device doesn't support dfu. Further, what's weird is it shows it's advertising heart rate service, which I don't see in the application at all. No idea where nRF Connect is getting that.

Other than project settings, I have not altered the example source code at all, seems like it should just work. I'm assuming I have a setting wrong, but for the life of me I can't figure it out. I don't have a 10056 board to test the code as a sanity check.

I have these for project preprocessor flags:

APP_TIMER_V2

APP_TIMER_V2_RTC1_ENABLED

BL_SETTINGS_ACCESS_ONLY

BOARD_PCA10100

CONFIG_GPIO_AS_PINRESET

DEVELOP_IN_NRF52833

FLOAT_ABI_SOFT

INITIALIZE_USER_SECTIONS

NO_VTOR_CONFIG

NRF52833_XXAA

NRFX_COREDEP_DELAY_US_LOOP_CYCLES=3

NRF_DFU_SVCI_ENABLED

NRF_DFU_TRANSPORT_BLE=1

NRF_SD_BLE_API_VERSION=7

S140

SOFTDEVICE_PRESENT

the sdk_config.h file is copied from "examples\ble_peripheral\ble_app_buttonless_dfu\pca10056\s140\config"

Any help is appreciated.

  • It does not show up in my list of Bluetooth devices, I have never paired with it through the OS, just in the nRF Connect app. So, there's nothing to forget.

    Your screen shot is what I expected it to look like. I can't understand how the app is getting what it's getting. I've removed it, cycled Bluetooth on/off, reinstalled the app. There must be some data that is still preserved somehow on the iPhone. I've dug up an android device, I need to charge it then try that.

  • It seems to be working on my android device. So... chalk it up to an app bug I guess (or iPhone peculiarity perhaps).

    I need to go back and verify that I can actually upgrade the firmware via the android device, but at least the service shows up.

  • BTW, running iOS 14.6 on an iPhone SE (the new version) if that makes a difference, or if someone there can verify that it works with the iOS app.

  • I think it's the first time I'm seeing a case where cache is not being cleared after turning Bluetooth off an on. So maybe it's a bug somewhere. It could be interesting to try out the LightBlue app and see if it behaves any different from nRF connect (https://apps.apple.com/us/app/lightblue/id557428110). A reboot of the phone may also be a good idea.

    I don't have an iPhone SE to test with here in the office, but have tested with an iPhone 8 and 11 pro max, both running iOS 14.6.

  • Huh, haven't used the LightBlue app. I'll give that a try. Both nRF Connect and nRF Toolbox had the same issue with not seeing DFU enabled.

    I wouldn't think the iphone hardware would make that much of a difference (as long as it's pretty new), Interesting that you have the same iOS version. Wonder if it's related to the sequence of events. I did initially load the heart rate app on the dev kit to try out the board at first. Then moved on to the DFU example. There must be something persistent in there somehow.. I guess?

    Thanks for the assistance. I'll try the LightBlue app, but I need to get going on this project, so I will move forward with the Android app for now since it's working fine. Maybe circle back and see if I can make sense of it later.

Related