Skip to content

Conversation

@silabs-bozont
Copy link

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!

@CLAassistant
Copy link

CLAassistant commented Nov 11, 2025

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
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!

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

@leonardocavagnis
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
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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants