Why is the number of connectable advertisements related to the maximum number of peripheral connections?

I need to send different types of advertisements in my application using NCS 2.9.0 on a nRF52833 and I noticed that I have to increase CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT (and therefore CONFIG_BT_MAX_CONN) to the number of connectable advertisements. I have six different advertisements (CONFIG_BT_EXT_ADV_MAX_ADV_SET=6) and ideally all of them would be connectable. But increasing CONFIG_BT_MAX_CONN increases the amount of reserved RAM considerably, requiring about 3236 bytes per connection.

Why are these configurations related to each other? I would believe that I could have several different connectable advertisements, and still only accept one peripheral connection.

Is there a configuration option or any workaround which would allow this?

Parents
  • Hi Bruno, 
    I don't think you have an option to do so. 

    How do you reject a 2nd connection when you already in a connection ? The stack automatically accept a connection before notifying the application. 
    Think about the situation that all 6 connectable advertisement receive 6 connect requests at the same time (not happen usually, but can happen) , the stack need to be configured to handle all 6 connections at the same time. 

Reply
  • Hi Bruno, 
    I don't think you have an option to do so. 

    How do you reject a 2nd connection when you already in a connection ? The stack automatically accept a connection before notifying the application. 
    Think about the situation that all 6 connectable advertisement receive 6 connect requests at the same time (not happen usually, but can happen) , the stack need to be configured to handle all 6 connections at the same time. 

Children
  • I would say the stack should reject the second connection when CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT is exceeded...

  • Hi again, 


    I don't think such feature has been implemented that you do connectable advertising but doesn't allow any connection for that advertising. From the Bluetooth spec point of view (and from my understanding) when you do connectable advertising you would need to prepare the resource to allow a connection on the advertising.