/esp32-arduino-matter

Matter IoT protocol library for ESP32 working on Arduino framework

Apache License 2.0Apache-2.0

ESP32 Arduino Matter

This projects aims at possibility to easily launch Matter internet-of-things protocol on ESP32 with Arduino. Repository contains precompiled and ready to use components from two projects: Espressif's SDK for Matter and Matter.

Installing on Arduino IDE

  1. Make sure that ESP32 board version is 2.0.14. This is crucial, because this library contains pre-compiled files.
  2. Turn on C++17 support for Arduino.
  3. Download and import library into Arduino IDE.
  4. Choose larger partition scheme, for example Minimal SPIFFS.
  5. To prevent some issues related to old data, enable Erase Flash Before Sketch Upload option.
  6. Run example sketch.

Installing on PlatformIO

  1. Use espressif32 platform at version compatible with 2.0.14 arduino-esp32 core version (you can determine it by looking at changelog here). Other versions might work, but there is no guarantee - this library contains precompiled libraries and binaries might or might not be compatible. Set that version by adding: platform = espressif32@x.x.x in platformio.ini.
  2. Turn on C++17 support, by setting build_unflags=-std=gnu++11 and build_flags=-std=gnu++17 in platformio.ini.
  3. Copy the latest release zip file URL into the lib_deps section of platformio.ini, (:warning: you cannot use this repository URL in platformio.ini because this repository does not contain binaries due to their large size).
  4. Choose larger partition scheme, for example board_build.partitions=min_spiffs.csv in platformio.ini. min_spiffs.csv is one of build-in partition schemas and does need to be created.
  5. Run example sketch.

Example usage

In examples folder there are some sketches that demonstrates usage of Matter. Light example is tested every release. Example sketches are in release created from esp32-arduino-matter-builder repository.

Compatibility

This project contains precompiled libraries based on specific version of ESP32 SDK and this library does not guarantee support for other versions. Current build is based on esp-idf at version v4.4.6 and will work with Arduino IDE on ESP32 board at version 2.0.14

Limitations

  • Library only works on ESP32 (ESP32-C3 and ESP32-S3 might work as well, but aren't tested).
  • This library comes with precompiled NimBLE, because default Bluedroid shipped with arduino-esp32 takes too much RAM memory.
  • Matter Controllers such as Apple Home, Google Home, SmartThings and others might not have full support of all device types.
  • This repository does not contain source code of this library, because binaries were too big and exceeded Github limits. Please look at Github releases to download whole package. All library files without binaries are stored here.

Versions

This project is currently build based on these projects:

Project Tag / Commit hash
esp32-arduino-matter-builder v1.0.0-beta7
Matter v1.1.0.2
esp-matter dd4f34e
esp-idf v4.4.6
arduino-esp32 2.0.14

Enabling C++17 on Arduino IDE

  1. Find platform.txt for ESP32 board. Location of this file is platform depended.

    MacOS: ~/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/platform.txt

    Windows: C:\Users\<USER>\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14\platform.txt

  2. Inside platform.txt find ESP32 Support Start section and it's compiler.cpp.flags.esp32 key. Change -std=gnu++11 to -std=gnu++17. Do the same thing for ESP32S3 and ESP32C3 Support Start section if you are using ESP32-S3/ESP32-C3.

  3. Restart Arduino IDE.

Rest of files and process of building custom version of this library

Please look here.