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/openthreadcd openthreadgit checkout -b thread-reference-20180926 - Install the GNU toolchain and other dependencies:
./script/bootstrap - Build the nRF52840 example. The
USB=1switch 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 tcpdumpSet 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-posixcd ot-br-posixgit 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.confand update the UART port for the nRF52840 DK NCP:Config:NCP:SocketPath '/dev/ttyACM0'
- Restart the
wpantundservice:sudo service wpantund restart
The Border Router should now be up and running. See OpenThread Border Router for more information about OTBR.