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

No RSRP Value after Registered to a new Cell

Hello,

We are developing a application that sends some data to AWS in some intervals(3 - 15 minutes). This application were currently being tested on custom nrf9160 boards, Thingy:91's and nRF9160 DK's

We included Cell ID and RSRP value to our payload for testing purposes. But when our devices is registered a new Cell, in the first payload the RSRP value returns as zero. Second and later data payloads contains reasonable RSRP values unless the device is registered  to a new cell.

What can we do to correct this problem? What are your suggestions?


We are developing this application based on aws_fota sample of ncs v1.1.0.
We get RSRP value using the functions below.



int modem_info_rsrp_register(rsrp_cb_t cb)
{
	modem_info_rsrp_cb = cb;

	int rc = at_notif_register_handler(NULL,
		modem_info_rsrp_subscribe_handler);
	if (rc != 0) {
		LOG_ERR("Can't register handler rc=%d", rc);
		return rc;
	}

	if (at_cmd_write(AT_CMD_CESQ_ON, NULL, 0, NULL) != 0) {
		return -EIO;
	}

	return 0;
	
	
	static void modem_data_init(void)
{
    int err;
    err = modem_info_init();
    if (err)
    {
        printk("Modem info could not be established: %d\n", err);
        return;
    }
    modem_info_params_init(&modem_param);
    modem_info_rsrp_register(modem_rsrp_handler);
}







void main(void)
{
    int err = 0;
    printk("MQTT AWS Jobs FOTA Sample, 9160_fw_v: %s\n", CONFIG_APP_VERSION);

    bsd_modem_initialization();
    modem_configure();
    client_init(&client, CONFIG_MQTT_BROKER_HOSTNAME);

    err = aws_fota_init(&client, CONFIG_APP_VERSION, aws_fota_cb_handler);
    if (err != 0)
    {
        printk("[%s:%d] ERROR: aws_fota_init %d\n", __func__, __LINE__, err);
        return;
    }
    modem_data_init();
    modem_info_params_get(&modem_param);
    modem_data_parsing_for_aws();

    psm_request();

    err = mqtt_connection_start();
    
    
    ...
    
    
    }



Best Regards,

Ali Rıza

  • Hi, and sorry for the late reply.

    I am not able to see how you get the RSRP value from the code you posted, other than by registering some callback function to the modem_info module.

    New RSRP values should be indicated to the application when there is at least 2dB change in value.

    Have you tried asking the modem for the RSRP after changing cell, rather than just waiting for notifications?

    Best regards,

    Didrik

Related