zephyrproject-rtos / zephyrproject-rtos/ArduinoCore-zephyr

Autogenerate board support

Open
#11 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
65
Forks
93
PR merge metrics
No merged PRs in 30d

Description

Note: this is currently out of scope for the GSoC season due to the time required to implement but I'm leaving this here for future contributions.

Arduino cores call each board a "variant" and place board-specific files in the variants folder. These files, plus specifying them in the boards.txt (see #10,) is what let's the Arduino tools know how to build, flash and generally interact with a board.

In the Zephyr world, a lot of that information is encapsulated in files like a board's device tree. It is theoretically possible to use this information to partially (or fully?) autogenerate Arduino variants and boards.txt. There are many libraries out there, but for example lopper is a common Python library to manipulate DTS files.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the referenced variants folder and boards.txt relationship, then inspect the example arduino_nano_33_iot.dts and the lopper library mentioned in the issue. Establish whether device-tree data can define the required Arduino files and board entries, and verify the generated output with the Arduino tools for a representative board.

Written by the indexing model from the issue text.

Assessment

Tech stack
arduino, python
Domain
build-system, embedded-iot, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.