Skip to content
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

Implement OpenThread in Arduino #9486

Open
1 task done
SuGlider opened this issue Apr 11, 2024 · 1 comment
Open
1 task done

Implement OpenThread in Arduino #9486

SuGlider opened this issue Apr 11, 2024 · 1 comment
Assignees
Labels
Status: In Progress Issue is in progress Type: Feature request Feature request for Arduino ESP32
Milestone

Comments

@SuGlider
Copy link
Collaborator

SuGlider commented Apr 11, 2024

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.

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.
@SuGlider SuGlider added the Type: Feature request Feature request for Arduino ESP32 label Apr 11, 2024
@SuGlider SuGlider self-assigned this Apr 11, 2024
@SuGlider SuGlider added this to the 3.1.0 milestone Apr 11, 2024
@SuGlider
Copy link
Collaborator Author

@VojtechBartoska - this is the Openthread feature request.

@VojtechBartoska VojtechBartoska added the Status: In Progress Issue is in progress label Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: In Progress Issue is in progress Type: Feature request Feature request for Arduino ESP32
Projects
Status: Under investigation
Development

No branches or pull requests

2 participants