Releases: h2zero/NimBLE-Arduino
Releases · h2zero/NimBLE-Arduino
2.5.0
Fixed
NimBLEClientconnection state tracking.- Calling disconnect will no longer return false if the HCI response is "Unknown ID".
- Remote descriptors not found when characteristic vector handles out of order.
setValuewith char inputs now calculates the data length correctly.
Added
NimBLEServer::sendServiceChangedIndicationSends the service changed indication to peers so they refresh their database.NimBLEScanuser configuarable scan response timer added to prevent unreported devices on long duration scans.NimBLEClientConnection retry on connection establishment failure, retry count configurable by app, default 2.- ANCS Example
l2CapDisconnect API
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.