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

DFU works with nRF52 DK but not with custom board using Fanstel BC832 module

My team is in the process of developing a product that uses the Fanstel BC832 module and have been running into issues trying to implement buttlonless DFU in our application. I believe I have added the buttonless dfu service correctly by following the few tutorials that are available where I have it working fine using the nRF52 DK. When I test it with my custom device, the custom service I created does not show up from the nrfConnect app and can't read any of the characteristics, only the secure DFU service shows up. When I debug my device I get no error codes when I initialize my services. I am wondering if it has something to do with my RAM and ROM setting placements but I am unsure. I am using SDK 15.3, S132 6.1.1 and the secure bootloader from the SDK package. I can share the code just not publicly so if a Nordic representative is available, I could use a little guidance.

  • So I have both an IPhone and an Android but had mainly been using Android because that is what I normally use. The custom service doesn't show up on my Android with nRF Connect but I tried it with the IPhone and it does. i then connected it with my Android phone and told it to re-read the services and then it shows up. The device is now working fine I guess thats what the problem was. But even after restarting my device, turning bluetooth off and on, unbonding and bonding the device again, it doesn't show the custom service when i first connect the device, i still have to tell it to re-read the services. Either way it seems to have been just fine all along the app just didn't show that it was. Thanks for the help Vidar!

  • Thanks for the update. Android exposes the API to re-read services as opposed to iOS. The only way to re-read the service on iOS is to clear the cache somehow.

    I'd recommend using the Service changed characteristic (enabled in sdk_config) If the service table is dynamic, or if there is a chance that it may change in the future (through a DFU). There is a good summary of attribute caching/service changed in core spec, vol 3, part g, section 2.5.2. 

Related