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.
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.
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.
The ESP Thread border router board provides an integrated module of an ESP32-S3 SoC and an ESP32-H2 RCP.
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
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.
ESP32 pin | ESP32-H2 pin |
---|---|
GND | G |
GPIO17 (UART RX) | TX |
GPIO18 (UART TX) | RX |
GPIO7 | RST |
GPIO8 | GPIO9 (BOOT) |
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:
-
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.
-
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.
Similar to the previous Wi-Fi based Thread Border Router setup, but a device with Ethernet interface is required, such as ESP32-Ethernet-Kit.
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.
-
Documentation for the latest version: https://docs.espressif.com/projects/esp-thread-br/. This documentation is built from the docs directory of this repository.
-
The esp32.com forum is a place to ask questions and find community resources.
-
Check the Issues section on github if you find a bug or have a feature request. Please check existing Issues before opening a new one.
-
If you're interested in contributing to ESP-THREAD-BR, please check the Contributions Guide.