This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Setting up a raspberry pi 3 as IoT BLE 6LoWPAN Border Router using an nRF52840 dongle pca10059. Where is the router program that should run on the Rpi3?

I am testing the IoT_lwip_MQTT_publisher_pca10056_s140 example project from SES on Windows.

I build and install the kernel with 6LoWPAN module on the Rpi3! 

I can run from the Rpi3 "hcitool lescan" command and get the BT device addr. of my pca10056, and connect to it.

Doesn't  the Rpi router need to run a program that connect and forward the MQTT data to a (local lan) MQTT broker?

Where can I find that code?

And for testing the MQTT publisher example do I need to create and install a link-local addr from the BT device addr?

Thanks 

  • There is a guide in the SDK documentation on how to set up a MQTT broker with Mosquitto here: https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/iot_sdk_user_guides_mosquitto. However, it looks like debian packages for raspberry have not been updated in a while. It might be easier to test this on ubuntu running in virtualbox,etc.  

    Yes, you will need to create a link-local address, see Creating link-local IPv6 addresses

  • Thanks for your reply. I am a newbie to BLE and IPv6 so please elaborate more on your suggestions. 

    My setup to test the IoT_lwip_MQTT_publisher_pca10056_s140 example consist of nRF52840 DK as endpoint and publisher, Rpi3 with nRF52840 dongle as BLE 6lowpan router and a Ubuntu16.04 laptop as MQTT broker.

    I few direct questions:

    1. I have followed the IoT user guide/ Setting up BLE 6LoWPAN Border Router and Connecting devices to the router.

    After reboot of the Rpi3 router, I have to as root run "#modprobe bluetooth_6lowpan" before I can run '# echo "connect 00:3e:e4:87:db:fb 1" > /sys/kernel/debug/bluetooth/6lowpan_control ' that cause pca10056 to connect to the router and it print to the terminal 

    <info> app: Physical layer : Connected.

    <info> app: IPv6 Interface Up.

    ifconfig gives me a default bt0 IPv6 addr FE80::6827:EBFF:FEAC:2F3F

    The /etc/radvd.conf doesn't seem to work, so I run the following commands:

    #ifconfig bt0 add 2001:db8::1/64

    ( why is it 2001:db8::/64 in the /etc/radvd.conf file?)

    #echo 1 > /sys/kernel/debug/bluetooth/6lowpan_enable

    #echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

    #service radvd restart

    When I try to test the connection to the endpoint from router:

    #ping6 2001:db8::23e:e4ff:fe87:dbfb I am getting an error no such device .

    Are there some log files I can use to find the root cause of the error?

     

  • Is there any tutorial for setting up an IoT BLE 6LoWPAN Border Router in a Ubuntu Virtualbox?

Related