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

What factors make it fail to transmit packets to the air after successful network packet allocation on mesh?

Hello,

I have some problem on my mesh application. (similar application as simple-onoff model)

Sometimes, the server(sensor) devices fail to transmit packet while receiving is ok.

I checked the tx path and found packet-allocations are successful but can not get NRF_MESH_EVT_TX_COMPLETE event.

What factors can disturb the tx to the air even the buffer is allocated successfully?

Please help me.

(NRF52832, nRF5_SDK_15.0.0_a53641a, nrf5_SDK_for_Mesh_v2.1.1_src, S132)

Parents
  • Hi Charlie, 

    I assume you have checked that the message is queued in the buffer ? You received NRF_SUCCESS when calling access_model_publish() ? 

    How often do you see the issue ? How large is your payload ? 

    Do you see the issue with our stock example ? 

    Please be aware that SDK v2.1.1 is pretty old one, the current Mesh SDK is v3.1.0 

  • Hi Hung,

    Yes I received NRF_SUCCESS after calling access_model_publish.

    The issue happens irregularly after heavy packet traffic. Sometimes it solved after some time but mostly it stays at the situation forever.

    I coded my application based on light-switch example. 

    I found the problem seemed to be solved when I execute re-init function as below at run time.

    void core_tx_forced_reinit(void)

    {

      list_remove(&mp_bearers, &p_bearer->list_node);
      m_bearer_count--;

      advertiser_disable(&m_bearer_roles[CORE_TX_ROLE_ORIGINATOR].advertiser);
      advertiser_disable(&m_bearer_roles[CORE_TX_ROLE_RELAY].advertiser);

      core_tx_adv_init();

    }

    I think advertiser had corrupted by something.

    I need your additional advice.

    1. what can make this issue happen?

    2. if I run core_tx_forced_reinit() function at run time, what additional issues are expected?

    3. Do you recommend me to migrate to v3.1.0? Is it easy? (^^)

    Thank you for your advice in advance.

    Charlie

Reply
  • Hi Hung,

    Yes I received NRF_SUCCESS after calling access_model_publish.

    The issue happens irregularly after heavy packet traffic. Sometimes it solved after some time but mostly it stays at the situation forever.

    I coded my application based on light-switch example. 

    I found the problem seemed to be solved when I execute re-init function as below at run time.

    void core_tx_forced_reinit(void)

    {

      list_remove(&mp_bearers, &p_bearer->list_node);
      m_bearer_count--;

      advertiser_disable(&m_bearer_roles[CORE_TX_ROLE_ORIGINATOR].advertiser);
      advertiser_disable(&m_bearer_roles[CORE_TX_ROLE_RELAY].advertiser);

      core_tx_adv_init();

    }

    I think advertiser had corrupted by something.

    I need your additional advice.

    1. what can make this issue happen?

    2. if I run core_tx_forced_reinit() function at run time, what additional issues are expected?

    3. Do you recommend me to migrate to v3.1.0? Is it easy? (^^)

    Thank you for your advice in advance.

    Charlie

Children
Related