275 lines
12 KiB
HTML
275 lines
12 KiB
HTML
<h1 id="awesome-ble-awesome">Awesome BLE <a
|
||
href="https://awesome.re"><img src="https://awesome.re/badge-flat.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<p><img src=".github/awesome-ble.png" /></p>
|
||
<p><strong>Bluetooth Low Energy (BLE)</strong>: Low-power wireless
|
||
communication protocol enabling efficient data exchange between devices,
|
||
ideal for IoT, wearables, and other battery-powered applications.</p>
|
||
<p>A collaborative list of Awesome Bluetooth Low Energy resources by <a
|
||
href="https://withintent.com">🔴 intent</a>.</p>
|
||
<p><img
|
||
src="https://img.shields.io/github/last-commit/dotintent/awesome-ble/main" /></p>
|
||
<h2 id="contents">Contents</h2>
|
||
<h3 id="hardware">Hardware</h3>
|
||
<ul>
|
||
<li><a href="#arduino">Arduino</a></li>
|
||
<li><a href="#esp">ESP</a></li>
|
||
<li><a href="#nordic">Nordic</a></li>
|
||
<li><a href="#raspberrypi">RaspberryPi</a></li>
|
||
</ul>
|
||
<h3 id="mobile">Mobile</h3>
|
||
<ul>
|
||
<li><p><a href="#android">Android</a></p></li>
|
||
<li><p><a href="#flutter">Flutter</a></p></li>
|
||
<li><p><a href="#kmm">KMM</a></p></li>
|
||
<li><p><a href="#ios">iOS</a></p></li>
|
||
<li><p><a href="#documentation">Documentation</a></p></li>
|
||
<li><p><a href="#framework">Framework</a></p></li>
|
||
<li><p><a href="#library">Library</a></p></li>
|
||
<li><p><a href="#tool">Tool</a></p></li>
|
||
<li><p><a href="#security">Security</a></p></li>
|
||
<li><p><a href="#web">Web</a></p></li>
|
||
</ul>
|
||
<h2 id="documentation">Documentation</h2>
|
||
<p><em>Official specifications, standards, and technical documentation
|
||
about the Bluetooth Low Energy (BLE) protocol.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://developer.android.com/guide/topics/connectivity/bluetooth/ble-overview">Android
|
||
Bluetooth Low Energy</a> - Overview about BLE in Android.</li>
|
||
<li><a
|
||
href="https://software-dl.ti.com/lprf/simplelink_cc2640r2_sdk/1.35.00.33/exports/docs/ble5stack/ble_user_guide/html/ble-stack/index.html">Developing
|
||
a Bluetooth Low Energy Application by TI</a> - A guide by TI about how
|
||
to develop a BLE app.</li>
|
||
<li><a
|
||
href="https://learn.adafruit.com/introduction-to-bluetooth-low-energy">Getting
|
||
Started with Bluetooth Low Energy (BLE)</a> - A comprehensive guide to
|
||
getting started with Bluetooth Low Energy development.</li>
|
||
<li><a
|
||
href="https://www.bluetooth.com/bluetooth-resources/intro-to-bluetooth-gap-gatt/">Intro
|
||
to Bluetooth Generic Attribute Profile (GATT)</a> - Intro about
|
||
GATT.</li>
|
||
<li><a
|
||
href="https://www.bluetooth.com/bluetooth-resources/intro-to-bluetooth-low-energy/">Intro
|
||
to Bluetooth Low Energy</a> - Intro about the basics of BLE.</li>
|
||
<li><a href="https://microsoft.github.io/IoT-For-Beginners/#/">IoT for
|
||
Beginners</a> - Azure Cloud Advocates at Microsoft are pleased to offer
|
||
a 12-week, 24-lesson curriculum all about IoT basics.</li>
|
||
<li><a
|
||
href="https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK">nRF51
|
||
SDK</a> - Software Development Kit (SDK) for developing Bluetooth Low
|
||
Energy applications on Nordic Semiconductor’s nRF51 series of
|
||
chips.</li>
|
||
<li><a href="https://www.microchip.com/wwwproducts/en/RN4870">RN4870/71
|
||
Bluetooth Low Energy Module User’s Guide</a> - User’s guide for the
|
||
RN4870/71 Bluetooth Low Energy module by Microchip.</li>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/Bluetooth_Low_Energy">Wikipedia
|
||
Bluetooth Low Energy</a> - The wiki page for Bluetooth Low Energy
|
||
(BLE).</li>
|
||
</ul>
|
||
<h2 id="framework">Framework</h2>
|
||
<p><em>Framework useful to develop your BLE peripherals.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/project-chip/connectedhomeip">Matter</a>
|
||
- Matter</li>
|
||
<li><a href="https://github.com/zephyrproject-rtos/zephyr">Zephyr</a> -
|
||
Zephyr</li>
|
||
</ul>
|
||
<h2 id="library">Library</h2>
|
||
<p><em>Software libraries and frameworks for integrating Bluetooth Low
|
||
Energy (BLE) functionality into various platforms, including mobile,
|
||
embedded systems, and IoT devices.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/IanHarvey/bluepy">bluepy</a> - A Python
|
||
interface for Bluetooth LE on Linux.</li>
|
||
<li><a href="https://github.com/PureSwift/Bluetooth">Bluetooth</a> -
|
||
Bluetooth is a Swift multiplatform package with multiple libraries
|
||
supporting the Bluetooth SIG specifications.</li>
|
||
<li><a href="http://www.bluez.org/">bluez</a> - The official Linux
|
||
Bluetooth protocol stack.</li>
|
||
<li><a href="https://github.com/google/bumble">bumble</a> - Bumble is a
|
||
full-featured Bluetooth stack written entirely in Python.</li>
|
||
<li><a href="https://github.com/peplin/pygatt">pygatt</a> - A Python
|
||
library for interacting with BLE devices.</li>
|
||
<li><a
|
||
href="https://github.com/OpenBluetoothToolbox/SimpleBLE">SimpleBLE</a> -
|
||
The all-in-one C/C++/Python/Rust Bluetooth LE library for MacOS, iOS,
|
||
Windows, and Linux.</li>
|
||
<li><a
|
||
href="https://github.com/Moddable-OpenSource/moddable">Moddable</a> -
|
||
JavaScript libraries and tools for microcontrollers development.
|
||
Includes BLE functionality.</li>
|
||
</ul>
|
||
<h2 id="ios">iOS</h2>
|
||
<p><em>iOS libraries, tools, and resources for developing Bluetooth Low
|
||
Energy (BLE) applications on Apple devices.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/manolofdez/AsyncBluetooth">AsyncBluetooth</a> -
|
||
A small library that adds concurrency to CoreBluetooth APIs.</li>
|
||
<li><a
|
||
href="https://github.com/StarryInternet/CombineCoreBluetooth">CombineCoreBluetooth</a>
|
||
- CombineCoreBluetooth is a library that bridges Apple’s CoreBluetooth
|
||
framework and Apple’s Combine framework.</li>
|
||
<li><a href="https://github.com/NordicSemiconductor/IOS-DFU-Library">iOS
|
||
DFU Library</a> - DFU application allows to flash new firmware on the
|
||
DK.</li>
|
||
<li><a href="https://github.com/Polidea/RxBluetoothKit">Rx Bluetooth
|
||
Kit</a> - RxBluetoothKit is a Bluetooth library that makes interaction
|
||
with BLE devices much more pleasant using RxSwift.</li>
|
||
<li><a href="https://github.com/codeinversion/sensors-swift">Swifty
|
||
Sensors</a> - Bluetooth LE Sensor Manager for iOS and macOS.</li>
|
||
<li><a
|
||
href="https://github.com/StanfordSpezi/SpeziBluetooth">SpeziBluetooth</a>
|
||
- Connect and communicate with Bluetooth devices using modern
|
||
programming paradigms.</li>
|
||
</ul>
|
||
<h2 id="kmm">KMM</h2>
|
||
<p><em>Resources and libraries for building Bluetooth Low Energy (BLE)
|
||
applications using the Kotlin Multiplatform Mobile (KMM)
|
||
framework.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/Reedyuk/blue-falcon">BlueFalcon</a> - A
|
||
Bluetooth kotlin multiplatform “Cross-Platform” library for iOS and
|
||
Android.</li>
|
||
<li><a href="https://github.com/JuulLabs/kable">Kable</a> - Kotlin
|
||
Asynchronous Bluetooth Low Energy provides a simple Coroutines-powered
|
||
API for interacting with Bluetooth Low Energy devices.</li>
|
||
</ul>
|
||
<h2 id="android">Android</h2>
|
||
<p><em>Android libraries, tools, and resources for integrating Bluetooth
|
||
Low Energy (BLE) functionality into Android applications.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/android/connectivity-samples/tree/main/BluetoothLeGatt">Android
|
||
BluetoothGatt Sample</a> - An example application demonstrating how to
|
||
use BluetoothGatt API on Android.</li>
|
||
<li><a
|
||
href="https://github.com/googlesamples/android-BluetoothChat">android-BluetoothChat</a>
|
||
- An Android Bluetooth chat application.</li>
|
||
<li><a href="https://github.com/Jasonchenlijian/FastBle">FastBle</a> -
|
||
An Android Bluetooth Low Energy (BLE) fast development framework.</li>
|
||
<li><a
|
||
href="https://github.com/NordicSemiconductor/Android-BLE-Library">Nordic
|
||
Semiconductor BLE SDK for Android</a> - Official Bluetooth Low Energy
|
||
SDK provided by Nordic Semiconductor for Android development.</li>
|
||
<li><a
|
||
href="https://github.com/dariuszseweryn/RxAndroidBle">RxAndroidBle</a> -
|
||
An Android Bluetooth Low Energy (BLE) Library with RxJava3
|
||
interface.</li>
|
||
<li><a href="https://github.com/movisens/SmartGattLib">SmartGattLib</a>
|
||
- SmartGattLib is a Java library that simplifies the work with Bluetooth
|
||
SMART devices (a.k.a. Bluetooth Low Energy in Bluetooth 4.0). It
|
||
provides all UUIDs of the adopted GATT specification and an convenient
|
||
way to interpret the characteristics (e.g. Heart Rate,
|
||
BatteryLevel).</li>
|
||
</ul>
|
||
<h2 id="flutter">Flutter</h2>
|
||
<p><em>Flutter libraries, tools, and resources for developing Bluetooth
|
||
Low Energy (BLE) applications using the Flutter framework for both iOS
|
||
and Android.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/boskokg/flutter_blue_plus">Flutter Blue
|
||
Plus</a> - Flutter Blue Plus is a bluetooth plugin for Flutter, a new
|
||
app SDK to help developers build modern multi-platform apps.</li>
|
||
<li><a href="https://github.com/PhilipsHue/flutter_reactive_ble">Flutter
|
||
Reactive BLE</a> - Flutter Reactive BLE is a Flutter library that
|
||
handles BLE operations for multiple devices.</li>
|
||
<li><a href="https://github.com/dotintent/FlutterBleLib">Flutter
|
||
BLELib</a> - Bluetooth Low Energy library for Flutter with support for
|
||
simulating peripherals.</li>
|
||
</ul>
|
||
<h2 id="tool">Tool</h2>
|
||
<p><em>Development and testing tools for Bluetooth Low Energy (BLE)
|
||
applications, including analyzers, debuggers, and simulators.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/bettercap/bettercap">Bettercap</a> - A
|
||
easily extensible and portable framework for security researchers to
|
||
test BLE security.</li>
|
||
<li><a
|
||
href="https://github.com/NordicSemiconductor/pc-nrfconnect-core">nRF
|
||
Connect</a> - An application framework for developing, testing, and
|
||
provisioning devices based on Nordic Semiconductor chips.</li>
|
||
<li><a
|
||
href="https://play.google.com/store/apps/details?id=com.withintent.ble.simulator&hl=en">BLE
|
||
Simulator</a> - A mobile app able to clone BLE devices and script their
|
||
interaction. Useful to debug and quick prototyping.</li>
|
||
<li><a
|
||
href="https://www.bluetooth.com/blog/a-new-way-to-debug-iosbluetooth-applications/">PacketLogger</a>
|
||
- A macOS tool to capture BLE packets and HCI logs from iOS devices,
|
||
useful for debugging Bluetooth communication and protocol issues.</li>
|
||
</ul>
|
||
<h2 id="web">Web</h2>
|
||
<p><em>Web-based resources, frameworks, and tools for building Bluetooth
|
||
Low Energy (BLE) applications using JavaScript and web
|
||
technologies.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/WebBluetoothCG/demos">Web Bluetooth
|
||
Samples</a> - A collection of Web Bluetooth API usage examples.</li>
|
||
</ul>
|
||
<h2 id="security">Security</h2>
|
||
<p><em>Security related resources around BLE.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/engn33r/awesome-bluetooth-security">Awesome
|
||
Bluetooth Security</a> - An awesome repo related to Bluetooth (and also
|
||
BLE) realted security</li>
|
||
</ul>
|
||
<h2 id="arduino">Arduino</h2>
|
||
<p><em>A list of resources dedicated to Arduino hardware</em></p>
|
||
<ul>
|
||
<li><a href="https://store.arduino.cc/">Arduino</a> - Official
|
||
website</li>
|
||
<li><a
|
||
href="https://github.com/arduino-libraries/ArduinoBLE">ArduinoBLE</a> -
|
||
ArduinoBLE library for Arduino</li>
|
||
</ul>
|
||
<h2 id="esp">ESP</h2>
|
||
<p><em>A list of resources dedicated to EspressIf hardware</em></p>
|
||
<ul>
|
||
<li><a href="https://www.espressif.com/">EspressIf</a> - Official
|
||
Website</li>
|
||
<li><a href="https://github.com/espressif/esp-idf">ESP-IDF</a> -
|
||
Espressif IoT Development Framework</li>
|
||
<li><a href="https://dev.to/theembeddedrustacean/series/26733">ESP-32-C3
|
||
+ Rust + BLE</a> - ESP32 Bluetooth w/ Rust Series’ Articles</li>
|
||
</ul>
|
||
<h2 id="nordic">Nordic</h2>
|
||
<p><em>A list of resources dedicated to Arduino hardware</em></p>
|
||
<ul>
|
||
<li><a href="https://www.nordicsemi.com/">Nordic Semiconductor</a> -
|
||
Official Website</li>
|
||
</ul>
|
||
<h2 id="raspberrypi">RaspberryPi</h2>
|
||
<p><em>A list of resources dedicated to RaspberryPi hardware</em></p>
|
||
<ul>
|
||
<li><a href="https://www.raspberrypi.org/">Raspberry Pi</a> - Official
|
||
website</li>
|
||
</ul>
|
||
<h2 id="articles-and-case-studies">Articles and Case Studies</h2>
|
||
<p><em>Interesting articles and case studies from BLE
|
||
development</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://medium.com/@cbartel/ios-scan-and-connect-to-a-ble-peripheral-in-the-background-731f960d520d">Scan
|
||
and connect to BLE in background on iOS</a> - Article discussing case
|
||
study (for both firmware and app) of scanning and connecting to BLE
|
||
device in background</li>
|
||
<li><a
|
||
href="http://www.davidgyoungtech.com/2020/05/07/hacking-the-overflow-area">Deep
|
||
dive to iOS advertising in backgroud</a> - Delves into iOS’s proprietary
|
||
‘Overflow Area’ for background Bluetooth advertising and it’s
|
||
possibilities and limitations for background data exchange.</li>
|
||
</ul>
|
||
<h2 id="contributing">Contributing</h2>
|
||
<p>Please take a quick look at the <a
|
||
href=".github/CONTRIBUTING.md">contribution guidelines</a> first.</p>
|
||
<p>If you see an entry longer maintained or is not a good fit, please
|
||
submit a pull request to improve this file.</p>
|
||
<p>Thank you to all <a
|
||
href="https://github.com/dotintent/awesome-ble/graphs/contributors">contributors</a>;
|
||
you rock!</p>
|
||
<p><a href="https://github.com/dotintent/awesome-ble">ble.md
|
||
Github</a></p>
|