Skip to content

Releases: h2zero/NimBLE-Arduino

2.4.0

20 Mar 20:48

Choose a tag to compare

Fixed

  • GATT attribute handles are now assigned from the registration callback so duplicate UUID attributes are identified correctly.
  • Dynamic service changes now properly remove characteristics/descriptors and reset the GATT database when advertising starts.
  • Missing notification/indication payload data when the value spans multiple mbufs, such as values larger than 255 bytes with small ACL buffers.
  • NimBLEDevice::createServer will longer crash when called before the stack is initialized.
  • Re-pairing after deleting all bonds now works by unpairing each stored bond instead of only deleting NVS data.
  • Whitelist bounds checks.
  • NimBLEDevice::getBondedAddress index bounds validation.
  • ESP32 linker error when both central and peripheral roles are disabled.
  • Compiler warnings when bonds are disabled.

Added

  • NimBLEStream, NimBLEStreamClient, and NimBLEStreamServer classes and examples.
  • NimBLECppVersion.h with compile-time version macros.
  • NimBLEDevice::getVersion runtime version string helper.
  • Matching passkey callbacks for both roles: NimBLEServerCallbacks::onPassKeyEntry and NimBLEClientCallbacks::onPassKeyDisplay.
  • Bond migration helpers to convert bond storage between v1 and current formats while preserving existing bonds.
  • NimBLEUUID constructor overload for ble_uuid_t*.
  • Optional index parameter for NimBLECharacteristic::getDescriptorByUUID to access multiple descriptors with the same UUID.

Changed

  • NimBLEService::start is deprecated; services are now added when the server starts.
  • NimBLEHIDDevice::startServices() is deprecated; services are now added when the server starts.

2.3.9

09 Mar 00:09

Choose a tag to compare

Fixed

  • Crash when scanning with esp32c6/c5/c2/h2.
  • Scan duplicate filter not resetting on scan restart.

Added

  • NimBLEConnInfo::toString method to get a string representation of the connection information for logging/debugging purposes.

2.3.8

03 Mar 02:59

Choose a tag to compare

Fixed

  • Crash on init with esp32 devices with Arduino core 3.3.7 and later.
  • Crash on deinit with esp32c6/c5/c2/h2.
  • Memory leak on init/deinit with esp32c6/c5/c2/h2 when NimBLE is enabled in the Arduino core.
  • Multiple definition compilation errors with esp32c2 when using an Arduino core with NimBLE enabled.

2.3.7

09 Dec 01:28

Choose a tag to compare

Fixed

  • Server created client instance will now receive notifications/indications from the peer.
  • Improper HCI delay when ACL buffers are full (esp32)
  • NimBLEClient disconnect event not triggered if the peer address doesn't match a connection.
  • Attribute value sizes now correctly calculated for types larger than 8 bits.
  • NimBLERemoteCharacteristic::retrieveDescriptors will now use the handle range of the characteristic.

Added

  • NimBLECharacteristicCallbacks::onStatus overload that takes a NimBLEConnInfo& parameter to indicate which client the status is for.

Changed

  • NimBLEDevice::setCustomGapHandler added a void pointer parameter to allow passing user data to the custom handler.

2.3.6

05 Sep 21:35

Choose a tag to compare

Fixed

  • NimBLEAdvertisedDevice::isConnectable returning incorrect result.
  • Extended advertisements not reporting full data.

Added

  • Support up to 1650 bytes of advertisement with extended advertising.

2.3.5

02 Sep 21:30

Choose a tag to compare

Fixed

  • esp32c3/s3 max connections not being properly applied.

2.3.4

10 Aug 20:18

Choose a tag to compare

Fixed

  • NimBLEClientCallbacks::OnConnectFail not called when connection not established.
  • Removed invalid reference to refactored original examples in README.md.
  • Cleanup redefinition warnings for Arduino core 3.3+.

2.3.3

27 Jul 20:57

Choose a tag to compare

Fixed

  • Multiple definition errors for some functions with esp32c6/h2/c2 with Arduino core 3.3+.

2.3.2

28 Jun 00:35

Choose a tag to compare

Fixed

  • Max connections not being applied correctly above 4.
  • Build errors with arduino cores using IDF v4.x
  • onConnect callback not being called when the status is BLE_ERR_UNSUPP_REM_FEATURE, workaround for upstream issue.

Changed

  • FreeRTOS port uses the old porting layer for all but the latest esp32 mcus.
  • By default BLE secure connections is disabled now to reduce issues when it's enabled but not used by the application.
  • BLE mesh files are now only compiled if mesh is enabled in the project configuration.

2.3.1

11 Jun 16:31

Choose a tag to compare

What's Changed

New Contributors

  • @lazd made their first contribution in #971

Full Changelog: 2.3.0...2.3.1