Matter Light Switch Sample - Kernel panic

I have the matter light switch sample, SDK 3.4.0, on the nRF52840 Dev Kit. I can bind it with a light using Home Assistant (Ikea light) and it works OK. However after a while, or if I just power the dev kit down and up again I get the following from the serial output

 

I: 302 [IN]CASE Server enabling CASE session setups

D: 307 [IN]SecureSession[0x2000fb28]: Allocated Type:2 LSID:40469

I: 313 [SVR]Server Listening...

I: 316 [DL]Device Configuration:

I: 319 [DL]  Serial Number: 11223344556677889900

I: 323 [DL]  Vendor Id: 65521 (0xFFF1)

I: 327 [DL]  Product Id: 32772 (0x8004)

I: 330 [DL]  Product Name: Matter Light Switch

I: 334 [DL]  Hardware Version: 0

I: 337 [DL]  Setup Pin Code (0 for UNKNOWN/ERROR): 20202021

I: 342 [DL]  Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00)

I: 349 [DL]  Manufacturing Date: 2022-01-01

I: 353 [DL]  Device Type: 65535 (0xFFFF)

I: 356 [SVR]SetupQRCode: [MT:4CT9142C00KA0648G00]

I: 361 [SVR]Copy/paste the below URL in a browser to see the QR Code:

I: 367 [SVR]project-chip.github.io/.../qrcode.html

I: 375 [SVR]Manual pairing code: [34970112332]

I: Initialize binding Handler

D: 383 [DIS]OperationalSessionSetup[2:00000000000000F9]: State change 1 --> 2

D: 389 [DIS]OperationalSessionSetup[2:00000000000000F9]: State change 2 --> 1

E: 396 [SVR]Failed to establish connection to node 0x00000000000000F9

I: Binding Table size: [1]:

I: [0] UNICAST:

abort()

E: r0/a1:  0x00000004  r1/a2:  0x000b4014  r2/a3:  0x00000000

E: r3/a4:  0x00000004 r12/ip:  0x20011a50 r14/lr:  0x0001cb45

E:  xpsr:  0x210f0000

E: Faulting instruction address (r15/pc): 0x0001cb54

E: >>> ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0

E: Current thread: 0x20008758 (CHIP)

E: Halting system

The node of the Light is "F9" as in the output. The light is working and can be controlled from Home Assistant. Resetting the dev kit makes no difference.

I saw from a previous posting on the same subject that increasing the size of CONFIG_OPENTHREAD_THREAD_STACK_SIZE might help. I have tried doubling this to 8192 but there is no difference. I have also tried a nanoleaf light with the same result.

Parents Reply
  • Hi Maria,

    HA's Matter Server which creates the bindings and allows all relevant clusters to be bound with one command is using "matter.js" (https://github.com/matter-js/matter.js) and is based on Matter 1.5.1

    The work around at the moment is to not use the "all relevant" option but to create two bindings, one for onoff and one for level. The sample app works fine with the "all relevant" binding option and controls the light for both onoff and level, it is only when the "print binding table" gets called that the fault occurs.

    Best regards

    Tony

Children
  • Hi Maria,

    I have looked further into the Matter 1.5 standard.

    My understanding is that a binding can exist which specifies the end node (or group) without giving a cluster number. The binding node app will then be able to control any available cluster on the end node or group.

    The image shows an example given in the Matter spec where a group is specified but the nodes and clusters are omitted.

    The HA Matter server creates a single binding table where the controlling node and end node are included but the cluster number is omitted. I thank this is correct but is why the "print binding table" function fails becaue it expects a cluster number.

    Best regards

    Tony

  • Hi Tony, 

    Thank you for checking that the Matter versions matched. 

    Our developers confirmed that the binding table printing has a bug and they will prepare a bugfix. It will not be patched into NCS, but the relevant commit can be applied manually. In essence, the fix includes verifying that entry.clusterId.HasValue() is true before trying to fetch the ID. 

    Thank you for bringing this to our attention.

    Best regards,

    Maria

  • Hi Maria,

    Many thanks for helping me with this, it is much appreciated.

    Kind regards,

    Tony

Related