{"id":14967227,"url":"https://github.com/micropython/mynewt-nimble","last_synced_at":"2025-10-01T04:30:38.276Z","repository":{"id":46744391,"uuid":"408665173","full_name":"micropython/mynewt-nimble","owner":"micropython","description":"Apache mynewt","archived":false,"fork":true,"pushed_at":"2023-04-16T08:35:27.000Z","size":12736,"stargazers_count":1,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-01T04:59:02.929Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mynewt.apache.org/","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"apache/mynewt-nimble","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/micropython.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":"2021-09-21T02:33:53.000Z","updated_at":"2024-05-27T11:43:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/micropython/mynewt-nimble","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micropython%2Fmynewt-nimble","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micropython%2Fmynewt-nimble/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micropython%2Fmynewt-nimble/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micropython%2Fmynewt-nimble/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micropython","download_url":"https://codeload.github.com/micropython/mynewt-nimble/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234821052,"owners_count":18891970,"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":[],"created_at":"2024-09-24T13:37:40.043Z","updated_at":"2025-10-01T04:30:32.598Z","avatar_url":"https://github.com/micropython.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n#  KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n#\n--\u003e\n\n\u003cimg src=\"http://mynewt.apache.org/img/logo.svg\" width=\"250\" alt=\"Apache Mynewt\"\u003e\n\n## Overview\n\nApache NimBLE is an open-source Bluetooth 5.1 stack (both Host \u0026 Controller)\nthat completely replaces the proprietary SoftDevice on Nordic chipsets. It is\npart of [Apache Mynewt project](https://github.com/apache/mynewt-core).\n\nFeatures highlight:\n  - Support for 251 byte packet size\n  - Support for all 4 roles concurrently - Broadcaster, Observer, Peripheral and Central\n  - Support for up to 32 simultaneous connections.\n  - Legacy and SC (secure connections) SMP support (pairing and bonding).\n  - Advertising Extensions.\n  - Periodic Advertising.\n  - Coded (aka Long Range) and 2M PHYs.\n  - Bluetooth Mesh.\n\n## Supported hardware\n\nController supports Nordic nRF51 and nRF52 chipsets. Host runs on any board\nand architecture [supported](https://github.com/apache/mynewt-core#overview)\nby Apache Mynewt OS.\n\n\n## Browsing\n\nIf you are browsing around the source tree, and want to see some of the\nmajor functional chunks, here are a few pointers:\n\n- nimble/controller: Contains code for controller including Link Layer and HCI implementation\n([controller](https://github.com/apache/mynewt-nimble/tree/master/nimble/controller))\n\n- nimble/drivers: Contains drivers for supported radio transceivers (Nordic nRF51 and nRF52)\n([drivers](https://github.com/apache/mynewt-nimble/tree/master/nimble/drivers))\n\n- nimble/host: Contains code for host subsystem. This includes protocols like\nL2CAP and ATT, support for HCI commands and events, Generic Access Profile (GAP),\nGeneric Attribute Profile (GATT) and Security Manager (SM).\n([host](https://github.com/apache/mynewt-nimble/tree/master/nimble/host))\n\n- nimble/host/mesh: Contains code for Bluetooth Mesh subsystem.\n([mesh](https://github.com/apache/mynewt-nimble/tree/master/nimble/host/mesh))\n\n- nimble/transport: Contains code for supported transport protocols between host\nand controller. This includes UART, emSPI and RAM (used in combined build when\nhost and controller run on same CPU)\n([transport](https://github.com/apache/mynewt-nimble/tree/master/nimble/transport))\n\n- porting: Contains implementation of NimBLE Porting Layer (NPL) for supported\noperating systems\n([porting](https://github.com/apache/mynewt-nimble/tree/master/porting))\n\n- ext: Contains external libraries used by NimBLE. Those are used if not\nprovided by OS\n([ext](https://github.com/apache/mynewt-nimble/tree/master/ext))\n\n- kernel: Contains the core of the RTOS ([kernel/os](https://github.com/apache/mynewt-core/tree/master/kernel/os))\n\n## Sample Applications\n\nThere are also some sample applications that show how to Apache Mynewt NimBLE\nstack. These sample applications are located in the `apps/` directory of\nApache Mynewt [repo](https://github.com/apache/mynewt-core). Some examples:\n\n* [blecent](https://github.com/apache/mynewt-nimble/tree/master/apps/blecent):\nA basic central device with no user interface.  This application scans for\na peripheral that supports the alert notification service (ANS). Upon\ndiscovering such a peripheral, blecent connects and performs a characteristic\nread, characteristic write, and notification subscription.\n* [blehci](https://github.com/apache/mynewt-nimble/tree/master/apps/blehci):\nImplements a BLE controller-only application.  A separate host-only\nimplementation, such as Linux's BlueZ, can interface with this application via\nHCI over UART.\n* [bleprph](https://github.com/apache/mynewt-nimble/tree/master/apps/bleprph): An\n  implementation of a minimal BLE peripheral.\n* [btshell](https://github.com/apache/mynewt-nimble/tree/master/apps/btshell): A\n  shell-like application allowing to configure and use most of NimBLE\n  functionality from command line.\n* [bleuart](https://github.com/apache/mynewt-core/tree/master/apps/bleuart):\nImplements a simple BLE peripheral that supports the Nordic\nUART / Serial Port Emulation service\n(https://developer.nordicsemi.com/nRF5_SDK/nRF51_SDK_v8.x.x/doc/8.0.0/s110/html/a00072.html).\n\n# Getting Help\n\nIf you are having trouble using or contributing to Apache Mynewt NimBLE, or just\nwant to talk to a human about what you're working on, you can contact us via the\n[developers mailing list](mailto:dev@mynewt.apache.org).\n\nAlthough not a formal channel, you can also find a number of core developers\non the #mynewt channel on Freenode IRC or #general channel on [Mynewt Slack](https://mynewt.slack.com/join/shared_invite/enQtNjA1MTg0NzgyNzg3LTcyMmZiOGQzOGMxM2U4ODFmMTIwNjNmYTE5Y2UwYjQwZWIxNTE0MTUzY2JmMTEzOWFjYWZkNGM0YmM4MzAxNWQ)\n\nAlso, be sure to checkout the [Frequently Asked Questions](https://mynewt.apache.org/faq/answers)\nfor some help troubleshooting first.\n\n# Contributing\n\nAnybody who works with Apache Mynewt can be a contributing member of the\ncommunity that develops and deploys it.  The process of releasing an operating\nsystem for microcontrollers is never done: and we welcome your contributions\nto that effort.\n\nMore information can be found at the Community section of the Apache Mynewt\nwebsite, located [here](https://mynewt.apache.org/community).\n\n## Pull Requests\n\nApache Mynewt welcomes pull request via Github.  Discussions are done on Github,\nbut depending on the topic, can also be relayed to the official Apache Mynewt\ndeveloper mailing list dev@mynewt.apache.org.\n\nIf you are suggesting a new feature, please email the developer list directly,\nwith a description of the feature you are planning to work on.\n\n## Filing Bugs\n\nBugs can be filed on the\n[Apache Mynewt NimBLE Issues](https://github.com/apache/mynewt-nimble/issues).\nPlease label the issue as a \"Bug\".\n\nWhere possible, please include a self-contained reproduction case!\n\n## Feature Requests\n\nFeature requests should also be filed on the\n[Apache Mynewt NimBLE Bug Tracker](https://github.com/apache/mynewt-nimble/issues).\nPlease label the issue as a \"Feature\" or \"Enhancement\" depending on the scope.\n\n## Writing Tests\n\nWe love getting newt tests!  Apache Mynewt is a huge undertaking, and improving\ncode coverage is a win for every Apache Mynewt user.\n\n\u003c!--\nTODO\n## Writing Documentation\n\nContributing to documentation (in addition to writing tests), is a great way\nto get involved with the Apache Mynewt project.\n\n The Mynewt NimBLE documentation is found in [/docs](/docs).\n--\u003e\n\n# License\n\nThe code in this repository is all under either the Apache 2 license, or a\nlicense compatible with the Apache 2 license.  See the LICENSE file for more\ninformation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicropython%2Fmynewt-nimble","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicropython%2Fmynewt-nimble","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicropython%2Fmynewt-nimble/lists"}