Answers checklist.
General issue report
We have a setup where Linux writes a GATT characteristic on a esp32 ble peripheral.
When using the ble_throughput_server example that uses bluedroid, we can reach ~83kbyte/s throughput that is close to the theoretical max. (MTU 247, conn interval 7.5ms or 15ms)
However when using nimble/ble_conn_mgr (which we intend), we cannot go higher than 60kbyte/s. We set MTU to the same 247, update conn_params (connection interval to 7.5ms (or 15ms), ce_length to 7.5ms etc). What else affects nimble behavior?
esp32_ble_nimble.pcapng.gz
(in this log, chunks of 8192 are sent in series. Sending one chunk takes ~140ms. There are 5ms gaps between packets that are not there with bluedroid)
Answers checklist.
General issue report
We have a setup where Linux writes a GATT characteristic on a esp32 ble peripheral.
When using the ble_throughput_server example that uses bluedroid, we can reach ~83kbyte/s throughput that is close to the theoretical max. (MTU 247, conn interval 7.5ms or 15ms)
However when using nimble/ble_conn_mgr (which we intend), we cannot go higher than 60kbyte/s. We set MTU to the same 247, update conn_params (connection interval to 7.5ms (or 15ms), ce_length to 7.5ms etc). What else affects nimble behavior?
esp32_ble_nimble.pcapng.gz
(in this log, chunks of 8192 are sent in series. Sending one chunk takes ~140ms. There are 5ms gaps between packets that are not there with bluedroid)