/esp-thread-br

Espressif Thread Border Router SDK

Primary LanguageCApache License 2.0Apache-2.0

ESP Thread Boarder Router SDK

ESP-THREAD-BR is the official ESP Thread Border Router SDK. It supports all fundamental network features to build a Thread Border Router and integrates rich product level features for quick productization.

Software Components

esp_br_solution

The SDK is built on top of ESP-IDF and OpenThread. The OpenThread port and ESP Border Router implementation is provided as pre-built library in ESP-IDF.

It is recommended to use ESP-IDF v5.3.1 with this SDK.

Hardware Platforms

Wi-Fi based Thread Border Router

The Wi-Fi based ESP Thread Border Router consists of two SoCs:

  • An ESP32 series Wi-Fi SoC (ESP32, ESP32-C, ESP32-S, etc) loaded with ESP Thread Border Router and OpenThread Stack.
  • An ESP32-H 802.15.4 SoC loaded with OpenThread RCP.

ESP Thread Border Router Board

The ESP Thread border router board provides an integrated module of an ESP32-S3 SoC and an ESP32-H2 RCP.

br_dev_kit

The two SoCs are connected with following interfaces:

  • UART and SPI for serial communication
  • RESET and BOOT pins for RCP Update
  • 3-Wires PTA for RF coexistence

Standalone Modules

The SDK also supports manually connecting an ESP32-H2 RCP to an ESP32 series Wi-Fi SoC.

For standalone modules, we recommend the ot_br example in esp-idf as a quick start.

Connect an ESP32-H2 RCP to an ESP32 series Wi-Fi SoC using UART:

ESP32 pin ESP32-H2 pin
GND G
GPIO17 (UART RX) TX
GPIO18 (UART TX) RX
GPIO7 RST
GPIO8 GPIO9 (BOOT)

Connect an ESP32-H2 RCP to an ESP32 series Wi-Fi SoC using SPI:

ESP32 pin ESP32-H2 pin
GND G
GPIO7 RST
GPIO8 (SPI INTR) GPIO9 (BOOT)
GPIO10 (SPI CS) GPIO2
GPIO11 (SPI MOSI) GPIO3
GPIO12 (SPI CLK) GPIO0
GPIO13 (SPI MISO) GPIO1

Note that:

  1. The GPIO17 and GPIO18 on ESP32-S3 have different driver current(refer to ESP32-S3 TRM, Chapter 6.12). If ESP32-S3 is used as the host, please change the UART RX/TX GPIOs to GPIO4 and GPIO5 which are recommended.

  2. The configure ESP_CONSOLE_USB_SERIAL_JTAG is enabled by default, please connect the USB port of the ESP32 series Wi-Fi SoC to host.

Ethernet based Thread Border Router

Similar to the previous Wi-Fi based Thread Border Router setup, but a device with Ethernet interface is required, such as ESP32-Ethernet-Kit.

Provided Features

These features are currently provided by the SDK:

  • Bi-directional IPv6 Connectivity: The devices on the backbone link (typically Wi-Fi) and the Thread network can reach each other.
  • Service Discovery Delegate: The nodes on the Thread network can find the mDNS services on the backbone link.
  • Service Registration Server: The nodes on the Thread network can register services to the border router for devices on the backbone link to discover.
  • Multicast Forwarding: The devices joining the same multicast group on the backbone link and the Thread network can be reached with one single multicast.
  • NAT64: The devices can access the IPv4 Internet via the border router.
  • RCP Update: The built border router image will contain an updatable RCP image and can automatically update the RCP on version mismatch or RCP failure.
  • Web GUI: The border router will enable a web server and provide some practical functions including Thread network discovery, network formation and status query.
  • RF Coexistence: The border router supports optional external coexistence, a feature that enhances the transmission performance when there are channel conflicts between the Wi-Fi and Thread networks.

Resources