Hello,
I'm running NUS sample from NCS SDK 1.5.0 on two nRF52840 PCBs.
Central board is Taiyo Yuden module and peripheral is nRF52840-DK.
I've added some lines to prj.conf files to increase the link throughput.
central/prj.conf:
# # Copyright (c) 2018 Nordic Semiconductor # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # # Enable the UART driver CONFIG_UART_ASYNC_API=y CONFIG_NRFX_UARTE0=y CONFIG_SERIAL=y CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y # Enable the BLE stack with GATT Client configuration CONFIG_BT=y CONFIG_BT_CENTRAL=y CONFIG_BT_SMP=y CONFIG_BT_GATT_CLIENT=y # Enable the BLE modules from NCS CONFIG_BT_NUS_CLIENT=y CONFIG_BT_SCAN=y CONFIG_BT_SCAN_FILTER_ENABLE=y CONFIG_BT_SCAN_UUID_CNT=1 CONFIG_BT_GATT_DM=y CONFIG_HEAP_MEM_POOL_SIZE=2048 # This example requires more workqueue stack CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 # Enable bonding CONFIG_BT_SETTINGS=y CONFIG_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_MAP=y CONFIG_NVS=y CONFIG_SETTINGS=y # Config logger CONFIG_LOG=n CONFIG_USE_SEGGER_RTT=n CONFIG_LOG_BACKEND_RTT=n CONFIG_LOG_BACKEND_UART=n CONFIG_ASSERT=y CONFIG_BOARD_ENABLE_DCDC=n CONFIG_GPIO_AS_PINRESET=n CONFIG_CLOCK_CONTROL_NRF_K32SRC_250PPM=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y CONFIG_BT_CTLR_TX_BUFFER_SIZE=251 CONFIG_BT_RX_BUF_LEN=251 CONFIG_BT_GATT_CLIENT=y CONFIG_BT_ATT_TX_MAX=10 CONFIG_BT_ATT_PREPARE_COUNT=2 CONFIG_BT_CONN_TX_MAX=10 CONFIG_BT_L2CAP_TX_BUF_COUNT=10 CONFIG_BT_L2CAP_TX_MTU=247 CONFIG_BT_L2CAP_RX_MTU=247 CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y CONFIG_BT_CTLR_PHY_2M=y CONFIG_BT_CTLR_RX_BUFFERS=2 CONFIG_BT_CTLR_TX_BUFFERS=10 CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
peripheral/prj.conf:
# # Copyright (c) 2018 Nordic Semiconductor # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # # Enable the UART driver CONFIG_UART_ASYNC_API=y CONFIG_NRFX_UARTE0=y CONFIG_SERIAL=y CONFIG_GPIO=y # Make sure printk is not printing to the UART console CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y CONFIG_HEAP_MEM_POOL_SIZE=2048 CONFIG_BT=y CONFIG_BT_PERIPHERAL=y CONFIG_BT_DEVICE_NAME="Nordic_UART_Service" CONFIG_BT_DEVICE_APPEARANCE=833 CONFIG_BT_MAX_CONN=1 CONFIG_BT_MAX_PAIRED=1 # Enable the NUS service CONFIG_BT_NUS=y # Enable bonding CONFIG_BT_SETTINGS=y CONFIG_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_MAP=y CONFIG_NVS=y CONFIG_SETTINGS=y # Enable DK LED and Buttons library CONFIG_DK_LIBRARY=y # This example requires more workqueue stack CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 # Config logger CONFIG_LOG=n CONFIG_USE_SEGGER_RTT=y CONFIG_LOG_BACKEND_RTT=y CONFIG_LOG_BACKEND_UART=n CONFIG_ASSERT=y CONFIG_BOARD_ENABLE_DCDC=n CONFIG_GPIO_AS_PINRESET=n CONFIG_CLOCK_CONTROL_NRF_K32SRC_250PPM=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y CONFIG_BT_CTLR_TX_BUFFER_SIZE=251 CONFIG_BT_RX_BUF_LEN=251 CONFIG_BT_GATT_CLIENT=y CONFIG_BT_ATT_TX_MAX=10 CONFIG_BT_ATT_PREPARE_COUNT=2 CONFIG_BT_CONN_TX_MAX=10 CONFIG_BT_L2CAP_TX_BUF_COUNT=10 CONFIG_BT_L2CAP_TX_MTU=247 CONFIG_BT_L2CAP_RX_MTU=247 CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y CONFIG_BT_CTLR_PHY_2M=y CONFIG_BT_CTLR_RX_BUFFERS=2 CONFIG_BT_CTLR_TX_BUFFERS=10 CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
No other modifications to sample code is made.
When I send 1000 chars string from terminal program connected the peripheral board UART, the
string is transferred instantly and displayed on the terminal connected to the central board.
When I do the opposite - send the string from the central device terminal program it tooks 3-4 seconds for the string to be displayed on the peripheral terminal.
Any help appreciated!
Thanks in advance!