Hi,
my firmware is basing on the nRF Connect SDK hci_uart example. I'm using the nRF52840DK as hardware platform and have a STM32 connected to the nRF by HCI with btstack.
I'm evaluating the maximum possible data throughput of this configuration by using my evaluation board as central device that connects to a peripheral which is a nRF USB stick with a simple Service and characteristic. The central is using write without response. I'm facing that whatever connection parameter I chose only three packet per connection event is sent.
As I'm not sure sure which component (btstack or nRF Connect SDK) is responsible, I just want to know what I must do to force the controller to use the whole connection event. I can't find find any API to set this up in runtime, I just found the Kconfig parameter CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT which is set on compile time and therefore can't be set according the connection parameters that are chosen by the devices in runtime. Here is my current configuration:
CONFIG_UART_INTERRUPT_DRIVEN=y CONFIG_UART_LINE_CTRL=y CONFIG_LED=y CONFIG_LED_GPIO=y CONFIG_BT=y CONFIG_BT_HCI_RAW=y CONFIG_BT_HCI_RAW_H4=y CONFIG_BT_HCI_RAW_H4_ENABLE=y CONFIG_BT_DEBUG_LOG=n CONFIG_BT_MAX_CONN=16 CONFIG_BT_ECC=y CONFIG_BT_TINYCRYPT_ECC=y #CONFIG_BT_CTLR_DTM_HCI=y CONFIG_BT_HCI_VS_EXT=y CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=400000 # settings for extended MTU CONFIG_BT_CTLR_DATA_LENGTH_MAX=251 CONFIG_BT_DATA_LEN_UPDATE=y CONFIG_BT_BUF_ACL_RX_SIZE=255 CONFIG_BT_BUF_ACL_TX_SIZE=255 CONFIG_BT_BUF_CMD_TX_SIZE=255 CONFIG_BT_BUF_EVT_DISCARDABLE_SIZE=255 CONFIG_BT_CTLR_PHY_2M=y CONFIG_BT_CTLR_PHY_CODED=y CONFIG_BT_CTLR_CHAN_SEL_2=y # controller settings #CONFIG_BT_CTLR_ASSERT_HANDLER=y CONFIG_BT_CTLR_FILTER_ACCEPT_LIST=y CONFIG_BT_CTLR_PRIVACY=y CONFIG_BT_CTLR_LE_PING=y # Workaround: Unable to allocate command buffer when using K_NO_WAIT since # Host number of completed commands does not follow normal flow control. CONFIG_BT_BUF_CMD_TX_COUNT=10 CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=512 CONFIG_PM=y CONFIG_PM_DEVICE=y #CONFIG_PM_POLICY_CUSTOM=y CONFIG_BT_WAIT_NOP=n # LFO configurations CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=n CONFIG_CLOCK_CONTROL_NRF_K32SRC_50PPM=y CONFIG_CLOCK_CONTROL_NRF_CALIBRATION_PERIOD=8000 CONFIG_CLOCK_CONTROL_NRF_CALIBRATION_MAX_SKIP=30 CONFIG_CLOCK_CONTROL_NRF_CALIBRATION_TEMP_DIFF=2
I already tried different values for CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT to no avail.
Thanks and regards,
Oliver