Setting up EM9291 Module

Hi,

I have been looking for documentation on how to set up and use the EM9291 module with a host device, such as a Raspberry Pi.

Do we have any documents outlining the steps to set up, configure, and test the EM9291 module via the USB interface?

Additionally, could you please provide the details of the Linux 6.6.36 drivers and firmware required for this module?

Thanks,

Arti

You can see here

You can download the mbpl usb driver here

Hi,

Thanks for the prompt response.
As mentioned, my module is EM9291. Will the same steps work for this module also?
Also, my host is ARM64 architecture.
From where can I get the lite-qmi-connection-manager binary for my host?
I will need the source code to build it for my host.

the method of installation of USB driver is the same

For the source code of connection manager, please download MBPL_SDK_R44_ENG5-lite.bin.tar

Hi @jyijyi ,

I followed the steps you mentioned in the document. but I m getting:

AT!GSTATUS?
ERROR
AT+CGDCONT
OK
AT!SCACT=1,1
ERROR

I am also not getting any ip on wwan0 device.

can you please suggest if I am missing anything.

what are the return of the followings?

ati3
AT!ENTERCND="A710"
AT!SKU?
at!IMPREF?
AT!selrat?
at!SDPREF?
At+cpin?
At+cfun?
At!pcinfo? 
at!band?
at!band=?

Hi @jyijyi ,

I have conected my EM9291 module to the raspberry pi board and it is workig by default without any code change.

The driver used is : cdc_mbim

[ 423.940703] usbcore: registered new interface driver cdc_mbim
[ 425.716250] cdc_mbim 1-1.3:1.0: setting rx_max = 16384
[ 425.716635] cdc_mbim 1-1.3:1.0: cdc-wdm0: USB WDM device
[ 425.716994] cdc_mbim 1-1.3:1.0 wwan0: register ‘cdc_mbim’ at usb-0000:01:00.0-1.3, CDC MBIM, 1a:8d:7f:a6:f3:ec

But the driver here Mobile Broadband Package for Linux (SDK, Drivers, Documentation)
uses : qmi_wwan

If I use qmi_wwan driver in raspberry pi, my moduele is not working.

Can you please suggest which driver we need to use for the EM9291 module?

Thanks,
Arti

qmi_wwan is for RMNET driver
You need to check whether AT!USBCOMP? is using RMNET or MBIM.

But please note that rmnet is not quite recommended for users for EM9 module, MBIM is more preferred:

Hi @jyijyi ,

please find the output of the commands you asked for:
ati3
Manufacturer: Sierra Wireless, Incorporated
Model: EM9291
Revision: SWIX65C_02.15.01.00 5268b2 jenkins 2023/11/17 22:12:47
IMEI: 358186652504866
IMEI SV: 2
FSN: 835212742102B1
+GCAP: +CGSM

AT!SKU?
!SKU: 1105097

at!IMPREF?
!IMPREF:
preferred fw version: 02.15.01.00
preferred carrier name: GENERIC
preferred config name: GENERIC_030.054_001
preferred subpri index: 000
current fw version: 02.15.01.00
current carrier name: GENERIC
current config name: GENERIC_030.054_001
current subpri index: 000

AT!selrat?
!SELRAT: 00, Automatic

at!SDPREF?
RATs : WCDMA,LTE,NR5G
GWC : B1,B2,B4,B5,B6,B8,B19
LTE : B1,B2,B3,B4,B5,B7,B8,B12,B13,B14,B17,B18,B19,B20,B25,B26,B28,B29,B30,B32,B34,B38,B39,B40,B41,B42,B43,B46,B48,B66,B71
TDS :
NRSA : n1,n2,n3,n5,n7,n8,n12,n13,n14,n18,n20,n25,n26,n28,n29,n30,n38,n40,n41,n48,n66,n70,n71,n75,n76,n77,n78,n79
NRNSA: n1,n2,n3,n5,n7,n8,n12,n13,n14,n18,n20,n25,n26,n28,n29,n30,n38,n40,n41,n48,n66,n70,n71,n75,n76,n77,n78,n79

At!pcinfo?
State: Online
LPM voters - Temp:0, Volt:0, User:0, W_DISABLE:0, IMSWITCH:0, BIOS:0, LWM2M:0, OMADM:0, FOTA:0, NVCRIT:0, RFCAL:0, MMWCAL:0, RFC_INIT:0
LPM persistence - None

at!band?
Index, Name
00, All bands,
0 - GW: 100200000EC00000
1 - LTE: 0000A7E2BB0F38DF 0000000000000042
3 - NRNSA: 000081A03B0A38D7 0000000000007C62
4 - NRSA: 000081A03B0A38D7 0000000000007C62

AT!USBCOMP?
Config Index: 1
Config Type: 4 (MBIM V2)
Interface bitmask: 00001009 (diag,modem,mbim)

I am working on my custom board based on imx8mp and getting hte below error when trying to run ifconfig wwan0 up.
[ 185.057509] NETDEV WATCHDOG: wwan2 (cdc_mbim): transmit queue 0 timed out 10016 ms
[ 185.065164] WARNING: CPU: 1 PID: 0 at net/sched/sch_generic.c:525 dev_watchdog+0x234/0x23c

Please note I am using cdc_mbim driver only.

thanks

it is using MBIM interface.
Is it OK now to set up mbim-network for data establishment?

Hi @jyijyi

Yes I am using mbim only but getting error.

root@imx8mp:~# dmesg | grep -i cdc
[ 1.809915] usbcore: registered new interface driver cdc_ether
[ 1.821743] usbcore: registered new interface driver cdc_ncm
[ 1.827440] usbcore: registered new interface driver cdc_mbim
[ 1.860510] usbcore: registered new interface driver cdc_wdm
[ 6.122283] cdc_mbim 1-1:1.0: setting rx_max = 16384
[ 6.129117] cdc_mbim 1-1:1.0: cdc-wdm0: USB WDM device
[ 6.142812] cdc_mbim 1-1:1.0 wwan2: register ‘cdc_mbim’ at usb-xhci-hcd.1.auto-1, CDC MBIM, d2:4b:53:20:5a:4d
[ 1145.626121] cdc_mbim 1-1:1.0 wwan2: unregister ‘cdc_mbim’ usb-xhci-hcd.1.auto-1, CDC MBIM
[ 1159.075417] cdc_mbim 1-1:1.0: setting rx_max = 16384
[ 1159.080957] cdc_mbim 1-1:1.0: cdc-wdm0: USB WDM device
[ 1159.091961] cdc_mbim 1-1:1.0 wwan2: register ‘cdc_mbim’ at usb-xhci-hcd.1.auto-1, CDC MBIM, d2:4b:53:20:5a:4d
[ 1400.803320] NETDEV WATCHDOG: wwan2 (cdc_mbim): transmit queue 0 timed out 9800 ms

Thanks,

Arti

If you ignore those error, Is it OK now to set up mbim-network for data establishment?

Hi @jyijyi ,
It is still not wokring.
can you please share with me the exact cdc_mbim driver, config or steps to validate this module on a custom board?

thanks

cdc-mbim is generic driver in linux, it is not from Semtech.

You can validate the module in Ubuntu linux PC.
If it works, then it is your raspberry pi board problem.

BTW, other user did not find problem on MBIM interface with Raspberry pi board:

Here is another user who can make it work on raspberry pi board with EM9293:

Hi @jyijyi ,
I can get the module function with mbim driver but with the qmi driver. I am still facing issues. There is no wwan interface with qmi driver.

Thanks,
Arti

Qmi communication also works in mbim interface

If I use the qmi driver from the semtech website. I do not see any wwan0 device.
I can only see the wwan interface with mbim driver CDC_MBIM driver.

Also if I use both the drivers I get similar issues:

Thanks,
Arti

did you set correctly in AT!USBCOMP?

From kernel log, is it using USB3.0?
Can you try with USB 2.0 hub and see if there is still problem?