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

Regarding PA-LNA in mesh sdk

Hello,

        As nordic has implemented sdk for mesh and i have been using mesh sdk v3.0.0 LIGHT_SWITCH_EXAMPLE but i am facing some problem regarding pa_lna. Actually wt i have done is i send a data and it has to be relayed to particular device so that among many devices in a group it can reach to speicific device and it was implemented successfully but here while i need to receive the advertising packets from different devices it is showing more RSSI .here i am using nrf52832 developed with separate ble boards with different gpio's .so as mentioned by nordic semi related to pa_lna ,the pins were used as 24 and 25 but we are using different gpio's according to our boards.so here we are facing problems that when ever the data is advertising it is showing more RSSI and when ever command/data has been send from client to specific server then suddenly the RSSI shows less .

softdevice S132 and mesh sdk v3.0.0

windows using keil

so i am expecting that both pa_lna has to switch its role frequently but in my case its not happening,only when sending any command its showing less RSSI and the remaining advertising time its been more.

As i couldn't find any other solution related to this . so i hope could anyone help me regarding this problem .it will be so much helpful if i could complete this work with your help.

Thank You.

Parents
  • Hi, 

    Please explain if you have any external hardware PA and LNA on your board ?

    Did you modify anything to enable PA LNA in your code ? 

    Could you explain this: " when ever the data is advertising it is showing more RSSI and when ever command/data has been send from client to specific server then suddenly the RSSI shows less ." . Data is always sending over advertising channel in Mesh. And there isn't an empty data packet, there will always some data in a mesh packet. 

  • Hello,

    Here we are using nRF52832 with skyworks66112 for pa_lna for ble module on our board.

    So related to our board we are using 23 pin for PA and 20 pin for LNA  as shown below

    and by using this pins of our board we have implemented for central and peripheral profiles of nrf sdk by using this call

     static ble_opt_t pa_lna_opts = {
            .common_opt = {
                .pa_lna = {
                                
                    .pa_cfg = {
                        .enable = 1,
                        .active_high = 1,
                        .gpio_pin = APP_PA_PIN
                    },
                                
                                    
                    .lna_cfg = {
                        .enable = 1,
                        .active_high = 1,
                        .gpio_pin = APP_LNA_PIN
                    },
                                    
                    .ppi_ch_id_set = APP_AMP_PPI_CH_ID_SET,
                    .ppi_ch_id_clr = APP_AMP_PPI_CH_ID_CLR,
                    .gpiote_ch_id = APP_AMP_GPIOTE_CH_ID
                }
            }
        };
        NRF_GPIO->DIRSET |= (1 << APP_PA_PIN) | (1 << APP_LNA_PIN) ;
        err_code = sd_ble_opt_set(BLE_COMMON_OPT_PA_LNA, &pa_lna_opts);
        APP_ERROR_CHECK(err_code);


    and it used to work fine but whereas coming to sdk mesh pa and lna pins are 24 and 25 for sdk mesh we are using this

     mesh_pa_lna_gpiote_enable(&m_pa_lna_params);

    for mesh pa_lna it is not working

    And about advertising what i meant to say is actually we are advertising our manufacturing data through advertising.Here we have faced a problem is for advertising, the RSSI is showing more so advertising packets is unable to receive to near by device also.

     if( network_flag >= 1)
         {
           mesh_adv_stop();
           mesh_adv_data_set(PROXY_UUID_SERVICE1, buff_data[y++], sizeof(aqua_data));
           mesh_adv_start();

    network_flag = 0;

    }

    the above block of statement is used for advertising and this is happening for every 500msec ,as the flag is set in timer handler for every 500ms and this call is been called in while loop.....

    buff_data[0th location] ,device own data will be advertise

    and in the remaining locations data received by near by devices has to be advertised and for receiving we are using this callback

    void rx_cb(const nrf_mesh_adv_packet_rx_data_t * p_rx_data);

    but because of more RSSI ,if the device is little far from one another it is unable to receive advertising packets

    If i keep the devices very near to each other ,every device advertise all devices data for every 500msec interval.

    here buffer size is 20 bytes so each device advertise 20 bytes of data for 500ms.

    so i hope i have given u the required details regarding my problem and i wish i could solve this issue with your help.

    thank you.

  • Hi, 

    Please clarify what you mean by "RSSI showing more" does that mean weaker signal or stronger signal ? Note that RSSI is measure in negative, and the higher (closer to 0) the better signal. 

    Please be aware that when you are using mesh , there are 2 stacks the Mesh stack and the normal BLE Softdevice stack. They are independent. 

    You need to setup PA/LNA for both of them. 

    Please try testing one by one to make sure they work as intended before mixing them in one application. 

    First please test PA/LNA with normal mesh operation and let me know if it works. 

    Second, test the mesh_adv_start(), this function uses the softdevice so you need to call sd_ble_opt_set() to configure PA/LNA. 

    I'm not sure why you want to do connectable advertising if you just want to advertise your manufacturing data. If you don't plan to get the device be connected (as a proxy node) you can just advertise using advertiser_packet_send() which doesn't use the softdevice. Please refer to the beacon example in our mesh SDK. 

    If you see issue in the test, please check the PA/LNA pins using a logic analyzer and check if they are toggled or not. 

Reply
  • Hi, 

    Please clarify what you mean by "RSSI showing more" does that mean weaker signal or stronger signal ? Note that RSSI is measure in negative, and the higher (closer to 0) the better signal. 

    Please be aware that when you are using mesh , there are 2 stacks the Mesh stack and the normal BLE Softdevice stack. They are independent. 

    You need to setup PA/LNA for both of them. 

    Please try testing one by one to make sure they work as intended before mixing them in one application. 

    First please test PA/LNA with normal mesh operation and let me know if it works. 

    Second, test the mesh_adv_start(), this function uses the softdevice so you need to call sd_ble_opt_set() to configure PA/LNA. 

    I'm not sure why you want to do connectable advertising if you just want to advertise your manufacturing data. If you don't plan to get the device be connected (as a proxy node) you can just advertise using advertiser_packet_send() which doesn't use the softdevice. Please refer to the beacon example in our mesh SDK. 

    If you see issue in the test, please check the PA/LNA pins using a logic analyzer and check if they are toggled or not. 

Children
Related