connectivity-ble
Bluetooth Low Energy (BLE) integration for Zephyr RTOS. Covers GATT Services/Characteristics, GAP advertising, connection parameters, power optimization strategies, and the professional Send-When-Idle design pattern. Trigger when adding BLE connectivity, optimizing battery life for wireless devices, or implementing custom GATT profiles.
适合你,如果正在用 Zephyr 开发需要 BLE 的嵌入式设备
npx oh-my-skill add beriberikix/zephyr-agent-skills/connectivity-blecurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- beriberikix/zephyr-agent-skills/connectivity-blenpx oh-my-skill verify beriberikix/zephyr-agent-skills/connectivity-ble怎么用
商店整理自技能原文 · 版本 ed63cdf · 表述以原文为准帮助开发者配置 Zephyr RTOS 的蓝牙低功耗功能,包括广播、GATT 服务、连接管理和功耗优化,并实现空闲时发送模式来减少无线电唤醒。
当需要为 Zephyr 设备添加 BLE 连接、优化电池寿命或实现自定义 GATT 配置文件时触发。
技能原文 SKILL.md
Zephyr Connectivity: BLE
Implement robust, low-power Bluetooth Low Energy applications using Zephyr's industry-standard BLE stack.
Core Workflows
1. BLE Fundamentals
Set up advertising, define GATT services, and manage connections.
- Reference: [ble_fundamentals.md](references/ble_fundamentals.md)
- Key Tools:
BT_GATT_SERVICE_DEFINE,bt_le_adv_start,BT_CONN_CB_DEFINE.
2. Send-When-Idle Pattern
Optimize radio usage by bundling data and transmitting only during idle periods.
- Reference: [send_when_idle.md](references/send_when_idle.md)
- Key Tools:
k_work_delayable, Workqueues, SMF integration.
3. Power Optimization
Fine-tune intervals and connection parameters for maximum battery life.
- Reference: [power_optimization.md](references/power_optimization.md)
- Key Tools:
bt_le_conn_param, Advertising intervals, PHY selection.
Quick Start (Advertising)
CONFIG_BT=y CONFIG_BT_PERIPHERAL=y
#include <zephyr/bluetooth/bluetooth.h>
void start_simple_adv(void) {
bt_enable(NULL);
bt_le_adv_start(BT_LE_ADV_CONN_NAME, NULL, 0, NULL, 0);
}
Professional Patterns (Wireless Design)
- Aggressive Latency: Increase peripheral latency to allow the radio to stay off longer during quiet periods.
- Decoupled Messaging: Use Zbus to feed data into the BLE module, keeping the radio logic separate from the application logic.
- Idle Bundling: Use the "Send-When-Idle" pattern specifically to reduce the number of wake-ups for the radio controller.
Automation Tools
- [ble_timing_helper.py](scripts/ble_timing_helper.py): Convert advertising/connection intervals from ms to BLE timing units.
Examples & Templates
- [gatt_service_template.c](assets/gatt_service_template.c): Starter custom GATT service definition.
Validation Checklist
- [ ] Device advertises with expected name/flags and is discoverable by a BLE scanner.
- [ ] Central can connect, exchange GATT data, and disconnect without stack errors.
- [ ] Configured connection parameters are reflected after negotiation.
- [ ] Send-When-Idle flow batches traffic instead of transmitting every sample immediately.
Resources
- [References](references/):
ble_fundamentals.md: GATT, GAP, and connection basics.send_when_idle.md: Implementing the idle-bundle pattern.power_optimization.md: Parameter tuning and power-saving Kconfigs.- [Scripts](scripts/):
ble_timing_helper.py: BLE interval conversion helper.- [Assets](assets/):
gatt_service_template.c: Custom service template for GATT.