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

optimize ram usage + ble_gap.h

Hi,

I'm using the Nrf52810 with softdevice S112 for the moment.

Question 1:

In ble_gap.h i see that there is a define BLE_GAP_WHITELIST_ADDR_MAX_COUNT (8). Is this realy the limit? Or can i make a bigger buffer in my application? It is just a RAM buffer not? How many addresses can be stored in flash, how do i now the limit?

Question 2:

if the whitelist is full (flash). how can i delete 1 entry of the withe list?  What is a proper way to do this?

Question 2:

I want to use the Nrf52810 as a central device. I know i can use the S132 softdevice for this. But RAM will be a issue. I only want 2 connection max. What i can i do to optimize RAM (softdevice and SDK libs).

Thanks!

Parents
  • Hi,

    1. Whitelisting is handled in HW, and the maximum number of 8 is given by the RADIO peripheral (it has 8 DAB/DAP registers). It cannot be expanded.

    2. The bonding information is stored in flash (typically using the Peer manager library, which uses FDS), and you can have an arbitrary number of bonds as long as there is available FDS space. But you cannot whitelist more than 8 even if you have more bonds, due to the HW limitation described earlier. You can for instance delete bonds by calling pm_peer_delete(), for instance after finding the oldest bond based on the rank, but that is typically application specific.

    3. For the SoftDevice, you optimize RAM consumption by configuring as few connections as possible, as short packets as possible, and as short event lengths as possible when initializing the SoftDevice. When it comes to the SDK it all depends on which libraries you use.

Reply
  • Hi,

    1. Whitelisting is handled in HW, and the maximum number of 8 is given by the RADIO peripheral (it has 8 DAB/DAP registers). It cannot be expanded.

    2. The bonding information is stored in flash (typically using the Peer manager library, which uses FDS), and you can have an arbitrary number of bonds as long as there is available FDS space. But you cannot whitelist more than 8 even if you have more bonds, due to the HW limitation described earlier. You can for instance delete bonds by calling pm_peer_delete(), for instance after finding the oldest bond based on the rank, but that is typically application specific.

    3. For the SoftDevice, you optimize RAM consumption by configuring as few connections as possible, as short packets as possible, and as short event lengths as possible when initializing the SoftDevice. When it comes to the SDK it all depends on which libraries you use.

Children
No Data
Related