Page 1 of 1

ESP32 arduino dev kit BLE max speed

Posted: Thu Jan 12, 2023 1:33 pm
by oaktree042
Hello! I'm doing my internship and I'm totally a novice in the themes of Arduino, ESP32 and C++. The main task is to send data from one ESP32 to another ESP32 on maximum possible speed (data throughput). During my research I have found that theoretically BLE can achieve speed up to 1 Mbit/s. But with my server and client programs can achieve only 4.6 kbit/s without MTU setup and 5.6 kbit/s with MTU = 517.

Main question: Is it possible to achieve more speed with my equipment setup? I know that the BLE standard is not suitable for high speed data transfer, but my main task is to find the actual max data transfer speed.

I’m using two ESP32_Devkit_V4 and Arduino IDE 2.0.3. External antennas and range between them less 0.15 - 0.2 m. Using some different examples from the internet I have built client and server programs. Server is sending data to the client.
I used libraries:
  1. #include <BLEDevice.h>
  2. #include <BLEServer.h>
  3. #include <BLEUtils.h>
  4. #include <BLE2902.h>
I set up the delay between messages = 90 ms
  1. delay(90)
Every message length is 512 bits, for example the first one is:
  1.  
  2. valuesend= "(111111)(beight)(beight)(beight)(beight)(beight)(beight)(beight)";
  3. customCharacteristic.setValue(valuesend.c_str());
  4.  
If I make the message length more than 512 bits I will lose some messages in the receiver part. If I set up a delay between messages less than 90 ms, I will lose some messages too.
I attached my client and server programs here in txt files.

Thank you for your replies, Gleb.