Before continuing, we recommend going through the OpenThread Hardware Codelab, which details how to set up your environment and install all tools and software needed to flash the nRF52840 DK board used in this guide.
Build OpenThread
- Clone the OpenThread repository, and switch to the Thread Reference
2018-09-26
release commit:
git clone https://github.com/openthread/openthread
cd openthread
git checkout -b thread-reference-20180926
- Install the GNU toolchain and other dependencies:
./script/bootstrap
- Build the nRF52840 example. The
USB=1
switch enables native USB CDC ACM as a serial transport.make -f examples/Makefile-nRF52840 BORDER_AGENT=1 BORDER_ROUTER=1 COMMISSIONER=1 \ DHCP6_CLIENT=1 DHCP6_SERVER=1 JOINER=1 MAC_FILTER=1 REFERENCE_DEVICE=1 \ UDP_FORWARD=1 USB=1
Flash and connect the NCP
See the Flash the nRF52840 and Connect the nRF52840 steps from the Pre-Built NCP Firmware guide for instructions on how to flash the nRF52840 DK board as an NCP and connect it to the Raspberry Pi.
Similar instructions are also found in the OpenThread Hardware Codelab.
Set up the Raspberry Pi
See the Download and install the OS step from the Raspberry Pi 3B (RPi3B) Border Router platform page for instructions on how to install the OS and configure the device.
In addition to the normal RPi3B setup and configuration, install git
and
some recommended utilities:
sudo apt-get install git screen tcpdump
Set up OpenThread Border Router
- Clone the OpenThread Border Router repository, and switch to the Thread
Certified 2018-08-19
release commit:
git clone https://github.com/openthread/ot-br-posix
cd ot-br-posix
git checkout -b thread-br-certified-20180819
- Install dependencies:
./script/bootstrap
- Compile and install OTBR and
wpantund
, using the OTBR certification commit forwpantund
:WPANTUND_COMMIT=8c189c6 ./script/setup
- Open
/etc/wpantund.conf
and update the UART port for the nRF52840 DK NCP:Config:NCP:SocketPath '/dev/ttyACM0'
- Restart the
wpantund
service:sudo service wpantund restart
The Border Router should now be up and running. See OpenThread Border Router for more information about OTBR.