{"id":27382081,"url":"https://github.com/lukaskirner/matter-arduino","last_synced_at":"2025-07-17T14:05:29.320Z","repository":{"id":98096822,"uuid":"599995286","full_name":"lukaskirner/matter-arduino","owner":"lukaskirner","description":"Arduino Nano 33 BLE with Matter","archived":false,"fork":false,"pushed_at":"2023-03-20T17:52:06.000Z","size":49,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-13T15:35:31.383Z","etag":null,"topics":["arduino","matter","nrf52840","openthread"],"latest_commit_sha":null,"homepage":"","language":"ZAP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lukaskirner.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-02-10T10:48:41.000Z","updated_at":"2024-06-01T12:56:53.000Z","dependencies_parsed_at":"2023-04-21T18:02:05.528Z","dependency_job_id":null,"html_url":"https://github.com/lukaskirner/matter-arduino","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lukaskirner/matter-arduino","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukaskirner%2Fmatter-arduino","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukaskirner%2Fmatter-arduino/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukaskirner%2Fmatter-arduino/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukaskirner%2Fmatter-arduino/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukaskirner","download_url":"https://codeload.github.com/lukaskirner/matter-arduino/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukaskirner%2Fmatter-arduino/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265614195,"owners_count":23798399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","matter","nrf52840","openthread"],"created_at":"2025-04-13T15:26:56.813Z","updated_at":"2025-07-17T14:05:29.314Z","avatar_url":"https://github.com/lukaskirner.png","language":"ZAP","funding_links":[],"categories":[],"sub_categories":[],"readme":".. _matter_template_sample:\n\nMatter: Template\n################\n\n.. contents::\n   :local:\n   :depth: 2\n\nThis sample demonstrates a minimal implementation of the :ref:`Matter \u003cug_matter\u003e` application layer.\nThis basic implementation enables the commissioning on the device, which allows it to join a Matter network built on top of a low-power, 802.15.4 Thread network or on top of a Wi-Fi network.\nSupport for both Thread and Wi-Fi is mutually exclusive and depends on the hardware platform, so only one protocol can be supported for a specific Matter device.\nIn case of Thread, this device works as a Thread :ref:`Minimal End Device \u003cthread_ot_device_types\u003e`.\n\nUse this sample as a reference for developing your own application.\nSee the :ref:`ug_matter_creating_accessory` page for an overview of the process you need to follow.\n\nRequirements\n************\n\n.. note::\n    |matter_wifi_revb_ncs220_test_note|\n\nThe sample supports the following development kits:\n\n.. table-from-sample-yaml::\n\nFor testing purposes, that is to commission the device and :ref:`control it remotely \u003cmatter_template_network_mode\u003e` through a Thread network, you also need a Matter controller device :ref:`configured on PC or smartphone \u003cug_matter_configuring\u003e`. This requires additional hardware depending on the setup you choose.\n\n.. note::\n    |matter_gn_required_note|\n\nIPv6 network support\n====================\n\nThe development kits for this sample offer the following IPv6 network support for Matter:\n\n* Matter over Thread is supported for ``nrf52840dk_nrf52840``, ``nrf5340dk_nrf5340_cpuapp``, and ``nrf21540dk_nrf52840``.\n* Matter over Wi-Fi is supported for ``nrf5340dk_nrf5340_cpuapp`` with the ``nrf7002_ek`` shield attached or for ``nrf7002dk_nrf5340_cpuapp``.\n\nOverview\n********\n\nThe sample starts the Bluetooth® LE advertising automatically and prepares the Matter device for commissioning into a Matter-enabled Thread network.\nThe sample uses an LED to show the state of the connection.\nYou can press a button to start the factory reset when needed.\n\n.. _matter_template_network_mode:\n\nRemote testing in a network\n===========================\n\nTesting in either a Matter-enabled Thread or a Wi-Fi network requires a Matter controller that you can configure on PC or mobile device.\nBy default, the Matter accessory device has IPv6 networking disabled.\nYou must pair the device with the Matter controller over Bluetooth® LE to get the configuration from the controller to use the device within a Thread or a Wi-Fi network.\nYou can enable the controller after :ref:`building and running the sample \u003cmatter_template_network_testing\u003e`.\n\nTo pair the device, the controller must get the commissioning information from the Matter accessory device and provision the device into the network.\n\nCommissioning in Matter\n-----------------------\n\nIn Matter, the commissioning procedure takes place over Bluetooth LE between a Matter accessory device and the Matter controller, where the controller has the commissioner role.\nWhen the procedure has completed, the device is equipped with all information needed to securely operate in the Matter network.\n\nDuring the last part of the commissioning procedure (the provisioning operation), the Matter controller sends the Thread or Wi-Fi network credentials to the Matter accessory device.\nAs a result, the device can join the IPv6 network and communicate with other devices in the network.\n\nTo start the commissioning procedure, the controller must get the commissioning information from the Matter accessory device.\nThe data payload includes the device discriminator and setup PIN code.\nThe payload is encoded within a QR code, printed to the UART console.\n\nConfiguration\n*************\n\n|config|\n\nMatter template build types\n===========================\n\n.. include:: ../lock/README.rst\n    :start-after: matter_door_lock_sample_configuration_file_types_start\n    :end-before: matter_door_lock_sample_configuration_file_types_end\n\nDevice Firmware Upgrade support\n===============================\n\n.. include:: ../lock/README.rst\n    :start-after: matter_door_lock_sample_build_with_dfu_start\n    :end-before: matter_door_lock_sample_build_with_dfu_end\n\nFEM support\n===========\n\n.. include:: /includes/sample_fem_support.txt\n\nUser interface\n**************\n\n.. include:: ../lock/README.rst\n    :start-after: matter_door_lock_sample_led1_start\n    :end-before: matter_door_lock_sample_led1_end\n\nButton 1:\n     If pressed for six seconds, it initiates the factory reset of the device.\n     Releasing the button within the six-second window cancels the factory reset procedure.\n\n.. include:: ../lock/README.rst\n    :start-after: matter_door_lock_sample_jlink_start\n    :end-before: matter_door_lock_sample_jlink_end\n\nBuilding and running\n********************\n\n.. |sample path| replace:: :file:`samples/matter/template`\n\n.. include:: /includes/build_and_run.txt\n\nSelecting a build type\n======================\n\nBefore you start testing the application, you can select one of the `Matter template build types`_, depending on your building method.\n\nSelecting a build type in |VSC|\n-------------------------------\n\n.. include:: /gs_modifying.rst\n   :start-after: build_types_selection_vsc_start\n   :end-before: build_types_selection_vsc_end\n\nSelecting a build type from command line\n----------------------------------------\n\n.. include:: /gs_modifying.rst\n   :start-after: build_types_selection_cmd_start\n   :end-before: For example, you can replace the\n\nFor example, you can replace the *selected_build_type* variable to build the ``release`` firmware for ``nrf52840dk_nrf52840`` by running the following command in the project directory:\n\n.. parsed-literal::\n   :class: highlight\n\n   west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -- -DCONF_FILE=prj_release.conf\n\nThe ``build_nrf52840dk_nrf52840`` parameter specifies the output directory for the build files.\n\n.. note::\n   If the selected board does not support the selected build type, the build is interrupted.\n   For example, if the ``shell`` build type is not supported by the selected board, the following notification appears:\n\n   .. code-block:: console\n\n      File not found: ./ncs/nrf/samples/matter/template/configuration/nrf52840dk_nrf52840/prj_shell.conf\n\nTesting\n=======\n\nWhen you have built the sample and programmed it to your development kit, it automatically starts the Bluetooth LE advertising and the **LED1** starts flashing (Short Flash On).\nAt this point, you can press **Button 1** for six seconds to initiate the factory reset of the device.\n\n.. note::\n    If you are new to Matter, commission the Matter device using the Mobile Controller for Android (CHIP Tool for Android) when :ref:`setting up the Matter development environment \u003cug_matter_configuring_mobile\u003e`.\n\n.. _matter_template_network_testing:\n\nTesting in a network\n--------------------\n\nTo test the sample in a Matter-enabled Thread network, complete the following steps:\n\n.. matter_template_sample_testing_start\n\n1. |connect_kit|\n#. |connect_terminal_ANSI|\n#. Commission the device into a Matter network by following the guides linked on the :ref:`ug_matter_configuring` page for the Matter controller you want to use.\n   The guides walk you through the following steps:\n\n   * Only if you are configuring Matter over Thread: Configure the Thread Border Router.\n   * Build and install the Matter controller.\n   * Commission the device.\n   * Send Matter commands.\n\n   At the end of this procedure, **LED 1** of the Matter device programmed with the sample starts flashing in the Short Flash Off state.\n   This indicates that the device is fully provisioned, but does not yet have full IPv6 network connectivity.\n#. Press **Button 1** for six seconds to initiate the factory reset of the device.\n\nThe device reboots after all its settings are erased.\n\nUpgrading the device firmware\n=============================\n\nTo upgrade the device firmware, complete the steps listed for the selected method in the :doc:`matter:nrfconnect_examples_software_update` tutorial of the Matter documentation.\n\nDependencies\n************\n\nThis sample uses the Matter library that includes the |NCS| platform integration layer:\n\n* `Matter`_\n\nIn addition, the sample uses the following |NCS| components:\n\n* :ref:`dk_buttons_and_leds_readme`\n\nThe sample depends on the following Zephyr libraries:\n\n* :ref:`zephyr:logging_api`\n* :ref:`zephyr:kernel_api`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukaskirner%2Fmatter-arduino","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukaskirner%2Fmatter-arduino","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukaskirner%2Fmatter-arduino/lists"}