Skip to content

[MGM240P] issue with matter_lightbulb_multiple_color.ino -> Not responding #12

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

Closed
lboue opened this issue Feb 5, 2024 · 16 comments
Closed
Assignees

Comments

@lboue
Copy link

lboue commented Feb 5, 2024

Matter matter_lightbulb_multiple_color.ino Not responding after pairing

Hello
I am facing an issue with Matter matter_lightbulb_multiple_color.ino example. After pairing, device is not responding.

Steps to reproduce

  1. Flash matter_lightbulb_multiple_color.ino to SparkFun Thing Plus MGM240P board
  2. Pair it with Apple Home
  3. Check Matter device status in Apple Home ==> Device is not responding

unnamed

@silabs-bozont silabs-bozont self-assigned this Feb 5, 2024
@lboue
Copy link
Author

lboue commented Feb 5, 2024

For context, this is my setup:

Serial monitor log

17:23:56.665 -> Matter multiple lightbulbs
17:23:57.214 -> Waiting for network connection...
17:23:57.418 -> Device connected
17:23:57.419 -> Dimmable bulb brightness changed to 20%

@lboue
Copy link
Author

lboue commented Feb 5, 2024

Same issue with another one: matter_lightbulb.ino

Serial monitor log

18:54:28.649 -> Matter lightbulb
19:00:47.749 -> Matter device is not commissioned
19:00:47.749 -> Commission it to your Matter hub with the manual pairing code or QR code
19:00:47.749 -> Manual pairing code: 34970112332
19:00:47.749 -> QR code URL: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A6FCJ142C00KA0648G00
19:04:13.475 -> Waiting for network connection...
19:04:14.438 -> Device connected

Nothing happens when I try to switch on/off the device.

I took 6 min to change the lightbulb status in the console log. There's a big latency problem.

19:04:14.438 -> Device connected
19:10:41.775 -> Bulb ON
19:13:41.922 -> Bulb OFF
19:15:43.045 -> Bulb ON
19:22:21.939 -> Bulb OFF
19:25:21.837 -> Bulb ON

@lboue
Copy link
Author

lboue commented Feb 7, 2024

Is it possible to enable a verbose mode to identify the root cause?

@silabs-bozont
Copy link
Collaborator

Hello Iboue,
Glad it eventually started working - but you're right, it should not take 6 minutes to get synced.
Verbose logs from the Matter and Thread stack are available through RTT. You can read them with Segger's JLinkRTTViewer.
Start the RTT viewer and select the MGM240PB32VNA MCU:
image
Hit the reset on your board, then connect the RTT viewer to it. Your device should work as normal, wait for it to get synced and control the lightbulb a few times if possible. Please post the RTT logs from your device and we'll see what can cause it.

@lboue
Copy link
Author

lboue commented Feb 7, 2024

Hit the reset on your board, then connect the RTT viewer to it. Your device should work as normal, wait for it to get synced and control the lightbulb a few times if possible. Please post the RTT logs from your device and we'll see what can cause it.

I did the test. Here are the results.

J-Link RTT

[00:00:00.000][silabs ]==================================================
[00:00:00.000][silabs ]Arduino Matter device starting
[00:00:00.000][silabs ]==================================================
[00:00:00.000][silabs ]Init CHIP Stack
[00:00:00.000][silabs ]Initializing OpenThread stack
[00:00:00.000][info  ][DL] OpenThread started: OK
[00:00:00.000][info  ][DL] Setting OpenThread device type to ROUTER
[00:00:00.000][silabs ]Starting OpenThread task
[00:00:00.000][info  ][SVR] Subscription persistence not supported
[00:00:00.000][info  ][SVR] Server initializing...
[00:00:00.000][detail][FP] Initializing FabricTable from persistent storage
[00:00:00.000][info  ][TS] Last Known Good Time: 2024-02-07T19:01:23
[00:00:00.000][info  ][DMG] Acce

Serial log

22:14:03.310 -> Matter lightbulb
22:14:03.803 -> Matter device is not commissioned
22:14:03.803 -> Commission it to your Matter hub with the manual pairing code or QR code
22:14:03.803 -> Manual pairing code: 34970112332
22:14:03.803 -> QR code URL: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A6FCJ142C00KA0648G00
22:14:53.656 -> Waiting for network connection...
22:14:55.226 -> Device connected
22:23:18.117 -> Bulb ON

J-Link RTT is useless in that case.

Capture d'écran 2024-02-07 222716

@silabs-bozont
Copy link
Collaborator

Thanks for the logs and the screenshots!
Looks like your RTT log is cut super short - it should print a LOT of messages. Please make sure that you first reset your board, then connect it to the RTT viewer. Once the board is connected reset shouldn't be issued as it will not automatically connect back.

@lboue
Copy link
Author

lboue commented Feb 9, 2024

Serial logs

13:37:21.033 -> Matter lightbulb
13:37:21.569 -> Matter device is not commissioned
13:37:21.569 -> Commission it to your Matter hub with the manual pairing code or QR code
13:37:21.569 -> Manual pairing code: 34970112332
13:37:21.569 -> QR code URL: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A6FCJ142C00KA0648G00
13:41:09.708 -> Waiting for network connection...
13:41:11.342 -> Device connected
13:48:52.895 -> Bulb ON
13:50:09.116 -> Matter lightbulb
13:50:09.283 -> Waiting for network connection...
13:50:09.516 -> Device connected
13:52:53.028 -> Bulb ON
13:54:53.056 -> Bulb OFF
13:57:53.162 -> Bulb ON

Here is the RTT log:
matter_lightbulb_JRTT_13h50.log

Last lines

[00:11:29.190][detail][DMG] Fetched 0 events
[00:11:29.191][detail][DMG] <RE> Sending report (payload has 11 bytes)...
[00:11:29.191][info  ][EM] <<< [E:50630i S:26480 M:250142665] (S) Msg TX to 1:00000000212740BC [FE0B] --- Type 0001:05 (IM:ReportData)
[00:11:29.192][info  ][IN] (S) Sending msg 250142665 on secure session with LSID: 26480
[00:11:29.192][detail][DMG] IM RH moving to [AwaitingReportResponse]
[00:11:29.192][info  ][DMG] Refresh Subscribe Sync Timer with min 0 seconds and max 60 seconds
[00:11:29.192][detail][DMG] <RE> ReportsInFlight = 1 with readHandler 0, RE has no more messages
[00:11:29.193][detail][DMG] All ReadHandler-s are clean, clear GlobalDirtySet
[00:11:29.193][detail][DMG] Unblock report hold after min 0 seconds
[00:11:29.216][detail][IN] UDP Message Received packet nb : 103 SrcAddr : fd4f:21ef:e564:0:83d0:2d1d:5d3f:c9b9[58997] DestAddr : fd4f:21ef:e564:0:b684:b5e0:3915:7a0a[5540] Payload Length 42
[00:11:29.217][info  ][EM] >>> [E:50630i S:26480 M:70711547 (Ack:250142665)] (S) Msg RX from 1:00000000212740BC [FE0B] --- Type 0001:01 (IM:StatusResponse)
[00:11:29.217][detail][EM] Found matching exchange: 50630i, Delegate: 0x20008644
[00:11:29.217][detail][EM] Rxd Ack; Removing MessageCounter:250142665 from Retrans Table on exchange 50630i
[00:11:29.218][info  ][IM] Received status response, status is 0x00
[00:11:29.218][detail][DMG] <RE> OnReportConfirm: NumReports = 0
[00:11:29.218][detail][DMG] IM RH moving to [GeneratingReports]
[00:11:29.219][info  ][EM] <[00:11:31.337][detail][IN] UDP Message Received packet nb : 104 SrcAddr : fd4f:21ef:e564:0:83d0:2d1d:5d3f:c9b9[58997] DestAddr : fd4f:21ef:e564:0:b684:b5e0:3915:7a0a[5540] Payload Length 59
[00:11:31.338][info  ][EM] >>> [E:20897r S:26480 M:70711548] (S) Msg RX from 1:00000000212740BC [FE0B] --- Type 0001:08 (IM:InvokeCommandRequest)
[00:11:31.338][detail][EM] Handling via exchange: 20897r, Delegate: 0x20006b9c
[00:11:31.339][detail][DMG] Received command for Endpoint=3 Cluster=0x0000_0006 Command=0x0000_0001
[00:11:31.339][info  ][DL] emberAfExternalAttributeReadCallback
[00:11:31.339][info  ][DL] HandleReadLightbulbAttribute: clusterId=6 attrId=0
[00:11:31.339][info  ][ZCL] Toggle ep3 on/off from state 0 to 1
[00:11:31.340][info  ][DL] emberAfExter[00:11:31.341][detail][DMG] Command handler moving to [ Preparing]
[00:11:31.341][detail][DMG] Command handler moving to [AddingComm]
[00:11:31.341][detail][DMG] Command handler moving to [[00:11:31.351][detail][DMG] Fetched 0 events
[00:11:31.351][detail][DMG] <RE> Sending report (payload has 39 bytes)...
[00:11:31.352][info  ][EM] <<< [E:50631i S:26480 M:250142668] (S) Msg TX to 1:00000000212740BC [FE0B] --- Type 0001:05 (IM:ReportData)
[00:11:31.352][info  ][IN] (S) Sending msg 250142668 on secure session with LSID: 26480
[00:11:31.353][detail][DMG] IM RH moving to [AwaitingReportResponse]
[00:11:31.353][info  ][DMG] Refresh Subscribe Sync Timer with min 0 seconds and max 60 seconds
[00:11:31.354][detail][DMG] <RE> ReportsInFlight = 1 with readHandler 0, RE has no more messages
[00:11:31.354][detail][DMG] All ReadHandler-s are clean, clear GlobalDirtySet
[00:11:31.354][detail][DMG] Unblock report hold after min 0 seconds
[00:11:31.374][detail][IN] UDP Message Received packet nb : 105 SrcAddr : fd4f:21ef:e564:0:83d0:2d1d:5d3f:c9b9[58997] DestAddr : fd4f:21ef:e564:0:b684:b5e0:3915:7a0a[5540] Payload Length 34
[00:11:31.375][info  ][EM] >>> [E:20897r S:26480 M:70711549 (Ack:250142667)] (S) Msg RX from 1:00000000212740BC [FE0B] --- Type 0000:10 (SecureChannel:StandaloneAck)
[00:11:31.375][detail][EM] Found matching exchange: 20897r, Delegate: 0
[00:11:31.375][detail][EM] Rxd Ack; Removing MessageCounter:250142667 from Retrans Table on exchange 20897r
[00:11:31.384][detail][IN] UDP Message Received packet nb : 106 SrcAddr : fd4f:21ef:e564:0:83d0:2d1d:5d3f:c9b9[58997] DestAddr : fd4f:21ef:e564:0:b684:b5e0:3915:7a0a[5540] Payload Length 42
[00:11:31.384][info  ][EM] >>> [E:50631i S:26480 M:70711550 (Ack:250142668)] (S) Msg RX from 1:00000000212740BC [FE0B] --- Type 0001:01 (IM:StatusResponse)
[00:11:31.385][detail][EM] Found matching exchange: 50631i, Delegate: 0x20008644
[00:11:31.385][detail][EM] Rxd Ack; Removing MessageCounter:250142668 from Retrans Table on exchange 50631i
[00:11:31.385][info  ][IM] Received status response, status is 0x00
[00:11:31.385][detail][DMG] <RE> OnReportConfirm: NumReports = 0
[00:11:31.385][detail][DMG] IM RH moving to [GeneratingReports]
[00:11:31.386][info  ][EM] <[00:11:31.387][detail][EM] Flushed pending ack for MessageCounter:70711550 on exchange 50631i
[00:12:31.360][detail][IN] UDP Message Received packet nb : 107 SrcAddr : fd4f:21ef:e564:0:83d0:2d1d:5d3f:c9b9[58997] DestAddr : fd4f:21ef:e564:0:b684:b5e0:3915:7a0a[5540] Payload Length 59
[00:12:31.361][info  ][EM] >>> [E:20900r S:26480 M:70711551] (S) Msg RX from 1:00000000212740BC [FE0B] --- Type 0001:08 (IM:InvokeCommandRequest)
[00:12:31.361][detail][EM] Handling via exchange: 20900r, Delegate: 0x20006b9c
[00:12:31.362][detail][DMG] Received command for Endpoint=3 Cluster=0x0000_0006 Command=0x0000_0001
[00:12:31.362][info  ][DL] emberAfExternalAttributeReadCallback
[00:12:31.362][info  ][DL] HandleReadLightbulbAttribute: clusterId=6 attrId=0
[00:12:31.362][info  ][ZCL] Endpoint 3 On/off already set to new value
[00:12:31.362][detail][DMG] Comm[00:12:31.364][info  ][IN] (S) Sending msg 250142670 on secure session with LSID: 26480
[00:12:31.365][detail][DMG] Command handler moving to [CommandSen]
[00:12:31.365][detail][DMG] Comman[00:12:31.372][detail][DMG] <RE> Sending report (payload has 11 bytes)...
[00:12:31.373][info  ][EM] <<< [E:50632i S:26480 M:250142671] (S) Msg TX to 1:00000000212740BC [FE0B] --- Type 0001:05 (IM:ReportData)
[00:12:31.373][info  ][IN] (S) Sending msg 250142671 on secure session with LSID: 26480
[00:12:31.373][detail][DMG] IM RH moving to [AwaitingReportResponse]
[00:12:31.374][info  ][DMG] Refresh Subscribe Sync Timer with min 0 seconds and max 60 seconds
[00:12:31.374][detail][DMG] <RE> ReportsInFlight = 1 with readHandler 0, RE has no more messages
[00:12:31.375][detail][DMG] All ReadHandler-s are clean, clear GlobalDirtySet
[00:12:31.375][detail][00:12:31.390][detail][IN] UDP Message Received packet nb : 108 SrcAddr : fd4f:21ef:e564:0:83d0:2d1d:5d3f:c9b9[58997] DestAddr : fd4f:21ef:e564:0:b684:b5e0:3915:7a0a[5540] Payload Length 34
[00:12:31.391][info  ][EM] >>> [E:20900r S:26480 M:70711552 (Ack:250142670)] (S) Msg RX from 1:00000000212740BC [FE0B] --- Type 0000:10 (SecureChannel:StandaloneAck)
[00:12:31.391][detail][EM] Found matching exchange: 20900r, Delegate: 0
[00:12:31.391][detail][EM] Rxd Ack; Removing MessageCounter:250142670 from Retrans Table on exchange 20900r
[00:12:31.405][detail][IN] UDP Message Received packet nb : 109 SrcAddr : fd4f:21ef:e564:0:83d0:2d1d:5d3f:c9b9[58997] DestAddr : fd4f:21ef:e564:0:b684:b5e0:3915:7a0a[5540] Payload Length 42
[00:12:31.406][info  ][EM] >>> [E:50632i S:26480 M:70711553 (Ack:250142671)] (S) Msg RX from 1:00000000212740BC [FE0B] --- Type 0001:01 (IM:StatusResponse)
[00:12:31.406][detail][EM] Found matching exchange: 50632i, Delegate: 0x20008644
[00:12:31.406][detail][EM] Rxd Ack; Removing MessageCounter:250142671 from Retrans Table on exchange 50632i
[00:12:31.407][info  ][IM] Received status response, status is 0x00
[00:12:31.407][detail][DMG] <RE> OnReportConfirm: NumReports = 0
[00:12:31.407][detail][DMG] IM RH moving to [GeneratingReports]
[00:12:31.408][info  ][EM] <[00:12:31.408][detail][EM] Flushed pending ack for MessageCounter:70711553 on exchange 50632i
[00:00:00.000][silabs ]==================================================
[00:00:00.000][silabs ]Arduino Matter device starting
[00:00:00.000][silabs ]==================================================
[00:00:00.000][silabs ]Init CHIP Stack
[00:00:00.000][silabs ]Initializing OpenThread stack

@lboue
Copy link
Author

lboue commented Feb 9, 2024

Is there an IPv6 packet size limitation in your implementation that would explain these errors?

Line  361: [00:03:50.129][error ][SVR] Server initialization complete
Line  424: [00:03:51.929][error ][BLE] no endpoint for unsub recvd
Line  974: [00:04:21.632][error ][DL] _WriteThreadNetworkDiagnosticAttributeToTlv failed: Error CHIP:0x0000000B
Line  975: [00:04:21.632][error ][DMG] Error retrieving data from clusterId: 0x0000_0035, err = b
Line 1003: [00:04:21.983][error ][DL] _WriteThreadNetworkDiagnosticAttributeToTlv failed: Error CHIP:0x0000000B
Line 1004: [00:04:21.984][error ][DMG] Error retrieving data from clusterId: 0x0000_0035, err = b

Fail

Line  939: [00:04:20.991][detail][DMG] <RE:Run> first cluster event is too big so that it fails to fit in the packet!
Line  974: [00:04:21.632][error ][DL] _WriteThreadNetworkDiagnosticAttributeToTlv failed: Error CHIP:0x0000000B
Line  977: [00:04:21.633][detail][DMG] <RE:Run> first cluster event is too big so that it fails to fit in the [00:04:21.951][detail][IN] UDP Message Received packet nb : 73 SrcAddr : fd4f:21ef:e564:0:83d0:2d1d:5d3f:c9b9[58997] DestAddr : fd4f:21ef:e564:0:b684:b5e0:3915:7a0a[5540] Payload Length 42
Line 1003: [00:04:21.983][error ][DL] _WriteThreadNetworkDiagnosticAttributeToTlv failed: Error CHIP:0x0000000B
Line 1005: [00:04:21.984[00:04:21.984][detail][DMG] <RE:Run> first cluster event is too big so that it fails to fit in the packet!
Line 1050: [00:04:23.044][detail][DMG] <RE:Run> first cluster event is too big so that it fails to fit in the packet!

@lboue
Copy link
Author

lboue commented Feb 9, 2024

To compare, I build a Matter light bulb with SimplicityStudio from the SparkFun Thing Plus Matter - MGM240P Hookup Guide.
image

It works fine with the same board:

Line 1833: [00:03:53.857][info  ][ZCL] Toggle ep1 on/off from state 0 to 1
Line 1838: [00:03:53.857][info  ][ZCL] On/Toggle Command - Stop Timer
Line 1901: [00:03:56.082][info  ][ZCL] Toggle ep1 on/off from state 1 to 0
Line 1940: [00:03:57.599][info  ][ZCL] Toggle ep1 on/off from state 0 to 1
Line 1945: [00:03:57.600][info  ][ZCL] On/Toggle Command - Stop Timer
Line 1991: [00:03:58.814][info  ][ZCL] Toggle ep1 on/off from state 1 to 0
Line 2029: [00:04:36.412][info  ][ZCL] Toggle ep1 on/off from state 0 to 1
Line 2034: [00:04:36.413][info  ][ZCL] On/Toggle Command - Stop Timer

matter_SimplicityStudio_lightbulb_JRTT.log

@lboue
Copy link
Author

lboue commented Feb 12, 2024

Did you find the issue root cause?

@lboue
Copy link
Author

lboue commented Mar 25, 2024

Since the new release is delayed by a month, could you help me correct this issue?

@silabs-bozont
Copy link
Collaborator

This issue will most probably improved on in the next release, but a total fix won't be possible on the current version. Discovery time not only depends on the device, but the Matter hub as well. You could try "stimulating" your device from the app by clicking on it a few times or closing/opening the app. This workaround usually pushes the hub to discover the device quicker - you can see something happening in the RTT logs - sometimes I use this too, but YMMV.
However for me the devices were always discovered right after pairing - the delay only occurred on subsequent reboots.

@lboue
Copy link
Author

lboue commented Mar 27, 2024

So why does it work well for examples built with Simplicity Studio?
I only have this delay issue when I build with this Arduino library.
I tried with 3 boards (2 Sparkfun and 1 SiliconLabs xG24-EK2703A) and I got the same issue.
Stimulating doesn't work. I already tried.

@silabs-bozont
Copy link
Collaborator

The currently published Arduino Matter lags behind the currently released Matter SDK which is available through Studio - that's why there's a big difference between them.
The new release will update the Arduino Matter to the latest Matter SDK.

@lboue
Copy link
Author

lboue commented Apr 24, 2024

@silabs-bozont

Version 1.0 was released in January and nothing has happened since. When SL will release the update the Arduino Matter?

I check Mouser and Arduino Nano Matter is expected 25-Jul-24. Why announce so far in advance?

silabs-build-bot pushed a commit that referenced this issue May 7, 2024
* Update the core package JSON to match the published one

* Add back support for the Arduino Nano Matter

It was removed to be excluded from the first release

* Add back support for the Seeed Studio Wio MG24

It was removed to be excluded from the first release

* Update readme files

- Correct a typo in the Matter readme
- Emphasize the different bootloaders in the main readme

* Add details about the Google Home Developer Console setup to the Matter readme

* Implement multi-instance support in the I2C driver

* Add a second I2C instance on the xG24 Explorer Kit

Now the QWIIC connector can also be used

* Make the SPI peripheral configurable in ezWS2812

* Add a note to the readme about the 1.x version IDEs not being supported

* Update the Matter library readme

Add documentation for the global Matter class.
Mention the addtitonal Matter Hub device.

* Bump the version of ezWS2812 to 1.1

* Update the repo URL in the included libraries

* Update the install host and packager scripts to host the next development version

* Update the GSDK generator script to use the newest SDK versions

GSDK 4.4.0
Matter 2.2.0

* Upgrade GSDK on the ThingPlus Matter BLE variant to 4.4.0

* Upgrade GSDK on the ThingPlus Matter BLE precomp variant to 4.4.0

* Update the GSDK generator script to work with the Matter SDK 2.2.0

Changed path for the ZAP file
Removed the color endpoint number patching - issue solved in SDK
Added device name and manufacturer patching as these have moved

* Upgrade GSDK and Matter SDK on the ThingPlus Matter (Matter) precomp variant

Upgraded to GSDK 4.4.0 and Matter SDK 2.2.0

* Upgrade GSDK and Matter SDK on the ThingPlus Matter (Matter) variant

Upgraded to GSDK 4.4.0 and Matter SDK 2.2.0

* Fix starting state sync in the Matter color multiple bulb example

* Fix the capitalization of 'LED' in the readme

* Upgrade GSDK on the BGM220 Explorer Kit BLE variant to 4.4.0

* Upgrade GSDK on the BGM220 Explorer Kit BLE precomp variant to 4.4.0

* Upgrade GSDK on the xG24 Explorer Kit BLE variant to 4.4.0

* Upgrade GSDK on the xG24 Explorer Kit BLE precomp variant to 4.4.0

* Upgrade GSDK and Matter SDK on the xG24 EK (Matter) precomp variant

Upgraded to GSDK 4.4.0 and Matter SDK 2.2.0

* Upgrade GSDK and Matter SDK on the xG24 EK (Matter) variant

Upgraded to GSDK 4.4.0 and Matter SDK 2.2.0

* Upgrade GSDK on the xG27 Dev Kit variants to 4.4.0

* Upgrade GSDK on the Seeed Studio Wio MG24 variants to 4.4.0

* Upgrade GSDK on the Arduino Nano Matter BLE variants to 4.4.0

* Upgrade GSDK and Matter SDK on the Arduino Nano Matter (Matter) variants

Upgraded to GSDK 4.4.0 and Matter SDK 2.2.0

* Use GPIO input in pullup configuration in the BLE Blinky example

* Update the Matter lightbulb brightness percentage calculation to be precise

Mapping between the true range and percents had some rounding errors

* Correct typo in readme

* Add BLE and platform support for the xG24 Dev Kit (brd2601b)

Implements #11

* Add a precompiled BLE variant for the xG24 Dev Kit (brd2601b)

Implements #11

* Update docs with the xG24 Dev Kit support

Implements #11

* Add the xG24 Dev Kit to the build test script

Implements #11

* Add Matter support for the xG24 Dev Kit

Implements #12

* Add a precompiled Matter variant for the xG24 Dev Kit

Implements #12

* Add the xG24 Dev Kit Matter variants to the build test script

Also add the xG24 Dev Kit variants to the distinct categories
Implements #12

* Update list of compatible devices in the Matter examples

Implements #12

* Migrate the Si7210 driver library from Bitbucket

Implements #15

* Migrate the PDM driver library from Bitbucket

Implements #15

* Migrate the xG27 Dev Kit sensors example from Bitbucket

Implements #15

* Migrate the BLE HID keyboard example from Bitbucket

Implements #15

* Refactor the BLE HID keyboard example

Implements #15

* Refactor the xG27 Dev Kit sensors example

Implements #15

* Refactor the PDM microphone driver library

Implements #15

* Migrate the xG27 Dev Kit sensors BLE example from Bitbucket

Implements #15

* Refactor the xG27 Dev Kit sensors BLE example

Implements #15

* Migrate the ThingPlus battery gauge example from Bitbucket

Implements #15

* Implement a BLE battery level example for the ThingPlus Matter

Implements #15

* Refactor the build test script, add new examples

Implements #15

* Update example compatibility lists, correct a few typos

* Update the board specific defines for the Nano Matter

Remove the ARDUINO_ prefix as it's added by platform.txt afterwards

* Invert button state and improve LED handling in the BLE Blinky example

* Rename the Si7210Hall library to Si7210_hall

* Update the examples using Si7210 with the new name

* Refactor the Si7210_hall library

 - Refactor the included example
 - Fix I2C wake-up (previously the wake-up signal didn't go out)
 - Take the bus driver as a reference instead of a pointer
 - Define the default I2C address and speed
 - Add a constructor without parameters
 - Use initializer lists

* Update the test build script to be able to build smaller subsets

* Update Simplicity Commander to 1.16.4

Implements #33

* Implement helper script for calculating file size and checksum

Implements #33

* Repackage the new Simplicity Commander archives with zstd

The macOS archive was kept as a zip as macOS had problems with the
app signing after deflating the zstd archive.
Implements #33 #5

* Add CMSIS-pack for MGM240SD22VNA

* Nano Matter: add USB PID and upload pack

* toolchain: make path installation independent

* pyocd: fix wrong commandline on verbose params

* Implement support for the BridgedDeviceBasicInformation Matter cluster

This gives the users the option to customize their devices
Implements #41

* Bump the Matter library version to 1.1

* Fix the Si7210 library path in the build test script

* Remove unused Matter device classes

* Refactor the MatterDevice base class

* Add the new Matter example to the build test script

Also implement a SIGINT handler

* Fix the debugger path in platform.txt

* Move cluster read/write functions to the specific Matter classes

This is a major refactor - each device class is now responsible for
handling the read/write of their associated clusters. The read/write
functions are virtual and inherited from the base device class.

* Bump the year in the Matter library source files

* Move the Matter change reporting to each device class

Major refactor - each device class is now responsible for sending
the Matter change report after their own status/values change.
Now each device class encapsulates the whole functionality
of the device - no external callbacks or functions needed.

* Add GitHub issue template

* Rename the Silicon Labs example library

* Implement support for Matter Contact Sensor

Implements #45

* Update readme.md

 - Mark BLE and Matter variants
 - Separate the ezBLE readme
 - Add the Nano Matter to relevant sections

* Change the capitalization of getCPUTemp()

* Rename the device unique ID getters

* Update the Matter readme

 - Add unpairing instructions
 - Move the device property setters to the correct section

* Enable Matter Switch support and add switch example

Implements #42

* Avoid calling the Matter API from ISR context in examples

* Implement the 'Matter lightbulb with button' example

Implements #17

* Update J-Link debugging to work with the newer 2.3.x IDEs

Fixes #43

* Update the year in the SparkFun Thing Plus BLE GSDK generated files

* Make the ThingPlus BLE variants use the same bootloader as Matter

This way the bootloader won't have to be reflashed when changing
between Matter and BLE, so we avoid a massive pitfall for the users.

* Update the year in the xG24 Explorer Kit BLE GSDK generated files

* Make the xG24 Explorer Kit BLE variants use the same bootloader as Matter

* Make the xG24 Dev Kit BLE variants use the same bootloader as Matter

* Update the year in the Nano Matter BLE GSDK generated files

* Make the Nano Matter BLE variants use the same bootloader as Matter

* Update the year in the BGM220 Explorer Kit BLE GSDK generated files

* Make the BGM220 Explorer Kit use a storage-internal bootloader

This is to consistently use the same bootloader on all the variants

* Update the year in the xG27 Dev Kit BLE GSDK generated files

* Make the xG27 Dev Kit use a storage-internal bootloader

* Update the year in the Wio MG24 BLE GSDK generated files

* Make the Wio MG24 use a storage-internal bootloader

* Update readme files to reflect the unified bootloaders

* Fix the programmer highlighting in readme

* Prevent GPIO use before the system initialization finished

Calling any GPIO function before the system init finishes
causes a fault because the GPIO clocks are not enabled yet.
Any calls to GPIO functions will now have no effect
before the init finishes.

* Change the package format of the core and compiler to zstd

Implements #5

* Use OpenOCD as upload tool for the Nano Matter

* Add the OpenOCD package to the package index JSON

* Fix the OpenOCD bootloader burning command

'_' vs '-' in the interface config file path

* Add erasing support for the OpenOCD programmer

* Remove pyOCD support

OpenOCD will be used instead

* Increase the version in platform.txt to 1.1.0

* Add missing mathematical constants

* Add the Arduino-like pin definitions for the Nano Matter

* Add pinout diagram for the BGM220 Explorer Kit

Implements #16

* Add pinout diagram for the xG24 Dev Kit

* Remove the placeholder timer instance from main()

It's no longer needed to keep the uptime ticks counting

* Make millis() more precise

Using the internal conversion function we get full resolution

* Fix OpenOCD programming on Windows

A couple of extra curly braces were needed
Fixes #53

* Add verbose and quiet options to OpenOCD

* Add language specific highlighting to readme and issue_template

* Create a BLE/Matter combined variant for the Nano Matter

This variant doesn1t include the SDK sources only the precompiled
SDK is available

* Remove the old variant files of the Nano Matter

* Create a BLE/Matter combined variant for the Thing Plus Matter

* Remove the old variant files of the Thing Plus Matter

* Create a BLE/Matter combined variant for the xG24 Explorer Kit

* Remove the old variant files of the xG24 Explorer Kit

* Create a BLE/Matter combined variant for the xG24 Dev Kit

* Remove the old variant files of the xG24 Dev Kit

* Create a combined BLE variant for the xG27 Dev Kit

* Remove the old variant files of the xG27 Dev Kit

* Create a combined BLE variant for the Seeed Studio Wio MG24

* Remove the old variant files of the Seeed Studio Wio MG24

* Create a combined BLE variant for the BGM220 Explorer Kit

* Remove the old variant files of the BGM220 Explorer Kit

* Rearrange boards.txt, move the Wio MG24 up to the third-party boards

* Remove the hard button requirement from the BLE lightswitch client example

* Update the build test script to work with the new variant scheme

* Update readme to reflect the variant changes

* Update readme wording to include the Settings/Preferences for all platforms

macOS - Settings
Windows / Linux - Preferences

* Disable SWO and RAIL PTI by default

These take up precious GPIO, so they have to be off by default.
Users can reenable them if needed.
Fixes #55

* Fix the initial state in pulseIn()

pulseIn() should wait for the requested state and measure
the time elapsed until the opposite of the requested state
Fixes #57

* Add guard to host_local_install.py to ensure running from the 'package' directory

* Simplify organization of the board support slcp files

* Add a 'no radio' variant for the BGM220 Explorer Kit

* Add a 'no radio' variant for the Nano Matter

* Add a 'no radio' variant for the Sparkfun Thing Plus Matter

* Add a 'no radio' variant for the Seeed Studio Wio MG24

* Add a 'no radio' variant for the xG27 Dev Kit

* Add a 'no radio' variant for the xG24 Explorer Kit

* Add a 'no radio' variant for the xG24 Dev Kit

* Move the configurations down in the GSDK generator script

* Update readme.md with more radio stack information

* Handle active low/high built-in LED configurations simultaneously

* Correct typo in ezBLE

* Change issue template to the new format

* Update the title and labels in the new issue templates

* Implement function to check whether a Matter device is online

Online in this context means that it has been discovered by the Matter hub
and is able to communicate with it.

* Update the year in the Thing Plus Matter generated files

* Regenerate GSDK and Matter SDK for the Nano Matter (Matter)

We use our own Window Covering server implementation, so
the included one was removed.
Window Covering cluster commands were added to the ZAP file.

* Regenerate GSDK and Matter SDK for the xG24 Explorer Kit (Matter)

We use our own Window Covering server implementation, so
the included one was removed.
Window Covering cluster commands were added to the ZAP file.

* Regenerate GSDK and Matter SDK for the xG24 Dev Kit (Matter)

We use our own Window Covering server implementation, so
the included one was removed.
Window Covering cluster commands were added to the ZAP file.

* Add support for Matter Window Covering

Implements #21

* Regenerate GSDK and Matter SDK for the ThingPlus Matter (Matter)

We use our own Window Covering server implementation, so
the included one was removed.
Window Covering cluster commands were added to the ZAP file.

* Rework pin mapping to be Arduino-like

Implements #9 #59

* Offset PinName to avoid overlap with pin indexes

This way if a PinName is implicitly converted to pin_size_t
it can be distinguised and handled accordingly.
This offers more compatibility between the different pin mappings.

* Update the pinout diagrams with the new pin names

* Rework ADC to work with the new pin mapping scheme

* Mark all DAC pins on the pinout diagrams and pin maps

* Add a new I2C and remap SPI1 on the Nano Matter

* Increase number of max LEDs in ezWS2812

Use uint32_t instead of uint8_t

* Add interrupt lock/unlock to ezWS2812 examples

In the future these will have to be moved inside the driver

* Update readme with instructions for 'discussions'

* Properly escape paths in boards.txt and platform.txt

Fixes #75

* Add specific exit codes to the build test script

This will help when running the script from CI

* debugger: implement new interface

* Make OpenOCD debugging Nano Matter specific, update readme

* Bump the Matter Color Control cluster revision from 5 to 6

* Set the Matter Level Control cluster max values to 254

According to the specification this is the maximum allowed value

* Bump the Matter Basic Information cluster revision to 2

* Remove the Matter Identify cluster from the Aggregator endpoint

* Implement support for the Matter Identify cluster

Right now only the lightbulbs use it, but it can be easily
extended to support all available endpoints.

* Regenerate GSDK and Matter SDK for all Matter variants

* Add missing cluster attributes to Matter On/Off lightbulbs

* Change the Matter Vendor ID and Name according to each board

* Change the board number of the Nano Matter to brd2707a

brd9050 was already taken - brd2707 was assigned instead

* Add OpenThread RCP firmware image for the Nano Matter

* Fix Matter onboarding QR code to include provisioned data

By a known issue the regular GetQRCode() function always uses the
default set-up pin even when it's changed,
reulting in an uncommissionable device. This new method extracts the
onboarding payload and generates the QR from that - and it now includes
the changed PIN - so it can be used for onboarding.

* Implement compiler warning monitoring in the build test script

* Implement support for Matter On/Off Plug-in Unit / Outlet

Implements #83

* Add toggle functionality to the Matter Lightbulb

* Remove the Seeed Studio Wio MG24 variant

The board won't be released soon - we can add
it back later if it comes out.

* Implement support for Matter Air Quality sensor

* initial: add core-api

* add Serial refactoring

* add ArduinoCore-API as a submodule

* move core api in 'extra' folder

* Serial extern refinement

* fix wiring management

* using namespace in Wire lib

* create Interrupt and Tone files

* add missing Silicon Labs MIT license

* fix attachInterrupt prototype issue and remove unused stuff

* cosmetics (uncrustify)

* SPI library refactoring

* externalization of Wire and SPI libraries

* suppressing unused param warnings

* fix compilation issue in ezBLE and ezWS2812 lib

* fix random function prototypes

* add api folder in the include path

* Remove the default value from 'block' in SPI.transfer()

This resolves the ambiguity with the base class.
Also, change the default transfer type to blocking.

* Add the Matter Air Quality sensor example to the build test script

* Add missing newlines in MatterOnOffPluginUnit

* Update the core packager script to include the Core-API

* Update the readme with instructions for using the Core-API

* Update the product link for the Nano Matter in the readme

* Bump the core version to 2.0.0

* Reword the Matter compatibility warning message

* Fix the Nano Matter color lightbulb example and add it to the tests

* Corrections in the global and Matter readme

* Update the 'made with' section in the readme

* Fix the signature of delayMicroseconds()

* Fix the signature of the shift functions

Also add more core function calls to the test sketch

* Fix 'pin_name_clock' paramteter passing in shiftIn()

* Add more SPI and Wire calls to the test sketch

* Bump the Matter library version to 2.0.0 to be in sync with the core

* Add pin definitions for all Serial/Wire/SPI peripherals

* Fix DAC initialization, add missing DAC instances

Output pin is now explicitly initialized to 'gpioModeWiredOr'

---------

Co-authored-by: Martino Facchin <[email protected]>
Co-authored-by: Hai Nguyen <[email protected]>
Co-authored-by: Leonardo Cavagnis <[email protected]>
@lboue
Copy link
Author

lboue commented May 9, 2024

Fixed by release 2.0.0.

@lboue lboue closed this as completed May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants