Bluetooth Low Energy encyclopedia API client — look up BLE chips, GATT profiles, Bluetooth versions, beacon protocols, and IoT specifications from BLEFYI.
Project description
blefyi
Bluetooth Low Energy encyclopedia API client for Python. Look up BLE chips from Nordic, Espressif, TI, Dialog, Silicon Labs, Qualcomm, and STMicroelectronics, GATT profiles and services, Bluetooth versions 4.0-5.4, beacon protocols (iBeacon, Eddystone, AltBeacon), and IoT specifications from BLEFYI -- the comprehensive BLE reference with 261 records covering every major BLE system-on-chip in commercial and industrial use.
Extracted from BLEFYI, a Bluetooth Low Energy platform with 261 records spanning chip specifications, GATT profile definitions, version history, beacon protocol details, and IoT deployment guides used by embedded firmware engineers, IoT architects, and wearable device developers worldwide.
Explore BLE at blefyi.com -- Chip Explorer | Profile Reference | Version History | Beacon Protocols
Table of Contents
- Install
- Quick Start
- What You'll Find on BLEFYI
- API Endpoints
- Command-Line Interface
- MCP Server (Claude, Cursor, Windsurf)
- REST API Client
- Learn More About BLE
- Also Available
- Tag FYI Family
- FYIPedia Developer Tools
- License
Install
pip install blefyi[api] # API client (httpx)
pip install blefyi[cli] # + CLI (typer, rich)
pip install blefyi[mcp] # + MCP server
pip install blefyi[all] # Everything
Quick Start
from blefyi.api import BLEFYI
with BLEFYI() as api:
# Search chips, profiles, versions, beacons, glossary
results = api.search("nordic")
print(results)
# Look up a specific BLE chip
nrf = api.chip("nrf52840")
print(nrf["name"], nrf["manufacturer"]) # nRF52840 Nordic Semiconductor
# Compare two BLE chips side-by-side
diff = api.compare("nrf52840", "esp32-c3")
print(diff)
# Discover a random BLE chip
surprise = api.random()
print(surprise["name"])
What You'll Find on BLEFYI
BLEFYI is a comprehensive Bluetooth Low Energy encyclopedia covering BLE chips, GATT profiles, Bluetooth versions, beacon protocols, manufacturers, and IoT use cases. Bluetooth Low Energy (BLE), introduced as part of the Bluetooth 4.0 Core Specification in 2010, is a wireless personal area network technology designed for short-range, low-power communication -- the foundation of wearable fitness trackers, medical devices, asset tracking, smart home automation, and industrial IoT worldwide.
BLE Chips and System-on-Chip (SoC)
BLE chips are the silicon at the heart of every Bluetooth Low Energy device. Each SoC integrates a radio transceiver, ARM Cortex-M processor, RAM, flash memory, and peripheral interfaces into a single package. Key selection criteria include Bluetooth version support, TX power range (dBm), receiver sensitivity, RAM/flash capacity, GPIO count, and multi-protocol support (BLE, Zigbee, Thread, Matter).
| Manufacturer | Key Chips | Bluetooth | Core | Notable Feature |
|---|---|---|---|---|
| Nordic Semiconductor | nRF52840, nRF52832, nRF5340 | 5.0-5.3 | Cortex-M4F / M33+M16 | Best-in-class SDK (nRF Connect), Zephyr RTOS |
| Espressif | ESP32-C3, ESP32-C6, ESP32-H2 | 5.0-5.3 | RISC-V | Wi-Fi + BLE combo, open-source IDF |
| Texas Instruments | CC2640R2F, CC2652R | 5.0-5.1 | Cortex-M4F | Ultra-low power, medical-grade (IEC 60601) |
| Dialog Semiconductor | DA14695, DA14531 | 5.1-5.2 | Cortex-M33 / M0+ | Smallest BLE SoC (DA14531: 2.0x1.7mm) |
| Silicon Labs | EFR32BG22, EFR32BG24 | 5.2-5.3 | Cortex-M33 | Direction Finding (AoA/AoD), Bluetooth Mesh |
| Qualcomm | QCC5144, QCC3056 | 5.2-5.3 | Cortex-M4F | LE Audio, LC3 codec, active noise cancellation |
| STMicroelectronics | STM32WB55, BlueNRG-2 | 5.0-5.3 | Cortex-M4+M0 | STM32 ecosystem integration, dual-core |
Nordic nRF52840 is the most widely used BLE 5.0 SoC, powering devices from Fitbit trackers to industrial sensors. It features a 64 MHz Cortex-M4F with FPU, 1 MB flash, 256 KB RAM, USB 2.0, NFC-A tag emulation, and support for BLE, Zigbee, Thread, and ANT protocols on a single chip.
Learn more: Chip Explorer | Glossary
GATT Profiles and Services
The Generic Attribute Profile (GATT) defines how BLE devices expose structured data through a hierarchy of services, characteristics, and descriptors. The Bluetooth SIG maintains adopted profiles that ensure interoperability across manufacturers.
| Profile Category | Examples | UUID Range |
|---|---|---|
| Health & Fitness | Heart Rate (0x180D), Blood Pressure (0x1810), Glucose (0x1808) | 0x180D-0x181F |
| HID & Input | Human Interface Device (0x1812), Scan Parameters (0x1813) | 0x1812-0x1813 |
| Proximity & Location | Immediate Alert (0x1802), Link Loss (0x1803), Indoor Positioning (0x1821) | 0x1802-0x1821 |
| Device Information | Device Information (0x180A), Battery Service (0x180F) | 0x180A-0x180F |
| Automation | Automation IO (0x1815), Environmental Sensing (0x181A) | 0x1815-0x181A |
| Audio (LE Audio) | Common Audio, Media Control, Telephony and Media Audio | Bluetooth 5.2+ |
GATT hierarchy: A GATT server exposes Services (collections of related data), each containing Characteristics (individual data values with read/write/notify properties), which may have Descriptors (metadata like format, range, or presentation). A heart rate monitor's Heart Rate Service (0x180D) contains a Heart Rate Measurement characteristic (0x2A37) that sends notifications at each heartbeat.
Learn more: Profile Reference | Use Cases
Bluetooth Versions (4.0-5.4)
Each Bluetooth version introduces significant protocol enhancements. Understanding version differences is critical for chip selection and firmware development:
| Version | Year | Key Features | Impact |
|---|---|---|---|
| 4.0 | 2010 | BLE introduction, GATT/ATT, 1 Mbps PHY | Created the IoT ecosystem |
| 4.1 | 2013 | Dual-mode topology, L2CAP CoC, LTE coexistence | Hub/spoke + mesh topologies |
| 4.2 | 2014 | LE Data Length Extension (251B), LE Secure Connections, IPv6 | 2.5x throughput, stronger encryption |
| 5.0 | 2016 | 2 Mbps LE 2M PHY, LE Coded PHY (long range), 8x advertising | Double speed or 4x range |
| 5.1 | 2019 | Direction Finding (AoA/AoD), GATT Caching | Sub-meter indoor positioning |
| 5.2 | 2020 | LE Audio (LC3 codec), Isochronous Channels, EATT | Hearing aids, Auracast broadcast |
| 5.3 | 2021 | Connection Subrating, Channel Classification Enhancement | Dynamic power optimization |
| 5.4 | 2023 | PAwR (Periodic Advertising with Responses), Encrypted Advertising | Electronic shelf labels |
LE Coded PHY (Bluetooth 5.0): Trades data rate (125 kbps or 500 kbps) for dramatically increased range through Forward Error Correction (FEC). In open-air tests, LE Coded PHY achieves reliable communication at 1 km+ versus ~100 m for LE 1M PHY -- enabling agricultural sensors, campus-wide asset tracking, and rural IoT deployments.
Learn more: Version History | Glossary
Beacon Protocols
Beacons are BLE devices that broadcast advertising packets at regular intervals for proximity detection, indoor positioning, and context-aware applications:
| Protocol | Creator | Advertising Format | Identifier | Range |
|---|---|---|---|---|
| iBeacon | Apple | Manufacturer-specific (0x004C) | UUID + Major + Minor | ~70m |
| Eddystone | 4 frame types (UID, URL, TLM, EID) | 10B namespace + 6B instance | ~70m | |
| AltBeacon | Radius Networks | Open specification | 20-byte beacon ID | ~70m |
iBeacon dominates retail proximity marketing with a simple UUID/Major/Minor addressing scheme. A single UUID identifies the organization, Major identifies the store location, and Minor identifies the specific shelf or zone. iOS apps receive beacon region entry/exit events even when backgrounded.
BLE vs Bluetooth Classic
| Feature | Bluetooth Low Energy | Bluetooth Classic |
|---|---|---|
| Power Consumption | ~0.01-0.5W (coin cell for years) | ~1W (regular charging) |
| Data Rate | 1-2 Mbps (LE 1M/2M PHY) | 1-3 Mbps (EDR) |
| Range | 100m+ (Coded PHY: 1km+) | ~100m |
| Latency | ~3ms connection | ~100ms connection |
| Topology | Point-to-point, broadcast, mesh | Point-to-point, piconet (7 active) |
| Audio | LE Audio (LC3, Auracast broadcast) | A2DP (SBC, AAC, aptX) |
| Use Cases | Sensors, wearables, beacons, IoT | Audio streaming, file transfer |
Advertising Modes
BLE devices communicate their presence through advertising packets on three dedicated channels (37, 38, 39 at 2402, 2426, 2480 MHz):
| Mode | Connectable | Scannable | Use Case |
|---|---|---|---|
| ADV_IND | Yes | Yes | Default -- discoverable and connectable |
| ADV_DIRECT_IND | Yes (directed) | No | Fast reconnection to known central |
| ADV_NONCONN_IND | No | No | Beacons, broadcast-only |
| ADV_SCAN_IND | No | Yes | Additional data via scan response |
| Extended (BT 5.0+) | Configurable | Configurable | 255 bytes/PDU, secondary channels |
BLE Mesh Networking
Bluetooth Mesh (adopted 2017) enables many-to-many device communication using a managed flood relay architecture. Nodes publish/subscribe to addresses, relay nodes forward messages across the network, and proxy nodes bridge BLE Mesh to standard GATT clients. Key applications include commercial lighting control (up to 32,000 nodes), building automation, and industrial sensor networks.
| Mesh Feature | Specification |
|---|---|
| Max Nodes | 32,767 per network |
| Topology | Managed flood relay |
| Security | Network key + Application key + Device key (AES-CCM) |
| Provisioning | PB-ADV (advertising) or PB-GATT (connection) |
| Models | Generic OnOff, Level, Lighting, Sensor |
Learn more: Beacon Protocols | Use Cases
API Endpoints
Free, no authentication required. JSON responses with CORS enabled.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/chip/{slug}/ |
BLE chip detail with specs |
| GET | /api/profile/{slug}/ |
GATT profile with characteristics |
| GET | /api/version/{slug}/ |
Bluetooth version detail |
| GET | /api/beacon/{slug}/ |
Beacon protocol detail |
| GET | /api/usecase/{slug}/ |
Use case with related chips |
| GET | /api/manufacturer/{slug}/ |
Manufacturer with chip lineup |
| GET | /api/term/{slug}/ |
Glossary term definition |
| GET | /api/search/?q={query} |
Search across all content types |
| GET | /api/compare/?a={slug}&b={slug} |
Compare two chips |
| GET | /api/random/ |
Random chip discovery |
| GET | /api/openapi.json |
OpenAPI 3.1.0 specification |
Example
# Search for Nordic BLE chips
curl -s "https://blefyi.com/api/search/?q=nordic" | python -m json.tool
Full API documentation at blefyi.com/api/. OpenAPI 3.1.0 spec: blefyi.com/api/openapi.json.
Command-Line Interface
blefyi search "nrf52" # Search all content
blefyi chip nrf52840 # Chip detail
blefyi compare nrf52840 esp32-c3 # Side-by-side comparison
blefyi random # Discover a random chip
MCP Server (Claude, Cursor, Windsurf)
{
"mcpServers": {
"blefyi": {
"command": "uvx",
"args": ["--from", "blefyi[mcp]", "python", "-m", "blefyi.mcp_server"]
}
}
}
Tools: ble_search, ble_lookup, ble_compare
REST API Client
from blefyi.api import BLEFYI
with BLEFYI() as api:
api.search("nordic") # Full-text search
api.chip("nrf52840") # Chip detail
api.profile("heart-rate") # GATT profile
api.version("5-0") # Bluetooth version
api.beacon("ibeacon") # Beacon protocol
api.usecase("asset-tracking") # Use case
api.manufacturer("nordic-semiconductor") # Manufacturer
api.glossary_term("gatt") # Glossary term
api.compare("nrf52840", "esp32-c3") # Compare two chips
api.random() # Random discovery
api.openapi() # OpenAPI 3.1.0 spec
Learn More About BLE
- Browse: Chip Explorer · Profile Reference · Beacon Protocols
- Reference: Version History · Use Cases · Glossary
- API: REST API Docs · OpenAPI Spec
Also Available
| Platform | Install | Link |
|---|---|---|
| npm | npm install blefyi |
npm |
| Go | go get github.com/fyipedia/blefyi-go |
pkg.go.dev |
| Rust | cargo add blefyi |
crates.io |
| Ruby | gem install blefyi |
rubygems.org |
| MCP | uvx --from "blefyi[mcp]" python -m blefyi.mcp_server |
Config |
Tag FYI Family
Part of the FYIPedia open-source developer tools ecosystem -- automatic identification and data capture technologies.
| Site | Domain | Focus |
|---|---|---|
| BarcodeFYI | barcodefyi.com | 518 records -- barcode symbologies, standards, GS1 prefixes |
| QRCodeFYI | qrcodefyi.com | 425 records -- QR code types, versions, encoding modes |
| NFCFYI | nfcfyi.com | 288 records -- NFC chips, NDEF records, standards |
| BLEFYI | blefyi.com | 261 records -- BLE chips, GATT profiles, beacons |
| RFIDFYI | rfidfyi.com | 318 records -- RFID tags, frequency bands, EPC schemes |
| SmartCardFYI | smartcardfyi.com | 280 records -- smart cards, EMV, Java Card, platforms |
FYIPedia Developer Tools
| Package | PyPI | npm | Description |
|---|---|---|---|
| barcodefyi | PyPI | npm | Barcode symbologies, standards -- barcodefyi.com |
| qrcodefyi | PyPI | npm | QR code types, versions, encoding -- qrcodefyi.com |
| nfcfyi | PyPI | npm | NFC chips, NDEF, standards -- nfcfyi.com |
| blefyi | PyPI | npm | BLE profiles, beacons, chips -- blefyi.com |
| rfidfyi | PyPI | npm | RFID tags, readers, frequencies -- rfidfyi.com |
| smartcardfyi | PyPI | npm | Smart cards, EMV, platforms -- smartcardfyi.com |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file blefyi-0.1.1.tar.gz.
File metadata
- Download URL: blefyi-0.1.1.tar.gz
- Upload date:
- Size: 670.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
296f23185baf2781819d27b268676c35da83869b3a927e07483c81c054f2478a
|
|
| MD5 |
a2e9c6283d5cd9d3905180348ca0f55a
|
|
| BLAKE2b-256 |
a2bf7ad699a21278d82046feef562d9351bfc399ddf7cde655139fa95c0cf3f4
|
File details
Details for the file blefyi-0.1.1-py3-none-any.whl.
File metadata
- Download URL: blefyi-0.1.1-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
336aaa00d3ac21d21f27e7e60c9edd6ee9a063ccb0490ce189131f6f46a35ccf
|
|
| MD5 |
1b592c8b182671a19cc53291a3978eb2
|
|
| BLAKE2b-256 |
58dc3c95c1ab83d8eb1be814cba2f83579bf707de74590c7ea09e62a0205a92b
|