Files
2026-02-03 15:30:42 +08:00
..
2025-12-11 18:35:00 +08:00
2026-02-03 15:30:42 +08:00
2025-12-11 18:35:00 +08:00
2025-12-11 18:35:00 +08:00
2025-12-11 18:35:00 +08:00
2025-12-11 18:35:00 +08:00

Rainmaker Bridge

This example demonstrates a Matter-Rainmaker Bridge that bridges Rainmaker devices to the Matter fabric.

The Matter Bridge device runs on ESP32-S3.

See the docs for more information about building and flashing the firmware.

💡 Important: create_bridge_devices callback can be used to add data model elements (e.g., attributes, commands, etc.) to the bridge endpoint.

1. Additional Environment Setup

1.1 Hardware connection

This example runs on ESP32-S3 devkit by default.

1.2 Build and flash the Bridge (ESP32-S3)

For Standalone DevKit boards without Thread Border Router:

cd ${ESP_MATTER_PATH}/examples/bridge_apps/esp_rainmaker_bridge
idf.py set-target esp32s3
idf.py -p <port> build flash

For ESP Thread Border Router/Zigbee Gateway Board with Thread Border Router:

cd ${ESP_MATTER_PATH}/examples/bridge_apps/esp_rainmaker_bridge
idf.py -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.otbr" set-target esp32s3
idf.py -p <port> build flash

2. Commissioning Setup

2.1 Set up Rainmaker Bridge using Rainmaker App

2.1.1 Pair the bridge using Rainmaker App

Use the Rainmaker App to scan the QR code printed in the device log to pair the bridge.

I (16104) NimBLE: GAP procedure initiated: advertise;
I (16104) NimBLE: disc_mode=2
I (16114) NimBLE:  adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=256 adv_itvl_max=256
I (16124) NimBLE:

I (16104) network_prov_mgr: Provisioning started with service name : PROV_54a900
I (16134) app_wifi: Provisioning started
I (16134) app_network: Scan this QR code from the ESP RainMaker phone app for Provisioning.
I (16144) QRCODE: Encoding below text with ECC LVL 0 & QR Code Version 5
I (16144) QRCODE: {"ver":"v1","name":"PROV_54a900","pop":"47d4fb71","transport":"ble"}

  █▀▀▀▀▀█ █  ▄▄█ ▀▀  ▄█  ▀▄ █▀▀▀▀▀█
  █ ███ █ ██▄ █▄ ▄▀▀▄ ▀▀▄██ █ ███ █
  █ ▀▀▀ █ ▄██ ▀▀█▀█▄▀▄ ▀▀▀▀ █ ▀▀▀ █
  ▀▀▀▀▀▀▀ ▀ █▄▀ ▀ ▀▄▀▄█▄▀▄█ ▀▀▀▀▀▀▀
  ██ ▄█▀▀▄▄ ▀ ▀ ▀█▄▀▄▀▄▀▄▄▄▄ █ ▀█▀▀
   ▄▀█▀█▀▀ █▀ ▄▀ ██▄  ▄██▀██▀▄██▀█
  ▄█▀█▄▀▀▀▄ ▄▀▄▄█▄█▀▀▀▄▀▄▀ ▄▀▄▀ ▄▄▀
   ▀█ ▀▄▀▄█▀██▀▀ ▀▄▄█▄ ██▀▄█ ▀ █▀▀▄
  ▀█▀▄█▀▀██▀  ▀▄▄▄█▀▀▀█▀   █▀▄▀▀  ▀
  ▄█▄▀▀▀▀ ▄██ ▄▀ ▀▀█▄▄ ▄█▀█ ▄█▄█▀▀▄
  ███ █▀▀█▀  ▀▄ ▄█▄▀█ ▄█ ▀▀▀▀ ▀ ▄█▀
      █▀▀ ▀▄▄█▀ ▀█▄▄ ▄ █▄▀  █▀▀▀▀▄▄
  ▀▀▀▀ ▀▀▀█ █ ▀▄▄▄▄██▀█▀ ▄█▀▀▀██▄▀
  █▀▀▀▀▀█ ▄▀▀ ▄ █▀██▀  ▄█▀█ ▀ ██▀▀
  █ ███ █ ▀▀▄▀█▄█▄█▀█▀ ▀█ ███▀█▀▄▄█
  █ ▀▀▀ █ ▄▄███▀ █▀▄ ▄███▀  ▀█▀▄ ▀
  ▀▀▀▀▀▀▀ ▀ ▀▀    ▀▀  ▀▀▀▀▀▀      ▀


I (16344) app_network: If QR code is not visible, copy paste the below URL in a browser.
https://rainmaker.espressif.com/qrcode.html?data={"ver":"v1","name":"PROV_54a900","pop":"47d4fb71","transport":"ble"}
I (16364) app_network: Provisioning will auto stop after 30 minute(s).

2.1.2 Update Rainmaker Controller Params

After successful Bridge pairing, it is necessary to use the parameter update function to grant the Bridge the Rainmaker controller permission. This enables the Bridge to have the authority to control other Rainmaker devices.

main

2.1.3 Update Thread Dataset

If you need to bridge a Rainmaker over Thread device, you must update the Thread Border Router dataset after the Bridge is successfully paired.

main main

2.2 Pair Rainmaker end devices using Rainmaker App

Follow this guide to set up a Rainmaker device.

2.3 Pair the bridge using chip-tool through onnetwork method

Use the command below to pair the bridge.

./chip-tool pairing onnetwork 0x1234 20202021

2.4 Control the bulb with chip-tool

Now you can control the Rainmaker device using chip-tool.

./chip-tool onoff toggle 0x1234 0x2

3. Device Performance

3.1 Memory usage

Config: Enable SPIRAM(2MB), 8MB flash, enable Thread Border Router

The following is the Memory and Flash Usage.

  • Bootup == Device just finished booting up. Device is not commissioned or connected to wifi yet.
  • After Commissioning == Device is connected to wifi and is also commissioned and is rebooted.
  • After Adding a Bridged device == A Rainmaker Color Light is added on the Bridge.
  • device used: ESP32-S3-DevKitC-1
  • tested on: d0faa92c (2025-12-11)
  • IDF: v5.4.1 4c2820d3
Bootup After Rainmaker Commissioning After Matter Commissioning After Adding a Bridged device
Free Internal Memory 165KB 168KB 170KB 170KB
Free SPIRAM Memory 1886KB 1823KB 1858KB 1853KB

Flash Usage: Firmware binary size: 1.98MB

This should give you a good idea about the amount of free memory that is available for you to run your application's code.