Releases: h2zero/NimBLE-Arduino
Releases · h2zero/NimBLE-Arduino
2.4.0
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::createServerwill 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::getBondedAddressindex bounds validation.- ESP32 linker error when both central and peripheral roles are disabled.
- Compiler warnings when bonds are disabled.
Added
NimBLEStream,NimBLEStreamClient, andNimBLEStreamServerclasses and examples.NimBLECppVersion.hwith compile-time version macros.NimBLEDevice::getVersionruntime version string helper.- Matching passkey callbacks for both roles:
NimBLEServerCallbacks::onPassKeyEntryandNimBLEClientCallbacks::onPassKeyDisplay. - Bond migration helpers to convert bond storage between v1 and current formats while preserving existing bonds.
NimBLEUUIDconstructor overload forble_uuid_t*.- Optional
indexparameter forNimBLECharacteristic::getDescriptorByUUIDto access multiple descriptors with the same UUID.
Changed
NimBLEService::startis deprecated; services are now added when the server starts.NimBLEHIDDevice::startServices()is deprecated; services are now added when the server starts.
2.3.9
2.3.8
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
Fixed
- Server created client instance will now receive notifications/indications from the peer.
- Improper HCI delay when ACL buffers are full (esp32)
NimBLEClientdisconnect 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::retrieveDescriptorswill now use the handle range of the characteristic.
Added
NimBLECharacteristicCallbacks::onStatusoverload that takes aNimBLEConnInfo¶meter to indicate which client the status is for.
Changed
NimBLEDevice::setCustomGapHandleradded a void pointer parameter to allow passing user data to the custom handler.
2.3.6
2.3.5
2.3.4
2.3.3
2.3.2
Fixed
- Max connections not being applied correctly above 4.
- Build errors with arduino cores using IDF v4.x
onConnectcallback not being called when the status isBLE_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
What's Changed
- Add iBeacon example by @lazd in #971
- Fix builds when excluding roles by @h2zero in #964
- [Bugfix] NimBLEScan delete. by @h2zero in #976
- Fix build with esp32c2 by @h2zero in #974
- Fix server client read/write not returning when encryption is used. by @h2zero in #973
- Fix build with esp32c2 and upcoming arduino core version by @h2zero in #978
- Update docs by @h2zero in #979
New Contributors
Full Changelog: 2.3.0...2.3.1