Skip to content

Releases: h2zero/NimBLE-Arduino

1.3.5

14 Jan 16:48
Compare
Choose a tag to compare

[1.3.5] - 2022-01-14

Added

  • CONFIG_NIMBLE_CPP_DEBUG_LEVEL macro in nimconfig.h to allow setting the log level separately from the Arduino core log level.

Fixed

  • Memory leak when initializing/deinitializing the BLE stack caused by new FreeRTOS timers be created on each initialization.

1.3.4

10 Jan 01:57
Compare
Choose a tag to compare
  • Workaround for latest Arduino-esp32 core that causes tasks not to block when required, which caused functions to return prematurely resulting in exceptions/crashing.
  • The wrong length value was being used to set the values read from peer attributes. This has been corrected to use the proper value size.

Full Changelog: 1.3.3...1.3.4

1.3.3

25 Nov 02:55
Compare
Choose a tag to compare

Workaround added for FreeRTOS bug that affected timers, causing scan and advertising timer expiration's to not correctly trigger callbacks.

1.3.2

21 Nov 02:39
Compare
Choose a tag to compare
  • Added missing macros for scan filter.
  • Added NimBLEClient::getLastError : Gets the error code of the last function call that produces a return code from the stack.

1.3.1

05 Aug 00:48
Compare
Choose a tag to compare

Fixed

  • Corrected a compiler/linker error when an application or a library uses bluetooth classic due to the redefinition of btInUse.

1.3.0

03 Aug 03:37
Compare
Choose a tag to compare

Added

  • NimBLECharacteristic::removeDescriptor: Dynamically remove a descriptor from a characterisic. Takes effect after all connections are closed and sends a service changed indication.

  • NimBLEService::removeCharacteristic: Dynamically remove a characteristic from a service. Takes effect after all connections are closed and sends a service changed indication

  • NimBLEServerCallbacks::onMTUChange: This is callback is called when the MTU is updated after connection with a client.

  • ESP32C3 support

  • Whitelist API:

    • NimBLEDevice::whiteListAdd: Add a device to the whitelist.
    • NimBLEDevice::whiteListRemove: Remove a device from the whitelist.
    • NimBLEDevice::onWhiteList: Check if the device is on the whitelist.
    • NimBLEDevice::getWhiteListCount: Gets the size of the whitelist
    • NimBLEDevice::getWhiteListAddress: Get the address of a device on the whitelist by index value.
  • Bond management API:

    • NimBLEDevice::getNumBonds: Gets the number of bonds stored.
    • NimBLEDevice::isBonded: Checks if the device is bonded.
    • NimBLEDevice::deleteAllBonds: Deletes all bonds.
    • NimBLEDevice::getBondedAddress: Gets the address of a bonded device by the index value.
  • NimBLECharacteristic::getCallbacks to retrieve the current callback handler.

  • Connection Information class: NimBLEConnInfo.

  • NimBLEScan::clearDuplicateCache: This can be used to reset the cache of advertised devices so they will be immediately discovered again.

Changed

  • FreeRTOS files have been removed as they are not used by the library.
  • Services, characteristics and descriptors can now be created statically and added after.
  • Excess logging and some asserts removed.
  • Use ESP_LOGx macros to enable using local log level filtering.

Fixed

  • NimBLECharacteristicCallbacks::onSubscribe Is now called after the connection is added to the vector.
  • Corrected bonding failure when reinitializing the BLE stack.
  • Writing to a characterisic with a std::string value now correctly writes values with null characters.
  • Retrieving remote descriptors now uses the characterisic end handle correctly.
  • Missing data in long writes to remote descriptors.
  • Hanging on task notification when sending an indication from the characteristic callback.
  • BLE controller memory could be released when using Arduino as a component.
  • Complile errors with NimBLE release 1.3.0.

Release version 1.2.0

08 Feb 18:51
Compare
Choose a tag to compare

Many additions and changes, check the changelog and documentation for complete details.

Release version 1.1.0

21 Jan 03:21
Compare
Choose a tag to compare

Many improvements and additions made, check CHANGELOG.md for details.

Release version 1.0.2

14 Sep 04:06
Compare
Choose a tag to compare
  • NimBLEAdvertising::start Now takes 2 optional parameters, the first is the duration to advertise for (in seconds), the second is a
    callback that is invoked when advertsing ends and takes a pointer to a NimBLEAdvertising object (similar to the NimBLEScan::start API).

  • Maximum BLE connections can now be altered by only changing the value of CONFIG_BT_NIMBLE_MAX_CONNECTIONS in nimconfig.h.
    Any changes to the controller max connection settings in sdkconfig.h will now have no effect when using this library.

  • Revert the previous change to fix the advertising start delay. Instead a replacement fix that routes all BLE controller commands from
    a task running on core 0 (same as the controller) has been implemented. This improves response times and reliability for all BLE functions.

Release version 1.0.1

03 Sep 01:43
Compare
Choose a tag to compare

Added:

  • Empty NimBLEAddress constructor: NimBLEAddress() produces an address of 00:00:00:00:00:00 type 0.
  • Documentation of the difference of NimBLEAddress::getNative vs the original bluedroid library.

Changed:

  • notify_callback typedef is now defined as std::function to enable the use of std::bind to call a class member function.

Fixed

  • Fix advertising start delay when first called.