Files
awesome-awesomeness/html/ble.html
2025-07-18 22:22:32 +02:00

275 lines
12 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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 Semiconductors nRF51 series of
chips.</li>
<li><a href="https://www.microchip.com/wwwproducts/en/RN4870">RN4870/71
Bluetooth Low Energy Module Users Guide</a> - Users 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 Apples CoreBluetooth
framework and Apples 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&amp;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 iOSs proprietary
Overflow Area for background Bluetooth advertising and its
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>