finds.dev← search

// the find

h2zero/NimBLE-Arduino

★ 1,080 · C · Apache-2.0 · updated Jun 2026

A fork of the NimBLE library structured for compilation with Arduino, for use with ESP32, nRF5x.

NimBLE-Arduino is a drop-in replacement for the ESP32's default Bluedroid BLE stack, ported to work in the Arduino IDE and PlatformIO. It also supports Nordic nRF51/nRF52 via a companion Arduino core. The target audience is ESP32 developers who've hit the memory and stability ceiling of the stock BLE library.

1. Memory usage is genuinely much lower than Bluedroid — this matters on ESP32 where heap is tight and BLE + WiFi together already push the limits. 2. Tracks upstream esp-nimble closely (currently pinned to nimble-1.5.0-idf branch at a specific commit), so you get Bluetooth 5 features like extended advertising, coded PHY, and multi-advertiser that Bluedroid never properly exposed. 3. L2CAP CoC and stream APIs are included, which is rare in Arduino-land and useful for higher-throughput BLE data transfer without GATT overhead. 4. The v2.x migration guide exists and is specific — breaking changes are called out with before/after code, not just 'API changed'.

1. The nRF support is a second-class citizen — it requires a separate Arduino core (n-able-Arduino) maintained by the same author, which adds a dependency chain that can fall out of sync with core Arduino BSP updates. 2. nimconfig.h is a flat header file you hand-edit to configure the stack — no build system integration, so config changes aren't tracked per-project and it's easy to accidentally commit changes that break other platforms. 3. The library vendors the entire NimBLE stack source (~200+ C files) rather than depending on it as a component, making upstream security patches non-trivial to apply and causing the repo to bloat with low-level controller code most users will never touch. 4. No async/await or FreeRTOS task abstraction baked in — the async client example exists but callback hell is still the default pattern, which gets messy fast for anything beyond simple peripheral.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →