Softdevice / Whitelist Issues

We are attempting to deploy a system consisting of one nRF52840 devkit running the multi-NUS example app, and over a dozen custom boards based on the nRF52832. It all works fine at my facility, which is very much RF-quiet. When attempting to bring up the system at the customer site, we appear to be getting the custom units captured by other BLE central devices. Attempting to track those down, but only partially successful. The custom board is using the 112 softdevice. What is the difference between 112 and 132? I have a vague recollection that with 132 we could be connected by multiple devices whereas 112 was restricted to a single connection at a time. If that is the case, I want to try to change to the 132 device. Surely there is a straightforward way within SES to do that?

I am also looking for a way to have our device only allow connections from our central device. I remember seeing something like that, though I really don't want to go the full Bonding route (but may have to).

Suggestions very welcome! The customer is in a bit of a panic because we're setting up for a big demonstration to customer's customer this Friday.

Steve Hendrix
Parents
  • Have to mention the obvious issue having been caught by this before, in case you didn't consider it; what are these two values set at?

    #define APP_ADV_INTERVAL  (244)  /**< The advertising interval (in units of 0.625 ms. This value corresponds to 152.5 ms). */
    #define APP_ADV_DURATION  3000   /**< The advertising duration (30 seconds) in units of 10 milliseconds. 0 == forever */

    In a BLE-noisy (well, 2.4GHz noisy) environment, a slow advertising interval of (say) 1 second is never going to successfully connect and if a default stop-after-trying 30 second timer is active (Nordic default) the peripheral will simply disappear after 30 seconds, or whatever that timer is set to. Best to advertise until end-of-time (== battery exhausted) and more frequently than once-per-second..

    Edit: if you are using Zephyr the definitions above will be set differently, no idea how; these are for nRF52 SDK usage

Reply
  • Have to mention the obvious issue having been caught by this before, in case you didn't consider it; what are these two values set at?

    #define APP_ADV_INTERVAL  (244)  /**< The advertising interval (in units of 0.625 ms. This value corresponds to 152.5 ms). */
    #define APP_ADV_DURATION  3000   /**< The advertising duration (30 seconds) in units of 10 milliseconds. 0 == forever */

    In a BLE-noisy (well, 2.4GHz noisy) environment, a slow advertising interval of (say) 1 second is never going to successfully connect and if a default stop-after-trying 30 second timer is active (Nordic default) the peripheral will simply disappear after 30 seconds, or whatever that timer is set to. Best to advertise until end-of-time (== battery exhausted) and more frequently than once-per-second..

    Edit: if you are using Zephyr the definitions above will be set differently, no idea how; these are for nRF52 SDK usage

Children
No Data
Related