Telit LE910C1 - GPS integration

Aleksander Morgado aleksander at aleksander.es
Mon Apr 27 14:23:39 UTC 2020


Hey,

>
> I didn't found information in Telit documentation about the GPS control with QMI. I'll try to poke them directly. On the other side, I did enable the gps with success using mmcli but didn't had any data location under the --location-get command.
> Here is the log when I do the command mmcli -m 0 --location-enable-gps-nmea if you ever see something unusual.
> ----------------------------------------------------------------------------------
> <debug> [1587919447.966940] Got QMI WDS event report
> <debug> [1587919448.098691] Setting up location sources: '3gpp-lac-ci, gps-nmea'
> <debug> [1587919448.098791] Location '3gpp-lac-ci' gathering is already enabled...
> <debug> [1587919448.098826] Location 'gps-raw' gathering is already disabled...
> <debug> [1587919448.098855] Location 'agps-msa' gathering is already disabled...
> <debug> [1587919448.098880] Location 'agps-msb' gathering is already disabled...
> <debug> [1587919448.098901] Need to enable the following location sources: 'gps-nmea'
> [/dev/cdc-wdm0] sent message...
> <<<<<< RAW:
> <<<<<<   length = 38
> <<<<<<   data   = 01:25:00:00:10:03:00:03:00:22:00:19:00:13:04:00:E8:03:00:00:12:04:00:02:00:00:00:10:04:00:01:00:00:00:01:01:00:10
> [/dev/cdc-wdm0] sent generic request (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 37
> <<<<<<   flags   = 0x00
> <<<<<<   service = "loc"
> <<<<<<   client  = 3
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 3
> <<<<<<   tlv_length  = 25
> <<<<<<   message     = "Start" (0x0022)
> <<<<<< TLV:
> <<<<<<   type       = "Minimum Interval between Position Reports" (0x13)
> <<<<<<   length     = 4
> <<<<<<   value      = E8:03:00:00
> <<<<<<   translated = 1000
> <<<<<< TLV:
> <<<<<<   type       = "Intermediate Report State" (0x12)
> <<<<<<   length     = 4
> <<<<<<   value      = 02:00:00:00
> <<<<<<   translated = disable
> <<<<<< TLV:
> <<<<<<   type       = "Fix Recurrence Type" (0x10)
> <<<<<<   length     = 4
> <<<<<<   value      = 01:00:00:00
> <<<<<<   translated = periodic-fixes
> <<<<<< TLV:
> <<<<<<   type       = "Session ID" (0x01)
> <<<<<<   length     = 1
> <<<<<<   value      = 10
> <<<<<<   translated = 16
> [/dev/cdc-wdm0] received message...
> <<<<<< RAW:
> <<<<<<   length = 20
> <<<<<<   data   = 01:13:00:80:10:03:02:03:00:22:00:07:00:02:04:00:00:00:00:00
> [/dev/cdc-wdm0] received generic response (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 19
> <<<<<<   flags   = 0x80
> <<<<<<   service = "loc"
> <<<<<<   client  = 3
> <<<<<< QMI:
> <<<<<<   flags       = "response"
> <<<<<<   transaction = 3
> <<<<<<   tlv_length  = 7
> <<<<<<   message     = "Start" (0x0022)
> <<<<<< TLV:
> <<<<<<   type       = "Result" (0x02)
> <<<<<<   length     = 4
> <<<<<<   value      = 00:00:00:00
> <<<<<<   translated = SUCCESS
> [/dev/cdc-wdm0] sent message...
> <<<<<< RAW:
> <<<<<<   length = 24
> <<<<<<   data   = 01:17:00:00:10:03:00:04:00:21:00:0B:00:01:08:00:04:00:00:00:00:00:00:00
> [/dev/cdc-wdm0] sent generic request (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 23
> <<<<<<   flags   = 0x00
> <<<<<<   service = "loc"
> <<<<<<   client  = 3
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 4
> <<<<<<   tlv_length  = 11
> <<<<<<   message     = "Register Events" (0x0021)
> <<<<<< TLV:
> <<<<<<   type       = "Event Registration Mask" (0x01)
> <<<<<<   length     = 8
> <<<<<<   value      = 04:00:00:00:00:00:00:00
> <<<<<<   translated = nmea
> [/dev/cdc-wdm0] received message...
> <<<<<< RAW:
> <<<<<<   length = 20
> <<<<<<   data   = 01:13:00:80:10:03:02:04:00:21:00:07:00:02:04:00:00:00:00:00
> [/dev/cdc-wdm0] received generic response (translated)...
> <<<<<< QMUX:
> <<<<<<   length  = 19
> <<<<<<   flags   = 0x80
> <<<<<<   service = "loc"
> <<<<<<   client  = 3
> <<<<<< QMI:
> <<<<<<   flags       = "response"
> <<<<<<   transaction = 4
> <<<<<<   tlv_length  = 7
> <<<<<<   message     = "Register Events" (0x0021)
> <<<<<< TLV:
> <<<<<<   type       = "Result" (0x02)
> <<<<<<   length     = 4
> <<<<<<   value      = 00:00:00:00
> <<<<<<   translated = SUCCESS
> ----------------------------------------------------------------------------------
>

The above sequence looks good to me; you start the GPS engine and you
also register for NMEA indications. After that, you should start
receiving NMEA traces in QMI LOC indications, but I assume you're not
receiving any? What MM and libqmi versions are you using?

> By curiosity, do you know a good references for qmi protocol so I can dig into it?
>

If you google for "Telit QMI LM940" you'll probably find easily a QMI
reference from Telit, but unfortunately I don't think it has much
detail on the LOC service itself. Other than that, I don't think there
are public online references for QMI documents anywhere else. If you
find some, let us know!


-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list