Page 1 of 1

ESP32-C3 BLE connection drops at very short range

Posted: Sun Jan 11, 2026 4:15 pm
by arTI23
I’m experiencing unstable BLE behavior with an ESP32-C3 and would like some insight.

Setup -
Sender: ESP32-Dev Module sending sensor data from DHT22 and BMI160 in 1 second intervals) - No issues in this board for the problem said below.
Communication tested: BLE
Framework: Arduino (PlatformIO)
Arduino ESP32 Core v2.0.17

Receiver: ESP32-C3 driving one common cathode 7-segment display using GPIO pins directly
[env:esp32-c3-devkitc-02]
platform = espressif32
board = esp32-c3-devkitc-02
framework = arduino
monitor_speed = 115200
build_flags =
-DARDUINO_USB_MODE=1
-DARDUINO_USB_CDC_ON_BOOT=1
lib_deps =
(Built-in BLE library is used - ESP32 BLE Arduino)

Power: Using USB-C type wires and connecting to laptop on 3.3V for both boards

BLE connects immediately when devices are close but when I move the ESP32-C3 setup away, the connection mostly gets cut beyond 1.6 m, although some documentations say BLE is supposed to work fine for around 100 m.

The reconnect logic is inside loop(), but once disconnected, it doesn't reconnect again. I have to manually reset both the sender ESP32 Dev and then the ESP32-C3 module again at close range to make it connect immediately. On one occasion, data was received beyond 1.6 m, but that's all. The BLE connection interval and MTU are left at default values. I haven't made any changes on the boards itself either.

Do I need to manually adjust in code anywhere to maintain stable connections for a longer range and not resetting every time it disconnects?