3

Problem

I am currently working on a Bluetooth communication library for Raspberry Pi. It only has to support simple messaging. The main requirement is that is it decentralized

I therefore thought that Bluetooth mesh would be the best solution. I followed this guide for installing the Linux meshctl tool, but I could not find the functionality for sending messages between multiple Raspberry Pi. It seems that the meshctl tool is only for provisioning and configuring Bluetooth mesh networks.

Is this correct? Please correct me if I am wrong, I would love to be wrong.

Solution?

Is Zephyr a viable alternative? It seems that it is currently ahead of Linux when it comes to Bluetooth mesh.

TLDR: Is the meshctl tool for Linux only for provisioning and configuration? Should i use Zephyr instead?

edym
  • 33
  • 1
  • 6

3 Answers3

3

TLDR: Yes, Meshctl is for provisioning only. Better to use Zephyr for regular mesh nodes instead.

Bluetooth Mesh nodes are usually embedded devices and Zephyr is really good alternative for regular node. It is backed by Linux foundation and feature rich implementation. It is also under active development. There are also couple of other open source mesh implementations: Mynewt-nimble and ESP32 but both of them are actually based on Zephyr's mesh stack.

As provisioner you could use meshctl by Bluez or provisioner app on phone (nRF Mesh or Bluetooth Mesh by Silicon Labs).

makarhum
  • 68
  • 1
  • 4
  • Thanks for the answer. Are there any references that mention that meshctl is provisioner only for now? – Youssif Saeed Feb 26 '19 at 17:25
  • 2
    meshctl readme (current master): https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools/mesh/README – makarhum Feb 27 '19 at 10:43
  • Thank you so much for the answer @makarhum! BTW, do you happen to know of a library for Bluetooth mesh on mobile which is not only for provisioning? I kind of got the impression that the [nRF-mesh-library](https://github.com/NordicSemiconductor/Android-nRF-Mesh-Library) is only for provisioning as well. I would like to be able to use a cellphone as a fully provisioned node in a Bluetooth mesh network – edym Feb 28 '19 at 11:47
  • 1
    I haven't found any library for Android or iOS that could be used for implementing regular non-provisioner node. – makarhum Mar 01 '19 at 20:51
1

Zephyr is an excellent choice. The Bluetooth SIG have an educational resource for developers wishing to learn about Bluetooth mesh (includes hands-on project work) and it uses Zephyr. See https://www.bluetooth.com/bluetooth-resources/bluetooth-mesh-developer-study-guide/

0

You can use the ST BLE Mesh app from STMicroelectronics : https://play.google.com/store/apps/details?id=com.st.bluenrgmesh&hl=en_IN

They have also Mesh fw and Apps SDK which includes (Android library for Mesh and iOS SDK for Mesh). It not only acts as a provisioner but you can also share the mesh network configuration via email or cloud to another Smartphone.Apart from this they have command set for Many mesh models - GenericOnOff,GenericLevel,Sensor Model, Lighting Model , HSL model and CTL model.

You can drop support questions at : https://community.st.com/s/topic/0TO0X000000BSrIWAW/ble-mesh

Raulp
  • 7,758
  • 20
  • 93
  • 155