Hello,
currently I am working on a multilink project. I have a nRF52840DK as central and 4 evaluation boards (BMD-300-EVAL, contains nRF52832) as peripherals.
Code Central: nRF_ble_app_uart_c_multilink (https://github.com/NordicPlayground/nrf52-ble-app-uart-c-multilink)
Code Peripheral: ble_app_uart
Each peripheral generates 8kBytes per second. So each peripheral needs to send data at 64kBit/s to the central. This should be possible in theory. But in reality I am unable to get only one peripheral to work. At the moment I trigger the ble_nus_data_send() function of ble_app_uart with a timer every 30ms and a payload of 240 Bytes to get this 64kBit/s. But when 3 to 10 pakets are queued I get a NRF_ERROR_RESOURCES.
I already use every option which increases throughput:
<info> app: Phy Updated. TX: 2, RX: 2 //2MBPS <info> app: Data len is set to 0xF4(244) //huge MTU <info> app: LL packet size is set to 251 //Data Length Extension #define NRF_SDH_BLE_GAP_EVENT_LENGTH 20 //Event Length Extension hvn_tx_queue_size = 20
I spent a lot of time with testing different configurations of the connection parameter, but nothing seems to work. I always get NRF_ERROR_RESOURCES immediately. Normally I should be able to transfer huge amounts of data with this high throughput parameters, as I experienced it in the throughput example.
Can you please help, to get this 64 kBit/s per peripheral to work.
1. Which connection parameters do I need?
2. Where is the problem?
Thank you very much in advance. I really need some help at this point.
Best regards,
Michael