Configuration for nRF54L15dk running cellular modem application and SLM on nrf9151dk board

Hello,

I am trying to configure cellular modem application running on nrf54l15dk board and SLM on nrf9151dk board.

I get the 2 boards communicating but communication seems to fail at a precise point (I suppose right after connection is successful, i.e. +CEREG: 5)

nrf54l15dk output

*** Booting nRF Connect SDK v2.9.0-7787b2649840 ***
*** Using Zephyr OS v3.7.99-1f8f3dc29142 ***
Powering on modem
[00:00:00.433,267] <dbg> modem_cellular: modem_cellular_log_event: event resume
[00:00:00.433,306] <dbg> modem_cellular: modem_cellular_log_state_changed: switch from idle to power pulse
Bring up network interface
Waiting for L4 connected
[00:00:00.533,343] <dbg> modem_cellular: modem_cellular_log_event: event timeout
[00:00:00.533,388] <dbg> modem_cellular: modem_cellular_log_state_changed: switch from power pulse to await power on
[00:00:02.533,438] <dbg> modem_cellular: modem_cellular_log_event: event timeout
[00:00:02.533,505] <dbg> modem_cellular: modem_cellular_log_state_changed: switch from await power on to run init script
[00:00:02.533,528] <dbg> modem_cellular: modem_cellular_log_event: event bus opened
[00:00:02.533,566] <dbg> modem_chat: modem_chat_script_start: running script: nordic_nrf91_slm_init_chat_script
[00:00:02.533,579] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 0
[00:00:02.533,593] <dbg> modem_chat: modem_chat_script_next: sending: AT
[00:00:02.547,686] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:02.547,700] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 1
[00:00:02.547,714] <dbg> modem_chat: modem_chat_script_next: sending: AT+CMEE=1
[00:00:02.562,036] <dbg> modem_chat: modem_chat_log_received_command: OK
--- 1 messages dropped ---
[00:00:02.562,054] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 2
[00:00:02.562,068] <dbg> modem_chat: modem_chat_script_next: sending: AT+CEREG=1
[00:00:02.576,351] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:02.576,378] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 3
[00:00:02.576,392] <dbg> modem_chat: modem_chat_script_next: sending: AT+CEREG?
[00:00:02.591,132] <dbg> modem_chat: modem_chat_log_received_command: +CEREG:  1 4
[00:00:02.591,168] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:02.591,181] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 4
[00:00:02.591,196] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGSN
[00:00:02.591,225] <dbg> modem_cellular: modem_cellular_log_event: event deregistered
[00:00:02.606,131] <dbg> modem_chat: modem_chat_log_received_command:  359404230050586
[00:00:02.606,175] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:02.606,187] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 6
[00:00:02.606,201] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGMM
[00:00:02.621,003] <dbg> modem_chat: modem_chat_log_received_command:  nRF9151-LACA
[00:00:02.621,021] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 7
[00:00:02.621,047] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:02.621,058] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 8
[00:00:02.621,073] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGMI
[00:00:02.636,140] <dbg> modem_chat: modem_chat_log_received_command:  Nordic Semiconductor ASA
[00:00:02.636,158] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 9
[00:00:02.636,215] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:02.636,228] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 10
[00:00:02.636,242] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGMR
[00:00:02.651,097] <dbg> modem_chat: modem_chat_log_received_command:  mfw_nrf91x1_2.0.1
[00:00:02.651,116] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 11
[00:00:02.651,139] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:02.651,150] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_init_chat_script: step: 12
[00:00:02.651,165] <dbg> modem_chat: modem_chat_script_next: sending: AT#XCMUX=1
[00:00:02.656,453] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:02.656,467] <dbg> modem_chat: modem_chat_script_stop: nordic_nrf91_slm_init_chat_script: complete
[00:00:02.656,522] <dbg> modem_cellular: modem_cellular_log_event: event script success
[00:00:02.656,727] <dbg> modem_cellular: modem_cellular_log_event: event bus closed
[00:00:02.656,764] <dbg> modem_cellular: modem_cellular_log_state_changed: switch from run init script to connect cmux
[00:00:02.756,796] <dbg> modem_cellular: modem_cellular_log_event: event timeout
--- 2 messages dropped ---
[00:00:02.756,849] <dbg> modem_cellular: modem_cellular_log_event: event bus opened
[00:00:02.756,899] <dbg> modem_cmux: modem_cmux_log_frame: tx ch:0 cr:1 pf:1 type:SABM dlen:0
[00:00:02.756,911] <dbg> modem_cmux: modem_cmux_log_frame: data:
[00:00:02.837,243] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:0 cr:1 pf:1 type:UA dlen:0
[00:00:02.837,256] <dbg> modem_cmux: modem_cmux_log_frame: data:
[00:00:02.837,294] <dbg> modem_cellular: modem_cellular_log_event: event cmux connected
[00:00:02.837,327] <dbg> modem_cellular: modem_cellular_log_state_changed: switch from connect cmux to open dlci1
[00:00:02.837,363] <dbg> modem_cmux: modem_cmux_log_frame: tx ch:1 cr:1 pf:1 type:SABM dlen:0
--- 3 messages dropped ---
[00:00:02.837,375] <dbg> modem_cmux: modem_cmux_log_frame: data:
[00:00:02.870,482] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:1 type:UA dlen:0
[00:00:02.870,495] <dbg> modem_cmux: modem_cmux_log_frame: data:
[00:00:02.870,533] <dbg> modem_cellular: modem_cellular_log_event: event dlci1 opened
[00:00:02.870,627] <dbg> modem_cmux: modem_cmux_log_frame: data:
[00:00:02.903,745] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:2 cr:1 pf:1 type:UA dlen:0
[00:00:02.903,758] <dbg> modem_cmux: modem_cmux_log_frame: data:
[00:00:02.903,797] <dbg> modem_cellular: modem_cellular_log_event: event dlci2 opened
[00:00:02.903,824] <dbg> modem_cellular: modem_cellular_log_state_changed: switch from open dlci2 to run dial script
[00:00:03.003,867] <dbg> modem_cellular: modem_cellular_log_event: event timeout
[00:00:03.003,906] <dbg> modem_chat: modem_chat_script_start: running script: nordic_nrf91_slm_dial_chat_script
[00:00:03.003,921] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_dial_chat_script: step: 0
[00:00:03.003,935] <dbg> modem_chat: modem_chat_script_next: sending: AT+CFUN=4
[00:00:03.004,041] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     0d 0a                                            |..               
[00:00:03.047,033] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:6
[00:00:03.047,047] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     0d 0a 4f 4b 0d 0a                                |..OK..           
[00:00:03.047,100] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:03.047,113] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_dial_chat_script: step: 1
[00:00:03.047,128] <dbg> modem_chat: modem_chat_script_next: sending: AT+CFUN=1
[00:00:03.047,175] <dbg> modem_cmux: modem_cmux_log_frame: tx ch:1 cr:1 pf:0 type:UIH dlen:9
[00:00:03.047,188] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     41 54 2b 43 46 55 4e 3d  31                      |AT+CFUN= 1       
[00:00:03.047,239] <dbg> modem_cmux: modem_cmux_log_frame: tx ch:1 cr:1 pf:0 type:UIH dlen:2
[00:00:03.047,252] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     0d 0a                                            |..               
[00:00:03.129,492] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:6
[00:00:03.129,519] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     0d 0a 4f 4b 0d 0a                                |..OK..           
[00:00:03.129,573] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:03.129,586] <dbg> modem_chat: modem_chat_script_next: nordic_nrf91_slm_dial_chat_script: step: 2
[00:00:03.129,600] <dbg> modem_chat: modem_chat_script_next: sending: AT#XCMUX=2
[00:00:03.129,648] <dbg> modem_cmux: modem_cmux_log_frame: tx ch:1 cr:1 pf:0 type:UIH dlen:10
[00:00:03.129,671] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     41 54 23 58 43 4d 55 58  3d 32                   |AT#XCMUX =2      
[00:00:03.129,717] <dbg> modem_cmux: modem_cmux_log_frame: tx ch:1 cr:1 pf:0 type:UIH dlen:2
[00:00:03.129,734] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     0d 0a                                            |..               
[00:00:03.163,406] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:2 cr:1 pf:0 type:UIH dlen:6
[00:00:03.163,419] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     0d 0a 4f 4b 0d 0a                                |..OK..           
[00:00:04.093,298] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:2 cr:1 pf:0 type:UIH dlen:13
[00:00:04.093,324] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     0d 0a 2b 43 45 52 45 47  3a 20 32 0d 0a          |..+CEREG : 2..   
[00:00:09.007,397] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:31
[00:00:09.007,424] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     7e ff 7d 23 c0 21 7d 21  7d 21 7d 20 7d 2e 7d 21 |~.}#.!}! }!} }.}!
                                     7d 24 7d 25 7d 20 7d 22  7d 26 ff ff ff ff 9e    |}$}%} }" }&..... 
[00:00:09.007,464] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:2
[00:00:09.007,476] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     83 7e                                            |.~               
[00:00:09.007,515] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:2 cr:1 pf:0 type:UIH dlen:23
[00:00:09.007,528] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     0d 0a 2b 43 4e 45 43 5f  45 53 4d 3a 20 35 30 2c |..+CNEC_ ESM: 50,
                                     30 0d 0a 0d 0a 2b 43                             |0....+C          
[00:00:09.007,567] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:2 cr:1 pf:0 type:UIH dlen:25
[00:00:09.007,580] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     45 52 45 47 3a 20 35 0d  0a 0d 0a 23 58 50 50 50 |EREG: 5. ...#XPPP
                                     3a 20 31 2c 30 2c 30 0d  0a                      |: 1,0,0. .       
[00:00:13.004,015] <wrn> modem_chat: nordic_nrf91_slm_dial_chat_script: timed out
[00:00:13.004,064] <dbg> modem_cellular: modem_cellular_log_event: event script failed
[00:00:14.006,013] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:31
[00:00:14.006,041] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     7e ff 7d 23 c0 21 7d 21  7d 21 7d 20 7d 2e 7d 21 |~.}#.!}! }!} }.}!
                                     7d 24 7d 25 7d 20 7d 22  7d 26 ff ff ff ff 9e    |}$}%} }" }&..... 
[00:00:14.006,081] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:2
[00:00:14.006,093] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     83 7e                                            |.~               
[00:00:19.006,367] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:31
[00:00:19.006,394] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     7e ff 7d 23 c0 21 7d 21  7d 21 7d 20 7d 2e 7d 21 |~.}#.!}! }!} }.}!
                                     7d 24 7d 25 7d 20 7d 22  7d 26 ff ff ff ff 9e    |}$}%} }" }&..... 
[00:00:19.006,434] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:2
[00:00:19.006,446] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     83 7e                                            |.~               
[00:00:24.006,562] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:31
[00:00:24.006,589] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     7e ff 7d 23 c0 21 7d 21  7d 21 7d 20 7d 2e 7d 21 |~.}#.!}! }!} }.}!
                                     7d 24 7d 25 7d 20 7d 22  7d 26 ff ff ff ff 9e    |}$}%} }" }&..... 
[00:00:24.006,630] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:2
[00:00:24.006,642] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     83 7e                                            |.~               
[00:00:24.006,718] <wrn> modem_chat: receive buffer overrun
[00:00:29.006,724] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:31
[00:00:29.006,751] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     7e ff 7d 23 c0 21 7d 21  7d 21 7d 20 7d 2e 7d 21 |~.}#.!}! }!} }.}!
                                     7d 24 7d 25 7d 20 7d 22  7d 26 ff ff ff ff 9e    |}$}%} }" }&..... 
[00:00:29.006,791] <dbg> modem_cmux: modem_cmux_log_frame: rcvd ch:1 cr:1 pf:0 type:UIH dlen:2
[00:00:29.006,803] <dbg> modem_cmux: modem_cmux_log_frame: data:
                                     83 7e                                            |.~
                                     
                    ............

nrf9151dk output

*** Booting nRF Connect SDK v3.1.0-6c6e5b32496e ***
*** Using Zephyr OS v4.1.99-1612683d4010 ***
[00:00:00.253,875] <inf> at_cmd_custom: Custom AT commands enabled with 44 entries.
[00:00:03.672,760] <inf> fs_nvs: 2 Sectors of 4096 bytes
[00:00:03.672,760] <inf> fs_nvs: alloc wra: 0, fe8
[00:00:03.672,790] <inf> fs_nvs: data wra: 0, 0
[00:00:03.934,417] <inf> slm: lib_modem init: 0
[00:00:03.935,058] <inf> mcuboot_util: Image index: 0, Swap type: none
[00:00:03.935,089] <inf> slm_ctrl_pin: Entering sleep.
*** Booting nRF Connect SDK v3.1.0-6c6e5b32496e ***
*** Using Zephyr OS v4.1.99-1612683d4010 ***
[00:00:00.253,875] <inf> at_cmd_custom: Custom AT commands enabled with 44 entries.
[00:00:00.260,131] <inf> fs_nvs: 2 Sectors of 4096 bytes
[00:00:00.260,162] <inf> fs_nvs: alloc wra: 0, fe8
[00:00:00.260,162] <inf> fs_nvs: data wra: 0, 0
[00:00:00.521,789] <inf> slm: lib_modem init: 0
[00:00:00.522,430] <inf> mcuboot_util: Image index: 0, Swap type: none
[00:00:00.522,460] <inf> slm: Serial LTE Modem
[00:00:00.522,521] <inf> slm_uart_handler: UART baud: 460800 d/p/s-bits: 3/0/1 HWFC: 1
[00:00:00.615,386] <inf> nrf_cloud_info: Device ID: 50344354-3837-4f9d-804c-0710238f6e58
[00:00:00.620,788] <inf> nrf_cloud_info: IMEI:      359404230050586
[00:00:00.712,432] <inf> nrf_cloud_info: UUID:      50344354-3837-4f9d-804c-0710238f6e58
[00:00:00.718,170] <inf> nrf_cloud_info: Modem FW:  mfw_nrf91x1_2.0.1
[00:00:00.718,200] <inf> nrf_cloud_info: Protocol:          MQTT
[00:00:00.718,231] <inf> nrf_cloud_info: Download protocol: HTTPS
[00:00:00.718,261] <inf> nrf_cloud_info: Sec tag:           16842753
[00:00:00.718,322] <inf> nrf_cloud_info: Host name:         mqtt.nrfcloud.com
[00:00:00.718,536] <inf> slm_at_host: at_host init done
[00:00:01.733,764] <inf> slm_cmux: CMUX started.
[00:00:01.764,068] <inf> slm_cmux: CMUX connected.
[00:00:01.797,241] <inf> slm_cmux: DLCI 1 (AT) opened.
[00:00:01.830,413] <inf> slm_cmux: DLCI 2 opened.
[00:00:08.574,615] <inf> slm_ppp: PPP PDN (0) activated.
[00:00:08.575,012] <inf> slm_ppp: PPP start, reason: 0
[00:00:08.579,193] <inf> slm_ppp: PPP socket bound to PDN 0
[00:00:08.580,566] <inf> slm_ppp: PPP start succeeded.

I am using SDK and toolchain v3.1.0 (you can get commit from the log)

This is the configuration I am using for cellular modem:

myproj.conf

# UART Configuration
CONFIG_NRFX_UARTE22=y
CONFIG_UART_ASYNC_API=y
CONFIG_UART_22_ASYNC=y
CONFIG_UART_22_INTERRUPT_DRIVEN=n

# Align with the Serial LTE Modem (SLM) application.
CONFIG_MODEM_CMUX_WORK_BUFFER_SIZE=1500
CONFIG_MODEM_CELLULAR_UART_BUFFER_SIZES=6000

# Prevent sockets getting offloaded to the modem.
CONFIG_NET_SOCKETS_OFFLOAD=y

# Print logs and printk() output on uart0.
CONFIG_LOG_BACKEND_UART=n

CONFIG_MODEM_LOG_LEVEL_DBG=y

# Disable AT shell as SLM application has no AT mode user pipes
CONFIG_MODEM_AT_SHELL=n

# GPIO Configuration
CONFIG_GPIO=y

myoverlay.overlay

/ {
    aliases {
        modem = &modem;
    };
};

&uart22 {
    compatible = "nordic,nrf-uarte";
    status = "okay";
    current-speed = <460800>;
    hw-flow-control;
    pinctrl-0 = <&uart22_default>;
    pinctrl-1 = <&uart22_sleep>;
    pinctrl-names = "default", "sleep";
    modem: modem {
        compatible = "nordic,nrf91-slm";
        status = "okay";
        mdm-power-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
    };
};

&dppic00 {
    status = "okay";
};

&gpio1 {
    status = "okay";
};

&gpio0 {
    status = "okay";
};

&gpio2 {
    status = "okay";
};

&gpiote20 {
    status = "okay";
};

&gpiote30 {
    status = "okay";
};


&pinctrl {
    /omit-if-no-ref/ uart22_default: uart22_default {
        group1 {
            psels = <NRF_PSEL(UART_TX, 1, 12)>,
                    <NRF_PSEL(UART_RTS, 1, 13)>;
        };
        group2 {
            psels = <NRF_PSEL(UART_RX, 1, 11)>,
                    <NRF_PSEL(UART_CTS, 1, 14)>;
            bias-pull-up;
        };
    };

    /omit-if-no-ref/ uart22_sleep: uart22_sleep {
        group1 {
            psels = <NRF_PSEL(UART_TX, 1, 12)>,
                    <NRF_PSEL(UART_RX, 1, 11)>,
                    <NRF_PSEL(UART_RTS, 1, 13)>,
                    <NRF_PSEL(UART_CTS, 1, 14)>;
            low-power-enable;
        };
    };
};

for slm (-- -DEXTRA_CONF_FILE="overlay-cmux.conf;overlay-ppp.conf;overlay-zephyr-modem.conf;boards/nrf9151dk_nrf9151_ns_cityz.conf" -DEXTRA_DTC_OVERLAY_FILE=boards/nrf9151dk_nrf9151_ns_cityz.overlay )

overlay-cmux.conf

#
# Copyright (c) 2023 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

CONFIG_SLM_CMUX=y
CONFIG_SLM_SKIP_READY_MSG=y

# Zephyr modem subsystem
CONFIG_MODEM_MODULES=y
CONFIG_MODEM_CMUX=y

# Enable SLM UART backend
CONFIG_MODEM_BACKEND_UART=n
CONFIG_MODEM_BACKEND_UART_ASYNC=n
CONFIG_MODEM_BACKEND_UART_SLM=y
CONFIG_MODEM_BACKEND_UART_SLM_TRANSMIT_TIMEOUT_MS=1000

# debug options
#CONFIG_MODEM_CMUX_LOG_LEVEL_DBG=y
#CONFIG_MODEM_MODULES_LOG_LEVEL_DBG=y

overlay-ppp.conf

#
# Copyright (c) 2023 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

CONFIG_SLM_PPP=y

# When using PPP, disable commands of IP-based protocols to save flash space.
CONFIG_SLM_FTPC=n
CONFIG_SLM_TFTPC=n
CONFIG_SLM_HTTPC=n
CONFIG_SLM_MQTTC=n

# NCS modem libraries
CONFIG_PDN=y
CONFIG_AT_CMD_CUSTOM=y

CONFIG_NRF_MODEM_LIB_SHMEM_TX_SIZE=22528

# Zephyr PPP support
CONFIG_NET_NATIVE=y
CONFIG_NET_L2_PPP=y
CONFIG_MODEM_MODULES=y
CONFIG_MODEM_PPP=y

# Enable SLM UART backend
CONFIG_MODEM_BACKEND_UART=n
CONFIG_MODEM_BACKEND_UART_ASYNC=n
CONFIG_MODEM_BACKEND_UART_SLM=y
CONFIG_MODEM_BACKEND_UART_SLM_TRANSMIT_TIMEOUT_MS=1000

# L2 protocol
CONFIG_NET_L2_PPP_MGMT=y
CONFIG_NET_L2_PPP_OPTION_MRU=y
CONFIG_NET_L2_PPP_OPTION_SERVE_IP=y
CONFIG_NET_L2_PPP_OPTION_SERVE_DNS=y
CONFIG_NET_L2_PPP_TIMEOUT=5000
CONFIG_NET_L2_PPP_MAX_CONFIGURE_REQ_RETRANSMITS=20

# IP stack
CONFIG_NET_IP_ADDR_CHECK=n
CONFIG_NET_SOCKETS_PACKET=y

# network buffering
CONFIG_NET_BUF=y
CONFIG_NET_BUF_POOL_USAGE=y
CONFIG_NET_PKT_RX_COUNT=44
CONFIG_NET_BUF_RX_COUNT=88
CONFIG_NET_PKT_TX_COUNT=44
CONFIG_NET_BUF_TX_COUNT=88
CONFIG_NET_TC_RX_COUNT=0
CONFIG_NET_CONN_PACKET_CLONE_TIMEOUT=1000

# debug options
#CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=4096
#CONFIG_NET_LOG=y
#CONFIG_NET_IF_LOG_LEVEL_DBG=y
#CONFIG_NET_PKT_LOG_LEVEL_DBG=y
#CONFIG_NET_L2_PPP_LOG_LEVEL_DBG=y
#CONFIG_NET_MGMT_EVENT_LOG_LEVEL_DBG=y
#CONFIG_MODEM_MODULES_LOG_LEVEL_DBG=y
#CONFIG_UART_LOG_LEVEL_DBG=y

overlay-zephyr-modem.conf

#
# Copyright (c) 2024 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

# The nRF91 is power-managed by Zephyr's modem_cellular driver running on the other chip.
CONFIG_SLM_START_SLEEP=y

# Compatibility with cellular modem driver.
CONFIG_SLM_MODEM_CELLULAR=y

oards/nrf9151dk_nrf9151_ns_cityz.conf

#
# Copyright (c) 2024 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

# Configuration file for nRF9151DK.
# This file is merged with prj.conf in the application folder, and options
# set here will take precedence if they are present in both files.

# When working with PC terminal, unmask the following config.
# CONFIG_SLM_POWER_PIN=8
# CONFIG_SLM_INDICATE_PIN=0

# When working with external MCU, unmask the following config.
CONFIG_SLM_POWER_PIN=14
# CONFIG_SLM_INDICATE_PIN=-1

boards/nrf9151dk_nrf9151_ns_cityz.overlay

/*
 * Copyright (c) 2024 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
 */

 / {
	chosen {
		ncs,slm-uart = &uart2;
	};
};

&uart0 {
	status = "disabled";
	hw-flow-control;
};

&uart2 {
	compatible = "nordic,nrf-uarte";
	current-speed = <460800>;
	status = "okay";
	hw-flow-control;

	pinctrl-0 = <&uart2_default_alt>;
	pinctrl-1 = <&uart2_sleep_alt>;
	pinctrl-names = "default", "sleep";
};

&i2c2 {
	status = "disabled";
};


/* Enable external flash */
&gd25wb256 {
	status = "disabled";
};

&spi3 {
	status = "disabled";
};

&pinctrl {
	uart2_default_alt: uart2_default_alt {
		group1 {
			psels = <NRF_PSEL(UART_RX, 0, 11)>,
				<NRF_PSEL(UART_CTS, 0, 13)>;
			bias-pull-up;
		};
		group2 {
			psels = <NRF_PSEL(UART_TX, 0, 10)>,
				<NRF_PSEL(UART_RTS, 0, 12)>;
		};
	};

	uart2_sleep_alt: uart2_sleep_alt {
		group1 {
			psels = <NRF_PSEL(UART_TX, 0, 10)>,
				<NRF_PSEL(UART_RX, 0, 11)>,
				<NRF_PSEL(UART_RTS, 0, 12)>,
				<NRF_PSEL(UART_CTS, 0, 13)>;
			low-power-enable;
		};
	};
};

What can be the issue? Can you support me or can you providing a working setup?

Thank you very much!

Alessandro

Parents Reply Children
  • Hello Kazi,
    since I wanted a working solution I also asked on the discord channel and thanks to  support I got it working. Basically I switched to ncs v3.2.0 and added ncs-serial-modem module.
    I flashed the app into nrf9151 and the ppp_shell_sample into the nrf54l15.
    Just for reference documentation is available here for both app and host samples.
    Thank you very much for your support!

  • I'll add a bit more context here, just for documentation purposes if someone else find their way to this message thread.

    The root cause originally have been caused by the design of the non-standard AT commands AT#XPPP=1 on Serial Modem. The PPP in the Serial Modem automatically starts, but it is designed to start on secondary DLC channel, not the designated AT channel. Then another AT command is used to switch channels AT#XCMUX=2.

    So in many cases, the PPP starts on a channel that Zephyr driver is not expexting. Zephyr cellular modem driver is written so that it expects standard ATD*99# which swithes current DLC channel to PPP mode.

    I updated the PPP documentation a bit yesterday, to document this better: https://docs.nordicsemi.com/bundle/addon-serial_modem-latest/page/app/sm_cellular_modem.html

    Current serial modem have taken some patches from Zephyr to use different AT command order. The coming 1.0 release is the one I recommend everyone to switch to.

    The dial script that we use with Zephyr driver is

    AT#XPPP=0
    AT+CFUN=4
    AT#XPPP=1
    AT+CFUN=1
    AT#XCMUX=2
    


    This sequence ensures that PPP is stopped before device enters the CFUN=1 and attached to network. The AT#XCMUX=2 is critical to be executed just before the PPP starts, so that it switches the AT channel.

    This will be improved in future versions (2.0) of Serial Modem where we plan to implement standard ATD and AT+CMUX commands, but we cannot break AT command behavior on release 1.0, and therefore these workarounds might still be needed. For a background information, Serial Modem 1.0 aims to have minimal API breaks when coming from Serial LTE Modem application that was previously supplied inside nRF Connect SDK.

    Best Regards,

    Seppo Takalo

Related