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

sequence/transaction id questions


we are building some IOT devices for home automation, and things were going quite well since we tried to use our mesh network with two cell phones.
we tried with two devices and two phones, and we were not able to control both devices with the two phones.
we are using the latest android ADK and the nrf mesh SDK 3.2 on Nordic Development kits.

the goal was to turn on and off LEDs with the two phones.

we noticed that one phone was only capable of controlling the devices it was connected to, as proxy client.
we also noticed that both cell phones had different sequence IDs.
but one thing we were not able to fix was changing the unicast ID of the second phone, both had 0x0001

so I think we are not understanding sequence/transaction IDs.
what can be a good strategy to be able to control the whole mesh network from multiple proxy clients?

Regards

  • Hi,

    For the phone only able to control the devices it was connected directly to, what is the TTL setting for its publication?

    What are you using for application on the smartphones? The nRF Mesh app is used for provisioner with a default unicast address of 0x0001. You can export and import the mesh configuration database (which contains information on network keys, nodes, addresses, etc.), in order to run the provisioner from a different device than the original one. That is, however, a different concept from having multiple smartphones acting as nodes on the network at the same time, at which point you need to provision each of the smartphones into the network.

    For the nRF Mesh app there is a feature on the "Settings" panel, where if you select "Provisioners" you can add provisioners. Among the settings for the provisioner you have the option to "Set as current provisioner", which means the smartphone will act as that node. That way you can have more than one instance of the nRF Mesh app, running on one or more smartphones, concurrently.

    If you are building a custom app (nRF Mesh app is intended for development) then it is difficult to say without more information, but in that situation you typically have provisioner on one smartphone and use that for provisioning the other smartphones into the network.

    Regards,
    Terje

  • Hi,

    we are developing customized android application with nrf mesh library. and yes we have a TTL setting.

    we followed your instruction on adding the new provisioner and it worked.

    as you said, if the provisioner can act as a node, then is it possible for that provisioner node to subscribe to a group?

    and how the tid and seqid are managed by the board if we are using multiple smartphones?

    regards,

    hari

  • Hi,

    Yes. If the smartphone has a unique address then it can send messages to the network and there should be no issues with sequence numbers being already used. The issue was that you had two nodes sharing unicast address (and you should never do that in a Bluetooth mesh network!)

    The smartphone application can implement any model, and subscribe/publish to any address just as any model on any node.

    Each node has a strictly increasing sequence number for messages originating from that node. The other nodes keep track of this sequence number for every node they receive messages from. If the sequence number is lower than (or equal to) what is currently the highest number received, the message is discarded.

    Regards,
    Terje

Related