-
Notifications
You must be signed in to change notification settings - Fork 7.8k
feat(openthread): adds arduino openthread library documentation #11991
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
SuGlider
wants to merge
3
commits into
master
Choose a base branch
from
docs/openthread_documentation
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,297 @@ | ||||||
| ########## | ||||||
| OpenThread | ||||||
| ########## | ||||||
|
|
||||||
| About | ||||||
| ----- | ||||||
|
|
||||||
| The OpenThread library provides support for creating Thread network devices using ESP32 SoCs with IEEE 802.15.4 radio support. The library offers two different programming interfaces for interacting with the OpenThread stack: | ||||||
|
|
||||||
| * **Stream-based CLI enhanced with Helper Functions API**: Command-line interface helper functions that send OpenThread CLI commands and parse responses | ||||||
| * **Classes API**: Object-oriented classes that directly call OpenThread API functions | ||||||
|
|
||||||
| The OpenThread library is built on top of `ESP OpenThread <https://github.com/espressif/esp-openthread>`_ and provides a high-level Arduino-style interface for creating Thread devices. | ||||||
|
|
||||||
| Thread Protocol Overview | ||||||
| ************************ | ||||||
|
|
||||||
| Thread is an IPv6-based, low-power wireless mesh networking protocol designed for smart home and IoT applications. It provides secure, reliable, and scalable connectivity for battery-powered devices. | ||||||
|
|
||||||
| **Key Features:** | ||||||
|
|
||||||
| * **IPv6-based**: Native IPv6 addressing and routing | ||||||
| * **Mesh Networking**: Self-healing mesh topology with automatic routing | ||||||
| * **Low Power**: Optimized for battery-operated devices | ||||||
| * **Security**: Built-in security features including encryption and authentication | ||||||
| * **Scalability**: Supports up to 250+ devices per network | ||||||
| * **Reliability**: Automatic route discovery and self-healing capabilities | ||||||
|
|
||||||
| Thread Network Topology | ||||||
| *********************** | ||||||
|
|
||||||
| .. code-block:: text | ||||||
|
|
||||||
| ┌─────────────────┐ | ||||||
| │ Internet │ | ||||||
| └─────────────────┘ | ||||||
| ▲ | ||||||
| │ | ||||||
| │ | ||||||
| ┌─────────────────┐ | ||||||
| │ Wi-Fi Router │ | ||||||
| │ │ | ||||||
| └─────────────────┘ | ||||||
| │ | ||||||
| ┌───────────────┴───────────────┐ | ||||||
| │ │ | ||||||
| ▼ ▼ | ||||||
| ┌───────────────────────┐ ┌──────────────────┐ | ||||||
| │ Other Wi-Fi Devices │ │ Thread Border │ | ||||||
| │ │ │ Router │ | ||||||
| └───────────────────────┘ └──────────────────┘ | ||||||
| │ | ||||||
| │ Thread Network | ||||||
| │ | ||||||
| ┌─────────────────────────┼─────────────────────────┐ | ||||||
| │ │ │ | ||||||
| ▼ ▼ ▼ | ||||||
| ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ | ||||||
| │ Thread Leader │◄─────►│ Thread Router │◄─────►│ Thread Child │ | ||||||
| │ │ │ │ │ │ | ||||||
| └─────────────────┘ └─────────────────┘ └─────────────────┘ | ||||||
| │ │ │ | ||||||
| └──────────────────────────┴──────────────────────────┘ | ||||||
| Other Thread Nodes | ||||||
|
|
||||||
|
|
||||||
| **Thread Device Roles:** | ||||||
|
|
||||||
| * **Leader**: Manages the Thread network, assigns router IDs, and maintains network state. This device shall be powered by a wall adapter. | ||||||
| * **Router**: Extends network range, routes messages, maintains network topology. This device shall be powered by a wall adapter. | ||||||
| * **Child**: End device that can sleep for extended periods (battery-powered devices). It can be powered by a battery or a wall adapter. | ||||||
| * **Detached**: Device not currently participating in a Thread network. | ||||||
| * **Disabled**: The Thread stack and interface is disabled. | ||||||
|
|
||||||
| **Other Thread Network Devices:** | ||||||
|
|
||||||
| * **Thread Border Router**: A device that connects a Thread network to other IP-based networks in the extrenal world. The Thread Border Router is connected to both the Thread network and external IP networks (like Wi-Fi router), enabling Thread devices to communicate with devices on other networks and the Internet. A Border Router can be implemented on a device with any Thread device role (Leader, Router, or Child). It can also act as gateway to other protocols such as MQTT or Zigbee. | ||||||
|
||||||
| * **Thread Border Router**: A device that connects a Thread network to other IP-based networks in the extrenal world. The Thread Border Router is connected to both the Thread network and external IP networks (like Wi-Fi router), enabling Thread devices to communicate with devices on other networks and the Internet. A Border Router can be implemented on a device with any Thread device role (Leader, Router, or Child). It can also act as gateway to other protocols such as MQTT or Zigbee. | |
| * **Thread Border Router**: A device that connects a Thread network to other IP-based networks in the external world. The Thread Border Router is connected to both the Thread network and external IP networks (like a Wi-Fi router), enabling Thread devices to communicate with devices on other networks and the Internet. A Border Router can be implemented on a device with any Thread device role (Leader, Router, or Child). It can also act as a gateway to other protocols such as MQTT or Zigbee. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spelling error: "interface" should not have an extra space before "is". The phrase "The Thread stack and interface is disabled" should be "The Thread stack and interface is disabled" (or better yet, "The Thread stack and interface are disabled" for grammatical correctness).