Debug Relay Node Information (source address, destination address ... etc ) in mesh network Nrf connect SDK 2.3.0?

Hi,

i am using nrf connect extension in vs code with Zephyr OS build v3.2.99-ncs2 and Nrf connect SDK 2.3.0. Our Application requirement in which A - B - C are in mesh network. 'A' send information to 'C'  though 'B' because 'A' and 'B' are not in range. when 'A' send information, it will reach to 'B' with information + source address, destination address, rssi ... etc. then 'B' send that data to destination 'C'.

1. How can I debug/log/print data in Relay node side ? and are there any API or function of buffer pointer, buffer length, source address, destination address and rssi ?

2. I need to process the information on middle node 'B' during hopping. and append the data buffer with my custom information. how can i achieve this?

get relay data- stop relay-append relay data-send to another node-

3. Application: i want RSSI between 'A' and 'B' , 'B' and 'C' ? 

4. Node 'A' search around in mesh. collect RSSI and Unicast address of nodes and send that information to node 'C' . Could you please share some example or code snippet?

Parents
  • Hi, 

    There is no way to enable only "relay" logs. It can enable network layer logging by configuring CONFIG_BT_MESH_NET_LOG_LEVEL. Currently, an application could not process relayed messages since they don't go above the network layer. 

    As for RSSI, please follow my colleague's instructions in this post

    Regards,
    Amanda H.

  • Hi Amanda H,

    In conclusion , Relay messages are not available for user to process during hopping. Above mentioned Post is mine. I asked your colleague for RSSI Monitor server example code.

    1. Could you please help me to make RSSI server for Node to scan around to get near by nodes -Address and RSSI . and send the information to gateway?

    2.  how relay node work? does it store the message and send to destination?

    Actually, I want to measure distance between nodes and anchors. are their any suggestions?

    Regards

    Abhishek

  • Hi Amanda H,

    Node A-B-C, Node A send message to Node C periodically. Node B send message to Node C periodically. At Node C messages of only Node A receiving. i am using 'Mesh Example'. are there any way to get both messages?

    Regards 

    Abhishek

  • Hi, 

    starkAbhi said:
    Actually, I want to measure distance between nodes and anchors. are their any suggestions?

    If your main goal is getting the distance (and not necessarily RSSI), I just wanted to mention that RSSI is not the best way to get the distance between devices. You can take a look at this post

    starkAbhi said:
    are there any way to get both messages?

    Unfortunately, this feature hasn't been support, and we are working on it. Hope to add support for this as it turns out to be useful in some cases.

    -Amanda H.

  • Hi Amanda H,

    how can we achieve minimum current in mesh network? In my application, Node A-B-C does not continuously sending message.

    We want Node A send message to Node B in interval of time like as 1 min. 

    Node A  take 1 min in transmission then goes in sleep periodically. receiving end Node also Listen for interval of time then goes to sleep periodically.

    Could you please suggest me how can i put Node in sleep to consume less amount of current like  ~2.2uA?

    Code:

    k_sleep(K_SECONDS(10)); //sleep
    err = bt_mesh_suspend();
    if (err) {
    printk("bt_mesh_suspend init failed (err %d)\n", err);
    }
    printk("Sleep\n");
    pm_state_force(0u, &(struct pm_state_info){PM_STATE_SUSPEND_TO_IDLE, 0, 0}); //nrfonly switch: 2.2 uA
    k_sleep(K_SECONDS(10)); //sleep

    Regards

    Abhishek

Reply
  • Hi Amanda H,

    how can we achieve minimum current in mesh network? In my application, Node A-B-C does not continuously sending message.

    We want Node A send message to Node B in interval of time like as 1 min. 

    Node A  take 1 min in transmission then goes in sleep periodically. receiving end Node also Listen for interval of time then goes to sleep periodically.

    Could you please suggest me how can i put Node in sleep to consume less amount of current like  ~2.2uA?

    Code:

    k_sleep(K_SECONDS(10)); //sleep
    err = bt_mesh_suspend();
    if (err) {
    printk("bt_mesh_suspend init failed (err %d)\n", err);
    }
    printk("Sleep\n");
    pm_state_force(0u, &(struct pm_state_info){PM_STATE_SUSPEND_TO_IDLE, 0, 0}); //nrfonly switch: 2.2 uA
    k_sleep(K_SECONDS(10)); //sleep

    Regards

    Abhishek

Children
Related