This guide walks you through setting up the hardware and initial software configuration for your DIY Thread Border Router.
- Raspberry Pi 5 (4GB+ RAM recommended)
- ESP32-H2 development board (ESP32-H2-DevKitC or equivalent)
- USB-C to USB-A Cable
- Power supply for Raspberry Pi (3A+ recommended)
- Ethernet cable (for internet connectivity)
- MicroSD card (16GB+ recommended)
The first setup revealed a problem with the 3.3 Volts rail of the Raspberry Pi. DO NOT WIRE like below, as it causes the Raspberry to hit the over-current protection and restart!
You can wire the ESP32-H2 with the most left USB-C port, designated as UART. Power will also be provided via that port. The other end of the cable goes in to one of the four USB ports on the Raspberry Pi. The UART controller will be visible through on /dev/ACM0.
Success Criteria: When properly connected, the ESP32-H2 power LED should light up, and the board should be visible when you run ls /dev/ttyUSB* or ls /dev/ttyACM* on the Raspberry Pi.
- Download the Raspberry Pi Imager for your platform
- Insert the microSD card into your computer
- Launch Raspberry Pi Imager
- Select Raspberry Pi OS (64-bit) Bookworm
- Configure SSH, Wi-Fi, and other settings before writing
- Write the OS to the SD card
- Insert the SD card into your Raspberry Pi and power it on
Success Criteria: Your Raspberry Pi should boot to the login prompt or desktop. If you configured SSH, you should be able to connect with ssh [email protected] or using the IP address you configured.
Connect to your Raspberry Pi via SSH:
ssh [email protected] # Use the hostname or IP address you configuredUpdate the system:
sudo apt update && sudo apt upgrade -ySuccess Criteria: The command should complete without errors, and you'll see packages being updated and installed.
Run the integrated setup task to install required dependencies:
sudo task setup-raspberry-piThis comprehensive setup task will:
- Install all required packages (Docker, Docker Compose, Python, etc.)
- Configure Docker service and add your user to the Docker group
- Install the Task runner
- Set up the firewall with appropriate rules
- Configure system settings for Thread networking
For a more minimal setup with just the basic dependencies:
task install-deps-raspberrySuccess Criteria: Verify the installation with the following commands:
docker --version # Should show Docker version
task --version # Should show Task version
python3 --version # Should show Python versiongit clone https://github.com/yourusername/diythreadrouter.git
cd diythreadrouterSuccess Criteria: The repository should be cloned successfully, and you should see the project files when you run ls.
Review the configuration files in the configs/ directory:
otbr/otbr-web.conf- Web interface configurationprometheus/prometheus.yml- Prometheus configurationgrafana/provisioning/- Grafana provisioning
For most users, the default configurations will work out of the box.