Em9190 gps

Hi,

I’m trying to receive the GPS NMEA location.

Current FW version: SWIX55C_03.14.10.04
MBPL drivers are compiled from source. Modem manager says drivers: mhi-pci-semtech.
Currently testing on Ubuntu: 24.04 LTS

Using MBIM the data connection works fine. But mmcli -m 0 --location-status returns modem has no location capabilities. I suppose it is sending incorrect commands to determine it has this capability?

Using QMI I am able to get the location, but trying to connect (data conn) I receive the following message:
running: `mmcli -m 1 --simple-connect=“apn=,ip-type=ipv4v6” returns
Failed: Unsupported QMI Kernel driver for ‘net/ww’

Using AT commands I am also able to get the location, but since we rely on ModemManager, it seems to be running into issues if I open a secondary connection to that wwan0at0 device.

First question: does the EM9190 / SDX55 have support for QMI as a driver. Is there anything else that should be needed

Second question: Is there a custom MBIM device service that somehow needs to be enabled?

You can use qmicli to get nmea frame

The default mbim interface should be working fine

The MBIM interface works, the problem is that ModemManager does not recognize the location capability when in MBIM mode. It does while in QMI-mode, but then the data-connection does not work.

Is it possible to use mbimcli while using ModemManager is using MBIM? Because I know 2 applications trying to use AT commands at the same time results in undefined behaviour.

i don’t think mbimcli will use AT command, it should only use MBIM interface

but using mbim-cli while ModemManager is also using the mbim interface, is fine?

i don’t quite recommend using mmcli
from your example above, it cannot even establish data connection

data connection works with mbim, not with qmi.

i remember qmicli works in my EM91 module:

owner@ubuntu:~$ sudo qmicli --device=/dev/cdc-wdm0 --device-open-proxy --device-open-mbim --get-wwan-iface
wwan0


owner@ubuntu:~/Downloads$ sudo qmicli --device=/dev/cdc-wdm0 --device-open-proxy --device-open-mbim --nas-get-signal-strength
[/dev/cdc-wdm0] Successfully got signal strength
Current:
	Network 'none': '-128 dBm'
RSSI:
	Network 'none': '-128 dBm'
ECIO:
	Network 'none': '-2.5 dBm'
IO: '-106 dBm'
SINR (8): '9.0 dB'



owner@ubuntu:~$ sudo qmicli --device=/dev/cdc-wdm0 --device-open-proxy --device-open-mbim --wds-get-packet-service-status
[/dev/cdc-wdm0] Connection status: 'connected'

owner@ubuntu:~$ sudo qmicli --device=/dev/cdc-wdm0 --device-open-proxy --device-open-mbim --wds-get-current-settings
[/dev/cdc-wdm0] Current settings retrieved:
           IP Family: IPv4
        IPv4 address: 10.21.119.34
    IPv4 subnet mask: 255.255.255.252
IPv4 gateway address: 10.21.119.33
    IPv4 primary DNS: 10.13.168.140
  IPv4 secondary DNS: 10.13.200.140
                 MTU: 1500
             Domains: none

For us qmicli is stuck on connection state: registered. Journalctl lists the following error: Failed: Unsupported QMI Kernel driver for ‘net/ww’

do you mean your qmicli only cannot establish data connection?
how about other command with qmicli like getting signal strength?

Why don’t you just establish data connectinon by mbimcli and getting location by AT command or qmicli?

Qmicli is able to get signal strength and location. Solely data connection is not working. Using AT commands within our application results in issue because ModemManager is using the same interface. Which sometimes results in the modem not responding at all, which only fixes it with an at!reset..
mbimcli is not able to get the location (it cannot find the location capability)

why do you need to keep modemmanager then?

we use it to set-up and maintain the data connection :stuck_out_tongue:

as said before, you should use mbimcli for data connection

Another option is to use MBPL SDK. With the lite-qmi-connection manager, you should be able to establish data connnection

FYI, I just tried with qmi-network command with EM9191 in Ubuntu 18, no problem is found:

owner@ubuntu:~$ sudo qmi-network /dev/cdc-wdm0 start
Loading profile at /etc/qmi-network.conf...
    APN: hkcsl
    APN user: unset
    APN password: unset
    qmi-proxy: no
Checking data format with 'qmicli -d /dev/cdc-wdm0 --wda-get-data-format '...
Device link layer protocol retrieved: raw-ip
Getting expected data format with 'qmicli -d /dev/cdc-wdm0 --get-expected-data-format'...
error: cannot get expected data format: Expected data format not retrieved properly: Failed to open file '/sys/class/net/wwan0/qmi/raw_ip': No such file or directory
[19 May 2025, 23:32:08] -Warning ** [/dev/cdc-wdm0] MBIM device wasn't explicitly closed
Expected link layer protocol not retrieved: kernel unsupported
Updating device link layer protocol with 'qmicli -d /dev/cdc-wdm0 --wda-set-data-format=802-3 '...
New device link layer protocol retrieved: raw-ip
Starting network with 'qmicli -d /dev/cdc-wdm0 --wds-start-network=apn='hkcsl'  --client-no-release-cid '...
Saving state at /tmp/qmi-network-state-cdc-wdm0... (CID: 44)
Saving state at /tmp/qmi-network-state-cdc-wdm0... (PDH: 1627153840)
Network started successfully