mynewt-nimble

Apache mynewt

  • 所有者: apache/mynewt-nimble
  • 平台:
  • 許可證: Apache License 2.0
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Overview

Apache NimBLE is an open-source Bluetooth 5.0 stack (both Host & Controller)
that completely replaces the proprietary SoftDevice on Nordic chipsets. It is
part of Apache Mynewt project.

Features highlight:

  • Support for 251 byte packet size
  • Support for all 4 roles concurrently - Broadcaster, Observer, Peripheral and Central
  • Support for up to 32 simultaneous connections.
  • Legacy and SC (secure connections) SMP support (pairing and bonding).
  • Advertising Extensions.
  • Coded (aka Long Range) and 2M PHYs.
  • Bluetooth Mesh.

Supported hardware

Controller supports Nordic nRF51 and nRF52 chipsets. Host runs on any board
and architecture supported
by Apache Mynewt OS.

Browsing

If you are browsing around the source tree, and want to see some of the
major functional chunks, here are a few pointers:

  • nimble/controller: Contains code for controller including Link Layer and HCI implementation
    (controller)

  • nimble/drivers: Contains drivers for supported radio transceivers (Nordic nRF51 and nRF52)
    (drivers)

  • nimble/host: Contains code for host subsystem. This includes protocols like
    L2CAP and ATT, support for HCI commands and events, Generic Access Profile (GAP),
    Generic Attribute Profile (GATT) and Security Manager (SM).
    (host)

  • nimble/host/mesh: Contains code for Bluetooth Mesh subsystem.
    (mesh)

  • nimble/transport: Contains code for supported transport protocols between host
    and controller. This includes UART, emSPI and RAM (used in combined build when
    host and controller run on same CPU)
    (transport)

  • porting: Contains implementation of NimBLE Porting Layer (NPL) for supported
    operating systems
    (porting)

  • ext: Contains external libraries used by NimBLE. Those are used if not
    provided by OS
    (ext)

  • kernel: Contains the core of the RTOS (kernel/os)

Sample Applications

There are also some sample applications that show how to Apache Mynewt NimBLE
stack. These sample applications are located in the apps/ directory of
Apache Mynewt repo. Some examples:

  • blecent:
    A basic central device with no user interface. This application scans for
    a peripheral that supports the alert notification service (ANS). Upon
    discovering such a peripheral, blecent connects and performs a characteristic
    read, characteristic write, and notification subscription.
  • blehci:
    Implements a BLE controller-only application. A separate host-only
    implementation, such as Linux's BlueZ, can interface with this application via
    HCI over UART.
  • bleprph: An
    implementation of a minimal BLE peripheral.
  • btshell: A
    shell-like application allowing to configure and use most of NimBLE
    functionality from command line.
  • bleuart:
    Implements a simple BLE peripheral that supports the Nordic
    UART / Serial Port Emulation service
    (https://developer.nordicsemi.com/nRF5_SDK/nRF51_SDK_v8.x.x/doc/8.0.0/s110/html/a00072.html).

Getting Help

If you are having trouble using or contributing to Apache Mynewt NimBLE, or just
want to talk to a human about what you're working on, you can contact us via the
developers mailing list.

Although not a formal channel, you can also find a number of core developers
on the #mynewt channel on Freenode IRC or #general channel on Mynewt Slack

Also, be sure to checkout the Frequently Asked Questions
for some help troubleshooting first.

Contributing

Anybody who works with Apache Mynewt can be a contributing member of the
community that develops and deploys it. The process of releasing an operating
system for microcontrollers is never done: and we welcome your contributions
to that effort.

More information can be found at the Community section of the Apache Mynewt
website, located here.

Pull Requests

Apache Mynewt welcomes pull request via Github. Discussions are done on Github,
but depending on the topic, can also be relayed to the official Apache Mynewt
developer mailing list dev@mynewt.apache.org.

If you are suggesting a new feature, please email the developer list directly,
with a description of the feature you are planning to work on.

Filing Bugs

Bugs can be filed on the
Apache Mynewt NimBLE Issues.
Please label the issue as a "Bug".

Where possible, please include a self-contained reproduction case!

Feature Requests

Feature requests should also be filed on the
Apache Mynewt NimBLE Bug Tracker.
Please label the issue as a "Feature" or "Enhancement" depending on the scope.

Writing Tests

We love getting newt tests! Apache Mynewt is a huge undertaking, and improving
code coverage is a win for every Apache Mynewt user.

License

The code in this repository is all under either the Apache 2 license, or a
license compatible with the Apache 2 license. See the LICENSE file for more
information.

主要指標

概覽
名稱與所有者apache/mynewt-nimble
主編程語言C
編程語言C (語言數: 8)
平台
許可證Apache License 2.0
所有者活动
創建於2017-12-04 19:34:47
推送於2025-06-03 13:49:27
最后一次提交2025-05-22 10:59:37
發布數21
最新版本名稱nimble_1_8_0_tag (發布於 2024-11-25 10:14:14)
第一版名稱nimble_1_0_0_rc1_tag (發布於 2018-06-04 17:36:33)
用户参与
星數785
關注者數52
派生數433
提交數5.4k
已啟用問題?
問題數310
打開的問題數129
拉請求數1487
打開的拉請求數106
關閉的拉請求數136
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?