{"id":24091697,"url":"https://github.com/RT-Thread-packages/nimble","last_synced_at":"2025-09-17T01:31:52.119Z","repository":{"id":39873592,"uuid":"167159041","full_name":"RT-Thread-packages/nimble","owner":"RT-Thread-packages","description":"An Apache open-source Bluetooth 5.0 stack porting on RT-Thread","archived":false,"fork":false,"pushed_at":"2023-03-13T13:55:47.000Z","size":4763,"stargazers_count":118,"open_issues_count":7,"forks_count":69,"subscribers_count":17,"default_branch":"master","last_synced_at":"2023-11-07T18:20:06.026Z","etag":null,"topics":["52832","ble","ble5","bluetooth","nimble"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RT-Thread-packages.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-23T09:51:28.000Z","updated_at":"2023-10-19T19:14:29.000Z","dependencies_parsed_at":"2023-02-09T22:16:02.160Z","dependency_job_id":null,"html_url":"https://github.com/RT-Thread-packages/nimble","commit_stats":null,"previous_names":[],"tags_count":1,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RT-Thread-packages%2Fnimble","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RT-Thread-packages%2Fnimble/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RT-Thread-packages%2Fnimble/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RT-Thread-packages%2Fnimble/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RT-Thread-packages","download_url":"https://codeload.github.com/RT-Thread-packages/nimble/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233312688,"owners_count":18657089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["52832","ble","ble5","bluetooth","nimble"],"created_at":"2025-01-10T07:44:40.255Z","updated_at":"2025-09-17T01:31:46.247Z","avatar_url":"https://github.com/RT-Thread-packages.png","language":"C","readme":"\u003ch1 align=\"center\" style=\"margin: 30px 0 30px; font-weight: bold;\"\u003eRT-THREAD NIMBLE\u003c/h1\u003e\n\u003ch4 align=\"center\"\u003enimble BLE STACK for RT-THREAD\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"https://github.com/RT-Thread-packages/nimble/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/RT-Thread-packages/nimble?style=flat-square\u0026logo=GitHub\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/RT-Thread-packages/nimble/network/members\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/RT-Thread-packages/nimble?style=flat-square\u0026logo=GitHub\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/RT-Thread-packages/nimble/watchers\"\u003e\u003cimg src=\"https://img.shields.io/github/watchers/RT-Thread-packages/nimble?style=flat-square\u0026logo=GitHub\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/RT-Thread-packages/nimble/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/RT-Thread-packages/nimble.svg?style=flat-square\u0026logo=GitHub\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## 1 介绍\n\nNimBLE 软件包是 RT-Thread 基于 [Apache NimBLE](https://github.com/apache/mynewt-nimble) 开源蓝牙 5.0 协议栈的移植实现，该协议栈提供完整的 Host 层和 Controller 层支持，1.0 版本支持 Nordic nRF51 和 nRF52 系列芯片完整部署；最新版本可实现 RT-Thread 下支持 Host 层搭配串口连接外部 Controller 芯片使用。\n\n### 1.1 主要特性\n\n- 扩展广播(LE Advertising Extensions)\n- 2Mbit/s比特率的物理层\n- 长距离编码(Coded PHY for LE Long Range)\n- 高速不可连接广播(High Duty Cycle Non-Connectable Advertising)\n- 新的跳频算法(Channel Selection Algorithm #2)\n- 隐私1.2(LE Privacy 1.2)\n- 安全管理(SM),支持传统配对(LE Legacy Pairing),安全连接(LE Secure Connections),特定秘钥分发(Transport Specific Key Distribution)\n- 链路层PDU数据长度扩展(LE Data Length Extension)\n- 多角色并发(主机(central)/从机(peripheral), server/client)\n- 同时广播和扫描\n- 低速定向广播(Low Duty Cycle Directed Advertising)\n- 连接参数请求(Connection parameters request procedure)\n- LE Ping\n- 完整的GATT客户端，服务端，以及子功能\n- 抽象HCI接口层\n\n### 1.2 Profile和Service支持\n\n- 警报通知服务(ANS)\n- 即时报警服务(IAS)\n- 链路丢失服务(LLS)\n- 电池服务(BAS)\n- 设备信息服务(DIS)\n- 心率服务(HRS)\n- 自行车速度及步调(CSC)\n- 射频功率(TPS)\n\n### 1.3 Mesh 特性\n\n- 广播和GATT承载(Advertising and GATT bearers)\n- PB-GATT 和 PB-ADV provisioning\n- 模型层(Foundation Models (server role))\n- 支持中继(Relay support)\n- 支持GATT代理(GATT Proxy)\n\n更多关于 NimBLE Stack 的介绍请参考 ``http://mynewt.apache.org/latest/network/docs/index.html``。\n\n### 1.4  目录结构\n\n```txt\n    📦NimBLE\n    ┣ 📂apps \n    ┣ 📂docs\n    ┣ 📂ext\n    ┣ 📂nimble\n    ┣ 📂porting\n    ┗ 📂targets      \n```\n\n```\nNimBLE\n   ├───apps                   /* Bluetooth 示例应用程序 */\n   │   ├───advertiser\n   │   ├───blecent\n   │   ├───blecsc\n   │   ├───blehci\n   │   ├───blehr\n   │   ├───blemesh\n   │   ├───blemesh_light\n   │   ├───blemesh_shell\n   │   ├───bleprph\n   │   ├───bleuart\n   │   ├───btshell\n   │   ├───ext_advertiser\n   │   └───ibeacon\n   ├───docs                   /* 官方文档及 API 说明 */\n   ├───ext\n   │   └───tinycrypt          /* Tinycrypt 加密库 */\n   ├───nimble\n   │   ├───controller         /* Controller 实现 */\n   │   │   ├───include\n   │   │   └───src\n   │   ├───drivers            /* Nordic 系列 Phy 驱动 */\n   │   │   ├───nrf51\n   │   │   └───nrf52\n   │   ├───host               /* Host Stack(主机控制器)实现 */\n   │   │   ├───include\n   │   │   ├───mesh           /* Mesh 组网功能 */\n   │   │   ├───pts            /* PTS 测试相关 */\n   │   │   ├───services       /* 通用的 Profile */\n   │   │   │   ├───ans\n   │   │   │   ├───bas\n   │   │   │   ├───bleuart\n   │   │   │   ├───dis\n   │   │   │   ├───gap\n   │   │   │   ├───gatt\n   │   │   │   ├───ias\n   │   │   │   ├───lls\n   │   │   │   └───tps\n   │   │   ├───src\n   │   │   ├───store\n   │   │   ├───tools\n   │   │   └───util\n   │   ├───include\n   │   │   └───nimble\n   │   ├───src\n   │   └───transport          /* HCI 传输抽象层 */\n   │       ├───common         /* h4 协议工具 */\n   │       ├───include\n   │       └───rtthread       /* RT-Thread UART 对接 HCI 层代码 */\n   └───porting                /* OS 抽象层及系统配置 */\n       ├───nimble\n       │   ├───include\n       │   └───src\n       └───npl\n           └───rtthread       /* RT-Thread OS 接口实现 */\n               ├───include\n               │   ├───config /* NimBLE 协议栈配置选项 */\n               │   ├───console\n               │   ├───logcfg /* RT-Thread rtdbg 日志对接 */\n               │   └───nimble\n               └───src\n```\n\n### 1.5 许可证\n\nNimBLE 软件包遵循 Apache-2.0 许可，详见 LICENSE 文件。\n\n### 1.6 依赖\n\n- RT_Thread 3.0+\n\n## 2 获取软件包\n\n使用 NimBLE 软件包需要在 RT-Thread 的包管理中选中它，具体路径如下：\n\n```\nRT-Thread online packages\n    IoT - internet of things  ---\u003e\n--- NimBLE:An open-source Bluetooth 5.0 stack porting on RT-Thread\n      Bluetooth Role support  ---\u003e      \n      Host Stack Configuration  ---\u003e\n      Controller Configuration  ---\u003e\n      Bluetooth Mesh support  ---\u003e\n      HCI Transport support  ----\u003e\n      Device Driver support  ----\n      Log level (INFO)  ---\u003e\n      Bluetooth Samples (Not enable sample)  ---\u003e\n(1)   Maximum number of concurrent connections\n[*]   Device Whitelist Support\n(0)   The number of multi-advertising instances\n[ ]   Extended Advertising Feature Support\n      Version (latest)  ---\u003e\n\n```\n\n**Bluetooth Role support**  ：  配置 BLE角色支持(Central/Peripheral/Broadcaster/Observer) ；   \n**Host Stack Configuration**  ：  配置 Host 相关功能；   \n**Controller Configuration**  ：  配置 Controller 相关功能；   \n**Bluetooth Mesh support**  ：  Mesh 特性支持及配置；   \n**HCI Transport support** ： 配置HCI层传输方式 ;  \n**Device Driver support** ： 底层 SOC Phy 支持 ;  \n**Log level (INFO)**  ：  配置协议栈日志等级；   \n**Bluetooth Samples**  ：  配置示例应用；   \n**Version**  ：  软件包版本选择；   \n\n配置完成后让 RT-Thread 的包管理器自动更新，或者使用 pkgs --update 命令更新包到 BSP 中。\n\n## 3 使用 NimBLE 软件包\n\n1.0 版本配合独立的 nrf52832-nimble bsp 使用，参考 https://github.com/EvalZero/nrf52832-nimble 。\n\n最新版本特性支持 RT-Thread 搭配 UART 外接蓝牙Controller卡片使用，参考以下文档：\n\n-    [QEMU + 蓝牙Controller卡片使用 NimBLE](https://club.rt-thread.org/ask/article/47e1aad061e7a53c.html)\n-   [如何在 ART-Pi 的 bsp 工程中使用 NimBLE 蓝牙协议栈](https://club.rt-thread.org/ask/article/2a90783d5ac51641.html)\n-   [如何在 ART-Pi 的 Studio 工程中使用 NimBLE 蓝牙协议栈](https://club.rt-thread.org/ask/article/ed1e170fb2a30f0a.html)\n\n外部蓝牙 Controller 选择及固件可参考 [蓝牙控制器固件](https://github.com/RT-Thread-packages/nimble/tree/master/docs/firmwares)\n\n## 4 注意事项\n- 如需使用 NimBLE Host层 和 Controller层完整部署，则需选择 1.0 版本运行。\n- 1.0 版本暂时只支持 Nodic nRF52832 nRF52840 MCU，参见 [nrf52832-bsp](https://github.com/EvalZero/nrf52832-nimble)\n- 最新版本目前仅能在 RT-Thread 上部署 Host 层，需要使用串口搭配外部蓝牙 Controller 芯片使用。 \n- 文档中心相关资料：RT-Thread 标准版 -\u003e 软件包 -\u003e NimBLE 用户手册\n\n## 5 联系方式 \u0026 感谢\n\n- 维护：RT-Thread 开发团队\n- 主页：https://github.com/RT-Thread-packages/nimble\n","funding_links":[],"categories":["Packages"],"sub_categories":["IoT"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRT-Thread-packages%2Fnimble","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRT-Thread-packages%2Fnimble","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRT-Thread-packages%2Fnimble/lists"}