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

Raspberry pi as mesh provisioner

Hello,
I am trying to use a PI3 as a provisioner for a bluetooth mesh network.

From my understanding,if I use interactive PyACI,  I would need to plug a dev board to interact with my network. Is that assertion correct?

As I am in evaluation process, I have very few node available and I would like to use the built-in raspberrypi bluetooth on my network.

Therefore I could only use the meshctl utility.

But, I meet the following error:

Code: Select all

pi@raspberrypi:~/bluez-5.49$ meshctl
Waiting to connect to bluetoothd...Failed to parse local node configuration file local_node.json
pi@raspberrypi:~/bluez-5.49$

I started from a fresh raspbian image and did the following:
In order to enable the crypto configuration (see here: https://code4food.net/2017/11/25/enable ... -raspbian/), I recompiled the kernel following this tutorial : https://www.raspberrypi.org/documentati ... uilding.md

I installed Bluez utility version 5.49 using

Code: Select all

cd PATH_TO_BLUEZ
./configure --enable-mesh --enable-debug
make
sudo make install

as well as Json-c

Code: Select all

git clone github.com/.../json-c.git
cd PATH_TO_JSON_C
sh autogen.sh
./configure
make
sudo make install

Any idea of what I'm doing wrong?

Best regards,

Mickael

  • It will be far easier and cheaper for you to just get an additional DK board. The Bluez provisioner should work with the Mesh 2.0.0 release but the granularity of control will be lower.

    You should be able to test the provisioner through pyACI if you have 2 nRF52-DK boards. (one board for the provisoner and one for the client/server).

    Jlink is available for Rpi so that should work like a normal linux system. Use the "J-Link Software and Documentation pack for Linux ARM systems" on the segger website

  • Hi Mickael,

    Try moving into the bluez-5.49/mesh directory and then invoke the meshctl tool. It seems it’s looking for the provisioning database JSON file. Alternatively, use the --config option and specify a path to the database. As David Edwin says, you might want to take a look at the Interactive PyACI, it is a lot more powerful than the BlueZ tool.

    Hope this helps,
    Thomas

  • I have built the BlueZ from the source(v 5.50) and installed it on raspberryPI W Zero using the sudo make install.
    But the version of the bluetoothd returns the same 5.43(initial one - even on restart) (on issuing bluetoothd -v)
    Command "systemctl status bluetooth" gives Bluetooth service v 5.50 (below is the log)

    systemctl status bluetooth

     bluetooth.service - Bluetooth service

       Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset

       Active: active (running) since Sat 2018-06-30 23:17:16 UTC; 17h ago

         Docs: man:bluetoothd(8)

     Main PID: 407 (bluetoothd)

       Status: "Running"

       CGroup: /system.slice/bluetooth.service

               └─407 /usr/local/libexec/bluetooth/bluetoothd

    Jun 30 23:17:16 raspberrypi systemd[1]: Starting Bluetooth service...

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Bluetooth daemon 5.50

    Jun 30 23:17:16 raspberrypi systemd[1]: Started Bluetooth service.

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Starting SDP server

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Bluetooth management interface 1.14

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Endpoint registered: sender=:1.5 pa

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Endpoint registered: sender=:1.5 pa

    lines 1-16/16

    When i run the meshctl tool it gives the error :  

    Illegal instruction

    Kernel running on Rpi is 4.14,below is the output of uname -a

    Linux raspberrypi 4.14.34+ #1110 Mon Apr 16 14:51:42 BST 2018 armv6l GNU/Linux

    kindly suggest !
    Sorry for being too linuxyy here ! but this will help me to interact with the other Mesh boards.
    Do you see any other dependency on the linux kernel or any crypto modules to eb enabled in the Linux kernel? or something else?
    thanks in advance !
    Rgds,
    Rp
  • Ok, that BlueZ version should be alright. I remember I had a problem where BlueZ was dependent on some changes in the kernel, but I don't remember which version that was, unfortunately. I do think 4.14+ should be alright. I'm running 4.15 myself. You might find more (and better) help on the BlueZ and/or Zephyr IRC channels.

    -Thomas

  • We are trying to connect multiple devices to Raspberry Pi(Server),we have tested with BlueZ 5.50.Kernel version is 4.14.42.We are not able to ping to multiple devices..we could only ping to only once device. What should be done so that we can ping data to multiple devices?

    We are trying to create a mesh with multiple devices and then connect it to our Raspberry Pi.Please guide us on doing the same

Related