Skip to the content
PCBKitNew board
4 layersMatterbtn, the printed circuit board in 3D

Matter Smart Home Button with ESP32-H2

Copper layers
4
Thickness
1.6 mm
Parts
55
Nets
51
Pads
189
Tracks, vias
290, 36
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
7 Sep 2026
Updated
10 Sep 2026

Overview

Matterbtn is an open-source printed circuit board by Tee6, from the Tee6/ESP32-H2-Matter-Button repository on GitHub. It is a 4-layer board with 55 parts on 51 nets, routed with 290 tracks and 36 vias.

It is built around the ESP32-H2FH4, MCP1700T-3302E/TT(MS) and MCP73831T-2ATI/OT-HXY, with the USBLC6-2SC6, 2450AT18A100E and PH2.0-2P-LT among its other parts. Its parts include 21 capacitors, 16 resistors, 4 ICs, 4 inductors and 3 switches. It belongs with the home automation and IoT boards and the ESP32 and RISC-V boards of this library.

Main components

7

README

README.md

ESP32-H2 Matter Smart Button

Batteriebetriebener Taster mit eigener Platine (auf Basis des ESP32-H2) und eigener Firmware. Er basiert auf dem Matter-Standard und lässt sich damit direkt in Apple Home, Google Home, Amazon Alexa und Home Assistant einbinden.

PCB-Render, Oberseite PCB-Render, Unterseite

Features

  • Lässt sich in jedes Matter-kompatible Smart Home als Matter Generic Switch einbinden.
  • Erkennt mehrere Tastenereignisse (kurzer Druck, langer Druck, Mehrfachdruck bis 5×, Loslassen).
  • Dank des Sleep Mode zieht der Taster im Ruhezustand nur etwa 100 µA, wodurch mit einer 280-mAh-Zelle je nach Nutzung eine Laufzeit von bis zu drei Monaten möglich ist.
  • Der MCP73831-Ladecontroller lädt den LiPo-Akku per USB-C.
  • Die Akkuspannung wird bei jedem Knopfdruck an das Smart Home gesendet, damit erkennbar ist, ob der Taster geladen werden muss.
  • Werksreset (Commissioning-Modus) durch 30 Sekunden langes Halten des Knopfes, mit Blink-Feedback bei 10 s und 20 s.

Repository-Aufbau

text
.
├── firmware/     ESP-IDF- + ESP-Matter-Anwendung (C++)
├── hardware/     KiCad-Schaltplan, Platinenlayout und Fertigungsdaten
└── images/       PCB-Renders, Schaltplan-Export, Matter QR Code

firmware/

Anwendungs-Firmware für den ESP32-H2, aufbauend auf Espressifs ESP-Matter-SDK.

  • app_main.cpp: Aufbau von Matter-Node und Endpunkten: Generic-Switch-Endpunkt mit dem Funktionsumfang eines Momentschalters (Initial Press, Release, Long Press, Multi-Press) sowie ein Power-Source-Endpunkt für den Akku.
  • app_driver.cpp: Tasten-Treiber, LED-Rückmeldung und Batterieüberwachung: kalibrierte Einzelmessungen des ADC, gemittelt über 16 Samples, Kompensation des Spannungsteilers und eine lineare Li-Po-Entladekurve, abgebildet auf Matters Bereich 0–200 für BatPercentRemaining (Schrittweite 0,5 %).

Hinweise zu Bauen, Flashen und Einbinden stehen in firmware/README.md.

hardware/

KiCad-Projekt der runden Platine: ESP32-H2-Modul, USB-C-Buchse, MCP73831-Li-Po-Lader, Spannungsteiler zur Akkumessung, Taster und Antennen-Anpassnetzwerk. Enthält eigene Footprint- und Symbolbibliotheken für die nicht standardisierten Bauteile sowie JLCPCB-fertige Fertigungsdaten (BOM, Bestückung, Gerber) unter hardware/production/.

Das Anpassnetzwerk wurde ausschließlich nach den Vorgaben von Espressif und dem Datenblatt der Antenne entworfen. Um eine ideale Reichweite zu erzielen, müsste man konkrete Messungen vornehmen, für die mir aktuell keine Messgeräte zur Verfügung stehen. Meine Mindestreichweite (überall in meiner 70 m² großen Wohnung) wurde jedoch erreicht.

Software-Änderungen

Ausgangspunkt war examples/generic_switch aus dem ESP-Matter-SDK. Daran wurde Folgendes geändert:

Sleep Mode

Das ursprüngliche Beispiel läuft als Thread-Router mit dauerhaft eingeschaltetem Empfänger und zieht rund 27 mA. Das wären bei einer 280-mAh-Zelle gerade mal knapp 10 Stunden. Deshalb waren einige Änderungen nötig:

  • esp_pm_configure() mit light_sleep_enable = true in app_main.cpp, um den Sleep Mode aktivieren zu können.
  • .enable_power_save = true in der GPIO-Konfiguration des Tasters, damit der Chip nicht unnötig oft aus dem Sleep Mode geweckt wird.
  • Benachrichtigung des ICD-Managers bei Tastendruck (ICDNotifier::NotifyNetworkActivityNotification), damit ein Druck das Gerät sofort in den Active Mode holt.
  • Konfiguration in sdkconfig.defaults.esp32h2: OpenThread als Minimal Thread Device, ICD-Server mit den SIT-Werten aus examples/icd_app, Schlafmodus für Funk und BLE sowie CONFIG_ENABLE_CHIP_SHELL=n, weil die Shell im Betrieb sowieso nicht benutzt wird.

Bewusst nicht gesetzt ist CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP: Wird die GPIO-Peripherie im Schlaf abgeschaltet, gehen kurze Tastendrücke verloren, weil der Treiber seinen Timer erst beim GPIO-Interrupt wieder startet.

Ergebnis: rund 100 µA im Ruhezustand statt 27 mA.

Power Source / Akku

Im Original nicht vorhanden. Ergänzt wurde ein zweiter Endpunkt mit dem Power-Source-Cluster, der Spannung und Ladezustand meldet. Gemessen wird über einen 1:1-Spannungsteiler am ADC, und zwar bedarfsgesteuert bei jedem Tastendruck statt zyklisch.

Werksreset über die Taste

30 Sekunden Halten löscht die Commissioning-Daten und startet neu, sodass sich der Taster in ein anderes Smart Home einbinden lässt. Bei 10 und 20 Sekunden gibt es je einen längeren Blinkimpuls als Countdown, damit das Halten nicht blind erfolgt.

Status

Privates Projekt. Es fehlt noch ein passendes Gehäuse. Für die bearbeitung der Software wurde KI (Claude) verwendet

Parts

55
QtyValueFootprintReferences
710kResistor_SMD:R_0805_2012MetricR2, R6, R7, R8, R9, R12, R13
40.1µFCapacitor_SMD:C_0402_1005MetricC4, C14, C16, C17
41µFCapacitor_SMD:C_0805_2012MetricC3, C8, C13, C19
20.1µFCapacitor_SMD:C_0805_2012MetricC5, C21
21.5pFCapacitor_SMD:C_0201_0603MetricC11, C12
215pFCapacitor_SMD:C_0805_2012MetricC6, C7
21MegResistor_SMD:R_0805_2012MetricR14, R15
222RResistor_SMD:R_0805_2012MetricR10, R11
24.7µFCapacitor_SMD:C_0805_2012MetricC1, C2
25.1kResistor_SMD:R_0402_1005MetricR3, R4
2NCCapacitor_SMD:C_0805_2012MetricC9, C10
10RResistor_SMD:R_0805_2012MetricR5
110nFCapacitor_SMD:C_0402_1005MetricC15
110µFCapacitor_SMD:C_0805_2012MetricC18
11kResistor_SMD:R_0805_2012MetricR16
11pFCapacitor_SMD:C_0201_0603MetricC20
12.5nHInductor_SMD:L_0201_0603MetricL2
12.7nHInductor_SMD:L_0201_0603MetricL3
12450AT18A100Eantenna:ANT-SMD_L3.2-W1.6AE1
124nHInductor_SMD:L_0603_1608MetricL1
13.9nHInductor_SMD:L_0201_0603MetricL4
1470RResistor_SMD:R_0805_2012MetricR1
1BOOTbtn:SW-SMD_4P-L4.2-W3.4-P2.15-LS5.2SW1
1ESP32-H2FH4ESP32:ESP32U4
1LED_GREENLED_SMD:LED_0201_0603MetricD1
1LOGOLOGOG***
1MCP1700T-3302E/TTldo:ldoU3
1MCP73831T-2ATI/OTMCP73831:MCP738312U2
1Matterbtn:SW-SMD_4P-L4.2-W3.4-P2.15-LS5.2SW3
1MatterLEDLED_SMD:LED_0201_0603MetricD2
1PH2.0-2P-LTph20:ph20CN1
1RESETbtn:SW-SMD_4P-L4.2-W3.4-P2.15-LS5.2SW2
1TYPE-C 16PIN 2MD(073)usbc:usbcUSB1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U1
1X322532MOB4SIquartz:CRYSTAL-SMD_4P-L3.2-W2.5-BLX1

Questions

What parts does the Matterbtn use?

55 parts, built around the ESP32-H2FH4, MCP1700T-3302E/TT(MS), MCP73831T-2ATI/OT-HXY and USBLC6-2SC6. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Matterbtn KiCad files?

From the Tee6/ESP32-H2-Matter-Button repository on GitHub, at the commit this page was made from: the board is hardware/matterbtn.kicad_pcb and its schematic hardware/ESP32-H2_sch.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Matterbtn design in my own project?

Its repository states no licence, so its author keeps all rights: ask Tee6 before reusing the design.

Similar boards

  • 2 layersWifi, the printed circuit board in 3D

    Wifi

    foxwithahdie/vr-controller

    3 parts
  • 4 layers30 × 34.6 mmKeyboard QFAA, the printed circuit board in 3D

    Keyboard QFAA

    anhenaobe/nrf52840-modular-wireless-som

    Reusable four-layer nRF52840 wireless SoM with BLE, USB-C, LiPo charging, buck-boost power management, RF antenna integration, and manufacturing-ready outputs.

    66 partsGPL-3.0
  • 2 layers58.1 × 91.3 mmMeshcore solar, the printed circuit board in 3D

    Meshcore solar

    haydenkz/rak4630-solar-pcb

    Solar-powered MeshCore node PCB built around the RAK4630-8-SM-I (nRF52840 + SX1262 LoRa) module.

    55 parts1
  • 2 layers53.5 × 58.5 mmDrone fc v1.0, the printed circuit board in 3D

    Drone fc v1.0

    ehuang2021/drone-fc

    A drone flight controller, with multithreaded firmware, and a custom PCB

    26 parts
  • 2 layers90.4 × 89.6 mmPolicyBadge25, the printed circuit board in 3D

    PolicyBadge25

    mosfet0/policyatdc33

    Policy@DEF CON 33 Badge collaboration

    68 partsGPL-3.0
  • 4 layers61.8 × 27.5 mmAudio Processing HW V1.0, the printed circuit board in 3D

    Audio Processing HW V1.0

    aitesam961/OpenADSP

    An Embedded Digital Signal Processing Device for Audio signals.

    83 parts4GPL-3.0
  • 2 layers285 × 94.6 mmShapeshifter 4060 v2 3, the printed circuit board in 3D

    Shapeshifter 4060 v2 3

    kitsunekeyboards/shapeshifter4060

    Home of the Shapeshifter 4060 keyboard

    156 parts1MIT
  • 2 layers285 × 94.6 mmPH60 Rev3, the printed circuit board in 3D

    PH60 Rev3

    ph-design/PH60

    A printable 60% multi-layout wireless keyboard suite.

    264 parts163