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

Bluetooth Mesh Serial Interface: How to specify the serial device's "publication retransmission count" for arbitrary mesh packets?

In the `Serial Interface`, the `Bluetooth Mesh Packet Send` command does allow specifying the `Time To Live` (TTL) for arbitrary packets, but there is no field for `Retransmit Count` and `Retransmit Interval Steps`. Is there a "programmatic" way of specifying those parameters for arbitrary packets (or at least their default values) using the Serial Interface, or can those values only be specified statically in the "Serial firmware" as default values? And, if they can only be specified in the firmware, what is the recommended way of doing it? Is it through "definitions" in the `nrf_mesh_config_app.h` header, or is it done elsewhere in the SDK?

  • See the config.py file located here: nrf5_SDK_for_Mesh_v3.0.0_src\scripts\interactive_pyaci\models

    The network transmit set should allow you to set the retransmit count, along with the retransmit interval steps.

  • Bjorn,

    Thank you for your quick reply. Slight smile

    My understanding is that you are referring to `4.3.2.70 Config Network Transmit Set`, which is a configuration performed on a node by a configuration client, which configuration client, in this case, is a device running the Serial Interface Firmware. So the `Retransmit Count` and the `Retransmit Interval Steps` are those of the node, not the serial device. 

    My question is about arbitrary "access" packets sent from the serial device, which serial device does not a priori have any models defined in the firmware (except the foundation models). 

    Let me give you an example:

    • I have one Bluetooth Mesh device that has a single element with the Generic OnOff Server model.
    • I have one device flashed with the Serial Interface firmware, with only the foundation models.
    • The "serial device" is first used as provisioner to add the device with the Generic OnOff Server model to an arbitrary mesh network, and then the device becomes a node.
    • The "serial device" is then used as a configuration client to add an app key and bind that app key to the Generic OnOff Server model instance of the node. The configuration client is also used to set a subscription address for the Generic OnOff Server, as well as the optional publication address for when the Generic OnOff state changes.
    • Finally, the "serial device" gets programmed (using the Serial API and a HOST computer) with that same app key (and using the same subnet key used to provision the "now node"), and a publication address that corresponds to the node's single Generic OnOff Server model's subscription address (it it could be a unicast address pointing to the node's only element).
    • Now, using the `Bluetooth Mesh Packet Send` command, the host computer sends commands of type `Generic OnOff Get` and `Generic OnOff Set Unacknowledged` (or it could send `Set` if the publication address had been set to the node's unicast address) into the mesh network.

    This is what I mean by "arbitrary access packets": packets for which the "access model" is not predefined in the serial device's firmware. In my example's last step, the serial device acts as a Generic OnOff Client, but without that model having explicitly been defined in the firmware. 

    So the `Retransmit Count` and the `Retransmit Interval Steps` I am trying to configure are those used by the serial device when sending arbitrary "access" packets into an arbitrary mesh network. When sending, the Serial firmware must be using some default values for `Retransmit Count` and `Retransmit Interval Steps`, so my question is two-fold: can those values be overridden when sending an arbitrary command? If not, where in the firmware could/should they be modified if needed? 

    Thank you very much for your time and support.

    Frank

  • Hi Frank,

    Publish retransmission support has been added in the newest mesh sdk release v3.1.0 (see release notes here). Quote from the release notes: "Implemented publish re-transmission support in the access layer. You can now re-transmit published messages according to the Publish Retransmit Count and the Publish Retransmit Interval Steps states."

    Does this answer your question?

  • Hi Bjorn,

    Nice! I think this is exactly what I am looking for. I will install that new SDK (v3.1.0) next week and try it out. I'll let you know (in this thread) how it works out.

    Once more, thank you very much for your time and support. A+ :)

    Frank

  • Hi Frank,

    Thanks for the kind words! We in tech support appreciate it when our customers are happy with our support! :)  Hope the new SDK solves your issue!

Related