Possible Bug: Cellular modem sample with nRF9151 running SLM

Hello,

I posted this in Zephyr's repo at first, but was told to post it here since I am using NCS.

I am running cellular modem sample on nRF54L15 and have it interfaced with nRF9151 which is running SLM application.

Everything is working except cellular_get_signal(), I am not using 2G or 3G so it is expected that CELLULAR_SIGNAL_RSSI might not be available, however the calls to that function with CELLULAR_SIGNAL_RSRQ and CELLULAR_SIGNAL_RSRP fail also.

They return either -16 (EBUSY) or -22(EINVAL) error codes (it is not consistent).

Calls to cellular_get_modem_info() are successful and they return correct information.

These are the debug logs including modem_chat, interestingly looking at the logs, I actually receive the correct values for RSRQ and RSRP -> 23 61, however the get_signal_cesq_chat_script times out.

[00:01:01.773,996] <dbg> modem_chat: modem_chat_script_next: sending: AT+CESQ
[00:01:01.774,038] <dbg> modem_cmux: modem_cmux_log_frame: tx ch:2 cr:1 pf:0 type:UIH dlen:7
[00:01:01.774,052] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     41 54 2b 43 45 53 51                             |AT+CESQ          
[00:01:01.774,089] <dbg> modem_cmux: modem_cmux_log_frame: tx ch:2 cr:1 pf:0 type:UIH dlen:2
[00:01:01.774,102] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     0d 0a                                            |..               
[00:01:01.814,943] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:2 cr:1 pf:0 type:UIH dlen:31
[00:01:01.814,959] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     0d 0a 2b 43 45 53 51 3a  20 39 39 2c 39 39 2c 32 |..+CESQ:  99,99,2
                                     35 35 2c 32 35 35 2c 32  33 2c 36 31 0d 0a 0d    |55,255,2 3,61...
[00:01:01.815,049] <dbg> modem_chat: modem_chat_log_received_command: +CESQ:  99 99 255 255 23 61
[00:01:01.815,080] <dbg> modem_chat: modem_chat_script_next: get_signal_cesq_chat_script: step: 1
[00:01:03.319,140] <dbg> modem_cellular: modem_cellular_log_event: event timeout
[00:01:03.774,060] <wrn> modem_chat: get_signal_cesq_chat_script: timed out

P.S. I only added couple of new lines in print_cellular_info() function to try to fetch RSRP and RSRQ

    rc = cellular_get_signal(modem, CELLULAR_SIGNAL_RSSI, &rssi);
    if (!rc) {
        printk("RSSI %d\n", rssi);
    }

    rc = cellular_get_signal(modem, CELLULAR_SIGNAL_RSRP, &rsrp);
    if (!rc) {
        printk("RSRP %d\n", rsrp);
    }

    rc = cellular_get_signal(modem, CELLULAR_SIGNAL_RSRQ, &rsrq);
    if (!rc) {
        printk("RSRQ %d\n", rsrp);
    }

ENV:
Device: nRF54L15 running cellular modem and Thingy91x running SLM application
OS: Ubuntu 24.04.2 LTS
Toolchain: Zephyr 0.17.0 SDK / nordic vscode extension
Commit SHA or Version used: 77f865b, v4.0.99-ncs1-1

Related