-
-
Notifications
You must be signed in to change notification settings - Fork 40
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
Conversation
CLA assistant check
All committers have signed the CLA.
ade2e77 to
812b4e8
Compare
variants/arduino_nano_matter_mgm240sd22vna/arduino_nano_matter_mgm240sd22vna.overlay
Outdated
Show resolved
Hide resolved
812b4e8 to
e336297
Compare
@pillo79
pillo79
left a comment
There was a problem hiding this 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.
e336297 to
cc90a1f
Compare
silabs-bozont
commented
Nov 12, 2025
@pillo79 Thanks for mentioning the new required tool in the PR notes. Please add it to
extra/artifacts/_common.jsonso that CI generates the correct files automatically.
Thank you for the pointer, I've added it. Could you please check if it's correct?
cc90a1f to
4497bbb
Compare
@pillo79
pillo79
left a comment
There was a problem hiding this 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!
Without the return statement on alloc failure 'flash_area_read' gets an uninitialized pointer.
4497bbb to
a431e17
Compare
@leonardocavagnis
leonardocavagnis
left a comment
There was a problem hiding this 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
commented
Dec 5, 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
pennam
commented
Dec 11, 2025
EDIT: For the SPI test, initially I tried
SPI_MODE0and it failed. UsingSPI_MODE3makes 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?
pennam
commented
Dec 12, 2025
Analog read (Examples -> Basics -> AnalogReadSerial.ino): ❌ FAIL – A0 not defined
probably we are just missing CONFIG_ADC
variants/arduino_nano_matter_mgm240sd22vna/arduino_nano_matter_mgm240sd22vna.overlay
Outdated
Show resolved
Hide resolved
silabs-bozont
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.
pennam
commented
Dec 15, 2025
Analog read (Examples -> Basics -> AnalogReadSerial.ino): ❌ FAIL – A0 not defined
probably we are just missing
CONFIG_ADCADC 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.
@pennam
pennam
left a comment
There was a problem hiding this 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!
ad35814 to
dfaf05b
Compare
Hey friends!
This PR adds support for the Nano Matter including:
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-staticwill 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!