All Projects → h2zero → Nimble Arduino

h2zero / Nimble Arduino

Licence: apache-2.0
A fork of the NimBLE library structured for compilation with Ardruino, designed for use with ESP32.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Nimble Arduino

ruuvitag-demo
Demo of reading Bluetooth Low Energy sensor measurements of RuuviTag environmental sensors and feeding them to MQTT, a database and dashboards
Stars: ✭ 14 (-87.04%)
Mutual labels:  bluetooth, ble, bluetooth-low-energy, bluetooth-le
Node Ble
Bluetooth Low Energy (BLE) library written with pure Node.js (no bindings) - baked by Bluez via DBus
Stars: ✭ 159 (+47.22%)
Mutual labels:  ble, bluetooth-low-energy, bluetooth-le, bluetooth
Ble.net
Cross-platform Bluetooth Low Energy (BLE) library for Android, iOS, and UWP
Stars: ✭ 137 (+26.85%)
Mutual labels:  ble, bluetooth-low-energy, bluetooth-le, bluetooth
IOS-DFU-Library
OTA DFU Library for Mac and iOS, compatible with nRF5x SoCs
Stars: ✭ 400 (+270.37%)
Mutual labels:  bluetooth, ble, bluetooth-low-energy, bluetooth-le
ESP32 BLE OTA Arduino
OTA update on ESP32 via BLE
Stars: ✭ 41 (-62.04%)
Mutual labels:  esp32, ble, bluetooth-low-energy, bluetooth-le
Esp32 Ble Mouse
Bluetooth LE Mouse library for the ESP32 (Arduino IDE compatible)
Stars: ✭ 180 (+66.67%)
Mutual labels:  esp32, ble, bluetooth-le, bluetooth
Easyble
Android BLE framework
Stars: ✭ 155 (+43.52%)
Mutual labels:  ble, bluetooth-low-energy, bluetooth-le, bluetooth
Esp32 Ble Keyboard
Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible)
Stars: ✭ 533 (+393.52%)
Mutual labels:  esp32, ble, bluetooth-le, bluetooth
ESP32BleAdvertise
Simple library for BLE advertise using ESP32 in Arduino
Stars: ✭ 39 (-63.89%)
Mutual labels:  esp32, bluetooth, ble, bluetooth-low-energy
py-bluetooth-utils
Python module containing bluetooth utility functions, in particular for easy BLE scanning and advertising
Stars: ✭ 60 (-44.44%)
Mutual labels:  bluetooth, ble, bluetooth-low-energy, bluetooth-le
Ios Pods Dfu Library
OTA DFU Library for Mac and iOS, compatible with nRF5x SoCs
Stars: ✭ 349 (+223.15%)
Mutual labels:  ble, bluetooth-low-energy, bluetooth-le, bluetooth
Extendable
Blocks Based Bluetooth LE Connectivity framework for iOS/watchOS/tvOS/OSX. Quickly configure centrals & peripherals, perform read/write operations, and respond characteristic updates.
Stars: ✭ 88 (-18.52%)
Mutual labels:  ble, bluetooth-low-energy, bluetooth-le, bluetooth
pirowflo
All-in-one data interface for your Waterrower S4 Monitor or Smartrow
Stars: ✭ 73 (-32.41%)
Mutual labels:  bluetooth, bluetooth-low-energy, bluetooth-le
IoT-iBeacon
An Ionic app for indoor localization and navigation using BLE iBeacons.
Stars: ✭ 39 (-63.89%)
Mutual labels:  bluetooth, ble, bluetooth-low-energy
Rxbluetoothkotlin
Bluetooth low energy reactive framework for Android written in Kotlin
Stars: ✭ 68 (-37.04%)
Mutual labels:  ble, bluetooth-low-energy, bluetooth
JDY-08
JDY-08 Bluetooth transparent transmission module, with resource for KiCAD
Stars: ✭ 48 (-55.56%)
Mutual labels:  bluetooth, ble, bluetooth-low-energy
Rxbluetoothkit
iOS & OSX Bluetooth library for RxSwift
Stars: ✭ 1,213 (+1023.15%)
Mutual labels:  ble, bluetooth-low-energy, bluetooth
Blynk Library
Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc.
Stars: ✭ 3,305 (+2960.19%)
Mutual labels:  esp32, bluetooth-low-energy, bluetooth
Ble Security Attack Defence
✨ Purpose only! The dangers of Bluetooth Low Energy(BLE)implementations: Unveiling zero day vulnerabilities and security flaws in modern Bluetooth LE stacks.
Stars: ✭ 88 (-18.52%)
Mutual labels:  ble, bluetooth-low-energy, bluetooth-le
BleLab
Bluetooth LE Lab - UWP application for interaction with BLE GATT devices
Stars: ✭ 68 (-37.04%)
Mutual labels:  bluetooth, bluetooth-low-energy, bluetooth-le

Latest release Release Version Release Date

Need help? Have questions or suggestions? Join the Gitter

NimBLE-Arduino

A fork of the NimBLE stack restructured for compilation in the Ardruino IDE with a CPP library for use with ESP32.

Note for IDF users: This repo will not compile correctly in ESP-IDF. An ESP-IDF component version of this library can be found here.

This library significantly reduces resource usage and improves performance for ESP32 BLE applications as compared
with the bluedroid based library. The goal is to maintain, as much as reasonable, compatibility with the original
library but refactored to use the NimBLE stack. In addition, this library will be more actively developed and maintained
to provide improved capabilites and stability over the original.

Resource use improvement

(Original) BLE_client example comparison (Debug):

Arduino BLE Library

Sketch uses 1216377 bytes (58%) of program storage space.
Memory after connection: Free Heap: 171548

NimBLE-Arduino library

Sketch uses 617256 bytes (29%) of program storage space.
Memory after connection: Free Heap: 270336


(Original) BLE_notify example comparison (Debug):

Arduino BLE Library

Sketch uses 1208409 bytes (57%) of program storage space.
Memory after connection: Free Heap: 173300

NimBLE-Arduino library

Sketch uses 603432 bytes (28%) of program storage space.
Memory after connection: Free Heap: 269792

As shown: there is nearly a 50% reduction in flash use and approx. 100kB less ram consumed!

Installation

Arduino Library manager: Go to sketch -> Include Library -> Manage Libraries and search for NimBLE and install.

Alternatively: Download as .zip and extract to Arduino/libraries folder, or in Arduino IDE from Sketch menu -> Include library -> Add .Zip library.

#include "NimBLEDevice.h" at the beginning of your sketch.

Tested and working with esp32-arduino in Arduino IDE and platform IO.

Using

This library is intended to be compatible with the original ESP32 BLE functions and types with minor changes.

If you have not used the original Bluedroid library please refer to the New user guide.

If you are familiar with the original library, see: The migration guide for details about breaking changes and migration.

Also see Improvements_and_updates for information about non-breaking changes.

Full API documentation and class list can be found here.

For added performance and optimizations see Usage tips.

Check the Refactored_original_examples in the examples folder for highlights of the differences with the original library.

More advanced examples highlighting many available features are in examples/ NimBLE_Server, NimBLE_Client.

Beacon examples provided by @beegee-tokyo are in examples/ BLE_Beacon_Scanner, BLE_EddystoneTLM_Beacon, BLE_EddystoneURL_Beacon.

Change the settings in the src/nimconfig.h file to customize NimBLE to your project,
such as increasing max connections, default is 3, absolute maximum connections is 9.

Development Status

This Library is tracking the esp-nimble repo, nimble-1.2.0-idf master branch, currently @f4ae049.

Also tracking the NimBLE related changes in ESP-IDF, master branch, currently @3caa969.

Acknowledgments


Todo

  • Improve host reset handler
  • Implement random address handling
  • Implement bond management
  • Add Bluetooth Mesh

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].