Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

board: add support for the Arduino Nano Matter #255

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

Merged
pennam merged 7 commits into arduino:main from silabs-bozont:main
Dec 15, 2025

Conversation

@silabs-bozont
Copy link

@silabs-bozont silabs-bozont commented Nov 11, 2025

Hey friends!
This PR adds support for the Nano Matter including:

  • Basic platform, CoreAPI and flashing support
  • GPIO
  • PWM
  • I2C/Wire
  • SPI
  • Bluetooth LE

All of these have been tested and confirmed to function, but feel free to do any additional testing!

ADC support is missing from the main Zephyr repo for the Nano Matter - I'm currently working on adding it. Once it's there I'll also include it here in a separate PR. Besides this the board has a pretty well rounded functionality.

OpenOCD 0.12.0-arduino1-static will have to be added to the package.json file - but I assume you keep that separately. This is needed for flasing the Nano Matter.

Please, let me know if you have any remarks and I'll fix them as soon as possible!

leonardocavagnis, facchinm, and pillo79 reacted with heart emoji facchinm reacted with rocket emoji
Copy link

CLAassistant commented Nov 11, 2025
edited
Loading

CLA assistant check
All committers have signed the CLA.

@silabs-bozont silabs-bozont changed the title (削除) Add support for the Arduino Nano Matter (削除ここまで) (追記) board: add support for the Arduino Nano Matter (追記ここまで) Nov 11, 2025
@per1234 per1234 added the enhancement New feature or request label Nov 11, 2025
Copy link

@pillo79 pillo79 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for mentioning the new required tool in the PR notes. Please add it to extra/artifacts/_common.json so that CI generates the correct files automatically.

silabs-bozont reacted with thumbs up emoji
Copy link
Author

@pillo79 Thanks for mentioning the new required tool in the PR notes. Please add it to extra/artifacts/_common.json so that CI generates the correct files automatically.

Thank you for the pointer, I've added it. Could you please check if it's correct?

Copy link

@pillo79 pillo79 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (not tested though). @silabs-bozont you should accept the CLA for us to use this in our repo though 😉 thanks!

per1234, silabs-bozont, and leonardocavagnis reacted with heart emoji
Copy link
Member

@leonardocavagnis leonardocavagnis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution!
I ran some tests, here are my results:

Loader / Bootloader

  • Loader building for nano_matter: ✅ OK
    Tested loader generation via ./extra/build.sh nano_matter, works fine.
  • Burn bootloader from IDE: ✅ OK

Flashing

  • Flashing blank sketch: ✅ OK
  • Flashing Blink sketch: ✅ OK

GPIO / Analog

  • GPIO reading (Examples -> Basics -> digitalReadSignal.ino example): ✅ OK
  • Analog read (Examples -> Basics -> AnalogReadSerial.ino): ❌ FAIL – A0 not defined

Bluetooth LE

  • ArduinoBLE test (Peripheral LED example): ✅ OK, works (note: LED logic is inverted)
    Some strange initial output on serial:
[8D�[J[00:00:00.063,964] <inf> bt_hci_raw: Lower HCI transport: efr32
[00:00:00.164,123] <inf> bt_hci_raw: Bluetooth enabled in RAW mode

Needs unreleased version of ArduinoBLE and this fix:
ArduinoBLE commit 18c814d1b75cadf482509c5026506034d8a710fc

I2C / SPI

  • I2C with sensor (tested with Modulino Buttons): ✅ OK
  • SPI with sensor: ❌ FAIL
    Works with Silabs-Arduino core, but not with Zephyr implementation:
    Tested code:
#include <SPI.h>
#define CS_PIN 10
void setup() {
 pinMode(CS_PIN, OUTPUT);
 digitalWrite(CS_PIN, HIGH);
 SPI.begin();
}
void loop() {
 digitalWrite(CS_PIN, LOW);
 SPI.transfer(0xAA);
 digitalWrite(CS_PIN, HIGH);
 delay(1000);
}

Verified with logic analyzer (attached 2 screenshots: with and without Zephyr core):
Screenshot 2025年12月05日 at 16 21 52
Screenshot 2025年12月05日 at 16 20 53

Copy link
Member

EDIT: For the SPI test, initially I tried SPI_MODE0 and it failed. Using SPI_MODE3 makes the SPI communication work correctly also with the Zephyr core.
fyi @pennam

pennam reacted with thumbs up emoji

Copy link

pennam commented Dec 11, 2025

EDIT: For the SPI test, initially I tried SPI_MODE0 and it failed. Using SPI_MODE3 makes the SPI communication work correctly also with the Zephyr core. fyi @pennam

@leonardocavagnis #288 should fix your "SPI with sensor" test. Do you mind give it a spin?

leonardocavagnis reacted with eyes emoji

Copy link

pennam commented Dec 12, 2025

Analog read (Examples -> Basics -> AnalogReadSerial.ino): ❌ FAIL – A0 not defined

probably we are just missing CONFIG_ADC

Copy link
Author

Analog read (Examples -> Basics -> AnalogReadSerial.ino): ❌ FAIL – A0 not defined

probably we are just missing CONFIG_ADC

ADC support was missing entirely for the Nano Matter in the upstream - I've added it here: zephyrproject-rtos/zephyr@9ebf508
Once it's pulled in here the board will receive ADC support.

pennam reacted with thumbs up emoji

Copy link

pennam commented Dec 15, 2025

Analog read (Examples -> Basics -> AnalogReadSerial.ino): ❌ FAIL – A0 not defined

probably we are just missing CONFIG_ADC

ADC support was missing entirely for the Nano Matter in the upstream - I've added it here: zephyrproject-rtos/zephyr@9ebf508 Once it's pulled in here the board will receive ADC support.

Since PR is merged upstream, we can cherry-pick and add it to our fork. After that i will open a PR to enable also ADC.
Thanks.

silabs-bozont reacted with rocket emoji

Copy link

@pennam pennam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see my comment here #255 (comment)

Thanks so much!

silabs-bozont reacted with rocket emoji
@pennam pennam merged commit ebc3c75 into arduino:main Dec 15, 2025
36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@facchinm facchinm facchinm approved these changes

@pennam pennam pennam approved these changes

@pillo79 pillo79 Awaiting requested review from pillo79

@leonardocavagnis leonardocavagnis Awaiting requested review from leonardocavagnis

Assignees

No one assigned

Labels

enhancement New feature or request

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /