Description
Related area
Create an API for OpenThread within Arduino
Hardware specification
ESP32-C6 and ESP32-H2 as Standalone Nodes.
Other SoC can be used as Open Thread Host mode attached to a RPC (802.15.4 radio layer).
Is your feature request related to a problem?
This is an issue to track the progress of developing OpenThread , a new API for Arduino.
Describe the solution you'd like
There are some macro tasks, split in 4 main areas, necessary in order to enable OpenThread in ESP32 Arduino:
1- Add Openthread to Lib Builder scripts and sdkconfig.
- PR Adds OpenThread to Arduino 3.0.x esp32-arduino-lib-builder#179 - Already in Arduino Master Release
2- Create OpenThread CLI API:
- Access Thread using an Stream object, such as Serial for the user to enter necessary Thread configurations and commands.
- A Stream object may also allow sending a "script" with those commands, for starting/running Thread with no user interactions.
- It shall allow Arduino to set a callback function to process CLI responses automating the "script".
- Create a structure that allows an API based on CLI, for using all commands and functionalities in a easy way.
- This may be a first approach for creating an API for Thread. Develop some examples.
3- Create a set of Classes that allow the user to write a sketch for Thread Network.
- Map necessary Thread functions to Classes.
- Map UDP sockets and TCP connections into the Arduino API.
- Build a way for a OpenThread Host + RCP to work.
- Create an API for CoAP (client/server) compatible with Arduino.
- Create an API for SRP (client/server) for Arduino.
- Create necessary layers for FTD, MTD (MED/SED) device types functionality.
- Add IPv6 Multicasting, Unicasting and address mapping functionalities.
- Add OpentThread ping() function to the Arduino API.
- Add Commissioning and Joiner functions to the API.
4- Examples and Documentation
- Create examples using the new Open Thread Library.
- Create documentation about this new Arduino library.
Describe alternatives you've considered
Instead of mapping all OpenThread Library functions to Arduino, limit it to the set of functions that CLI supports.
Maybe using CLI as main source of interaction given that it will be maintained by OpenThread development team.
This may reduce the effort for maintainance and make it easier for supporting both Standalone Nodes and Host + RPC Nodes configuration.
Additional context
No response
I have checked existing list of Feature requests and the Contribution Guide
- I confirm I have checked existing list of Feature requests and Contribution Guide.
Metadata
Metadata
Assignees
Type
Projects
Status