BLE Speed and Notify

Hi,

Using Argon with OS 4.0.0 configured as a BLE central device to do a simple data transfer routine to an ESL display.

SCAN->CONNECT->TRANSFER->DISCONNECT

2 characteristics. One to write and other that notifies ACK after a write.

const BleUuid esl_write_uuid("FEA1");
const BleUuid esl_notify_uuid("FEA2");

BleCharacteristic esl_write;
BleCharacteristic esl_notify;

Questions are:

  1. What kind of transfer rates are others seeing? With an Android (Broadcom) device I can move data @ ~3KB/s to this device.

With the Argon its more like 0.5KB/s. I have another nrf based device here too and that screams at >10KB/s. Since the Argon is nrf based I would have assumed I could achieve similar.

All examples have the same negotiated MTU and packet size.

Question 2:

I find it odd that I have to set the notify of the characteristic before every write or else I get no response. Is this expected behavior? I do not see this behavior with the other central devices so the ESL device is not resetting this.

esl_notify.subscribe(true);
esl_write.setValue(data, data_sz);

I wonder if the oddity above might suggest why my transfer rates are so slow relative other central devices. I enabled trace but I am not seeing anything there that suggest and issue with the connection.

Any thoughts appreciated.