Difference between revisions of "NRF52840 Thread NCP"

From HiveTool
Jump to: navigation, search
(Install libcoap)
(Add IPv6 routes)
Line 92: Line 92:
  
 
'''MUST ADD ROUTES ON ALL MACHINES!'''
 
'''MUST ADD ROUTES ON ALL MACHINES!'''
 +
 
  route -6 add 2001:0002::/48 metric 1 dev eth0
 
  route -6 add 2001:0002::/48 metric 1 dev eth0
  
 +
On Pi:
 +
sudo route -6 add fd00:1122::/64 metric 1 dev eth0
  
 
+
On Debian
 +
ip -6 route add fd00:1122::/64 dev wlp1s0
  
 
==Install libcoap==
 
==Install libcoap==

Revision as of 04:04, 17 January 2019

Pi Border Router with nRF52840 thread NCP

This is an attempt at turning the Pi into a thread border router using the nRF52840 dongle as the Network Co Processor (NCP).

The nRF52840 dongle must be programmed with the NCP application. One way is to use the nRF Connect program.

https://electronut.in/nrf52840-thread/


https://groups.google.com/forum/#!topic/openthread-users/9TFIATWWrxw

https://www.nordicsemi.com/DocLib/Content/SDK_Doc/Thread_SDK/v2-0-0/index

Install Network Co Processor (NCP) code on nRF52

Download nRF Connect program.

./nrfconnect-2.6.1-x86_64.AppImage

Downloaded the nRF5 SDK for Thread and Zigbee 2.0.0

https://www.nordicsemi.com/Software-and-Tools/Software/nRF5-SDK-for-Thread-and-Zigbee/Download

Write the NCP hex file to the dongle.

Set up the border router on the Pi:

You need both border router and wpantund:

Install borderrouter code

https://openthread.io/guides/border-router/build

git clone https://github.com/openthread/borderrouter
cd borderrouter
./script/bootstrap
.configure --enable-debug  --enable-ncp --enable-ftd --enable-commissioner --enable-joiner --enable-border-agent --enable-border-router --enable-commissioner --enable-udp-forward
make
sudo make install

Install wpantund

git clone https://github.com/openthread/wpantund.git
cd wpantund
./bootstrap.sh
./configure --sysconfdir=/etc --enable-debug
make -j4  // -j4 (use 4 cores) may have locked it up
make
sudo make install
git clone https://github.com/openthread/openthread

./configure --enable-ncp --enable-ftd --enable-commissioner --enable-joiner --enable-border-agent --enable-border-router --enable-commissioner --enable-udp-forward


Check wpan status

sudo wpanctl status

Install radvd

Add interface wlan0

sudo vi /etc/radvd.conf
interface wlan0
{
   AdvSendAdvert on;
   prefix FD00:1122::/64
   {
       AdvOnLink off;
       AdvAutonomous on;
       AdvRouterAddr on;
   };
};

interface bt0
{
   AdvSendAdvert on;
   prefix 2001:db8::/64
   {
       AdvOnLink off;
       AdvAutonomous on;
       AdvRouterAddr on;
   };
};


sudo systemctl stop radvd

Add IPv6 routes

MUST ADD ROUTES ON ALL MACHINES!

route -6 add 2001:0002::/48 metric 1 dev eth0

On Pi:

sudo route -6 add fd00:1122::/64 metric 1 dev eth0

On Debian

ip -6 route add fd00:1122::/64 dev wlp1s0

Install libcoap

https://learn.pimoroni.com/tutorial/sandyj/controlling-ikea-tradfri-lights-from-your-pi

https://github.com/smartuni/examples/wiki/libcoap

sudo apt-get install build-essential autoconf automake libtool
git clone --recursive https://github.com/obgm/libcoap.git
cd libcoap
git checkout dtls
git submodule update --init --recursive
./autogen.sh
./configure --disable-documentation --disable-shared
make
sudo make install

Or maybe just:

sudo apt-get install libcoap-1-0-dev

https://github.com/RichardChambers/raspberrypi/tree/master/coap

nRF52840 CoAP code examples

https://github.com/cellabox/cellabox