SensorGnome GPS reporting no-dev with SixFab Modem (Round 2) :)

Hello,

Sorry it took me a little while to get back, I had a couple of other things I had to chase up along the way. I’ve run the Cell modem troubleshooting | Sensorgnome V2 User Guide and the modem itself all checks out and is working fine (compilation of test results below). It’s just the GPS that’s still misbehaving.

(The initial step I ran, not included in the guide, was to list off the /dev/tty devices without any USB connections at all, and then with just the USB cable to the Sixfab HAT, to show the modified port list.)

Troubleshooting Results

gnome@SG-E3E4RPI4CED5:~ $ ls -las /dev/tty* … 0 crw-rw-rw- 1 root tty 4, 9 Nov 28 09:17 /dev/tty9 0 crw-rw-rw- 1 root dialout 204, 64 Nov 28 09:17 /dev/ttyAMA0 0 lrwxrwxrwx 1 root root 12 Nov 28 09:17 /dev/ttyGPS → /dev/ttyUSB1 0 crw-rw-rw- 1 root root 5, 3 Nov 28 09:17 /dev/ttyprintk 0 crw–w---- 1 root tty 4, 64 Nov 28 09:17 /dev/ttyS0

gnome@SG-E3E4RPI4CED5:~ $ ls -las /dev/tty* … 0 crw-rw-rw- 1 root tty 4, 7 Nov 28 09:17 /dev/tty7 0 crw-rw-rw- 1 root tty 4, 8 Nov 28 09:17 /dev/tty8 0 crw-rw-rw- 1 root tty 4, 9 Nov 28 09:17 /dev/tty9 0 crw-rw-rw- 1 root dialout 204, 64 Nov 28 09:17 /dev/ttyAMA0 0 lrwxrwxrwx 1 root root 12 Nov 28 09:17 /dev/ttyGPS → /dev/ttyUSB1 0 crw-rw-rw- 1 root root 5, 3 Nov 28 09:17 /dev/ttyprintk 0 crw–w---- 1 root tty 4, 64 Nov 28 09:17 /dev/ttyS0 0 crw-rw-rw- 1 root dialout 188, 0 Nov 28 09:17 /dev/ttyUSB0 0 crw-rw-rw- 1 root dialout 188, 1 Nov 28 09:17 /dev/ttyUSB1 0 crw-rw-rw- 1 root dialout 188, 2 Nov 28 09:17 /dev/ttyUSB2 0 crw-rw-rw- 1 root dialout 188, 3 Nov 28 09:17 /dev/ttyUSB3 0 crw-rw-rw- 1 root dialout 188, 4 Nov 28 09:17 /dev/ttyUSB4

gnome@SG-E3E4RPI4CED5:~ $ mmcli -L /org/freedesktop/ModemManager1/Modem/0 [Telit] LE910C4-AP

gnome@SG-E3E4RPI4CED5:~ $ mmcli -m 0

General | path: /org/freedesktop/ModemManager1/Modem/0 | device id: fc9dd91daf3a558c4f3e01bd94e3abbfebe07f3a

Hardware | manufacturer: Telit | model: LE910C4-AP | firmware revision: 25.21.680 1 [Mar 04 2021 12:00:00] | carrier config: default | h/w revision: 1.20 | supported: gsm-umts, lte | current: gsm-umts, lte | equipment id: 357575100273804

System | device: /sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3 | drivers: option, qmi_wwan | plugin: telit | primary port: cdc-wdm0 | ports: cdc-wdm0 (qmi), ttyUSB0 (ignored), ttyUSB1 (gps), | ttyUSB2 (at), ttyUSB3 (at), ttyUSB4 (ignored), wwan0 (net)

Status | lock: sim-pin2 | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (10), sim-puk2 (10) | state: connected | power state: on | access tech: lte | signal quality: 89% (recent)

Modes | supported: allowed: 3g; preferred: none | allowed: 4g; preferred: none | allowed: 3g, 4g; preferred: 4g | allowed: 3g, 4g; preferred: 3g | current: allowed: 3g, 4g; preferred: 4g

Bands | supported: utran-1, utran-6, utran-5, utran-8, eutran-1, eutran-3, | eutran-5, eutran-8, eutran-9, eutran-18, eutran-19, eutran-26, | eutran-28, utran-19 | current: utran-1, utran-6, utran-5, utran-8, eutran-1, eutran-3, | eutran-5, eutran-8, eutran-9, eutran-18, eutran-19, eutran-26, | eutran-28, utran-19

IP | supported: ipv4, ipv6, ipv4v6

3GPP | imei: 357575100273804 | enabled locks: fixed-dialing | operator id: 50501 | operator name: Telstra Mobile | registration: roaming | packet service state: attached

3GPP EPS | ue mode of operation: csps-1 | initial bearer path: /org/freedesktop/ModemManager1/Bearer/0 | initial bearer apn: super | initial bearer ip type: ipv4v6

SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0 | sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active) | slot 2: none

Bearer | paths: /org/freedesktop/ModemManager1/Bearer/1

gnome@SG-E3E4RPI4CED5:~ $ ip route default via 192.168.1.1 dev wlan0 proto dhcp src 192.168.1.103 metric 3004 default via 100.80.233.125 dev wwan0 proto dhcp src 100.80.233.124 metric 10001 mtu 1500 100.80.233.120/29 dev wwan0 proto dhcp scope link src 100.80.233.124 metric 10001 mtu 1500 192.168.1.0/24 dev wlan0 proto dhcp scope link src 192.168.1.103 metric 3004 192.168.7.0/25 dev ap0 proto dhcp scope link src 192.168.7.2 metric 3005

gnome@SG-E3E4RPI4CED5:~ $ ping -I wwan0 1.1.1.1 PING 1.1.1.1 (1.1.1.1) from 100.80.233.124 wwan0: 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=54 time=525 ms 64 bytes from 1.1.1.1: icmp_seq=2 ttl=54 time=404 ms 64 bytes from 1.1.1.1: icmp_seq=3 ttl=54 time=364 ms 64 bytes from 1.1.1.1: icmp_seq=4 ttl=54 time=405 ms

gnome@SG-E3E4RPI4CED5:~ $ mmcli -m 0 --location-status

Location | capabilities: 3gpp-lac-ci, gps-raw, gps-nmea, agps-msa, agps-msb | enabled: 3gpp-lac-ci, gps-nmea | signals: no

GPS | refresh rate: 30 seconds

gnome@SG-E3E4RPI4CED5:~ $ ls -las /dev/ttyGPS 0 lrwxrwxrwx 1 root root 12 Dec 6 05:14 /dev/ttyGPS → /dev/ttyUSB1

gnome@SG-E3E4RPI4CED5:~ $ gpsmon tcp://localhost:2947 Unknown device>

gnome@SG-E3E4RPI4CED5:~ $ gpsmon /dev/ttyGPS gpsmon:ERROR: SER: device open of /dev/ttyGPS failed: Device or resource busy - retrying read-only gpsmon:ERROR: SER: read-only device open of /dev/ttyGPS failed: Device or resource busy

gnome@SG-E3E4RPI4CED5:~ $ gpsmon /dev/ttyUSB1 gpsmon:ERROR: SER: device open of /dev/ttyUSB1 failed: Device or resource busy - retrying read-only gpsmon:ERROR: SER: read-only device open of /dev/ttyUSB1 failed: Device or resource busy

After that, I ended up going down the rabbit hole of Linux/ Debian boot sequencing and the intricacies of systemd, which if nothing else has been instructive from a systems administration and architecture viewpoint. Eventually I did find the gpsd service option file at /etc/default/gpsd, which I then tweaked to set the debug level: first -D 3, then -D 4, and restarted gpsd each time via systemctl with the following results:

gpsd Status With Debug

gnome@SG-E3E4RPI4CED5:~ $ sudo systemctl status gpsd.service ● gpsd.service - GPS (Global Positioning System) Daemon Loaded: loaded (/lib/systemd/system/gpsd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2024-12-09 16:37:49 UTC; 6s ago TriggeredBy: ● gpsd.socket Process: 2691 ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $OPTIONS $DEVICES (code=exited, status=0/SUCCESS) Main PID: 2693 (gpsd) Tasks: 1 (limit: 1599) CPU: 47ms CGroup: /system.slice/gpsd.service └─2693 /usr/sbin/gpsd -n -r -D 3 /dev/ttyGPS /dev/pps0

Dec 09 16:37:49 SG-E3E4RPI4CED5 gpsd[2693]: gpsd:INFO: listening on port gpsd Dec 09 16:37:49 SG-E3E4RPI4CED5 gpsd[2693]: gpsd:INFO: stashing device /dev/ttyGPS at slot 0 Dec 09 16:37:49 SG-E3E4RPI4CED5 gpsd[2693]: gpsd:INFO: SER: opening GPS data source type 3 at ‘/dev/ttyGPS’ Dec 09 16:37:49 SG-E3E4RPI4CED5 gpsd[2693]: gpsd:INFO: SER: speed 9600, 8N1 Dec 09 16:37:49 SG-E3E4RPI4CED5 gpsd[2693]: gpsd:INFO: attempting USB device enumeration. Dec 09 16:37:49 SG-E3E4RPI4CED5 gpsd[2693]: gpsd:INFO: 1d6b:0003 (bus 2, device 1) Dec 09 16:37:49 SG-E3E4RPI4CED5 gpsd[2693]: gpsd:INFO: 1bc7:1201 (bus 1, device 3) Dec 09 16:37:49 SG-E3E4RPI4CED5 gpsd[2693]: gpsd:INFO: 2109:3431 (bus 1, device 2) Dec 09 16:37:49 SG-E3E4RPI4CED5 gpsd[2693]: gpsd:INFO: 1d6b:0002 (bus 1, device 1) Dec 09 16:37:49 SG-E3E4RPI4CED5 gpsd[2693]: gpsd:INFO: vendor/product match with 091e:0003 not found

[sudo] password for gnome: ● gpsd.service - GPS (Global Positioning System) Daemon Loaded: loaded (/lib/systemd/system/gpsd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2024-12-09 16:06:49 UTC; 6min ago TriggeredBy: ● gpsd.socket Process: 1305 ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $OPTIONS $DEVICES (code=exited, status=0/SUCCESS) Main PID: 1306 (gpsd) Tasks: 1 (limit: 1599) CPU: 39ms CGroup: /system.slice/gpsd.service └─1306 /usr/sbin/gpsd -n -r -D 4 /dev/ttyGPS /dev/pps0

Dec 09 16:06:49 SG-E3E4RPI4CED5 gpsd[1306]: gpsd:PROG: Probing “Garmin USB binary” driver… Dec 09 16:06:49 SG-E3E4RPI4CED5 gpsd[1306]: gpsd:INFO: attempting USB device enumeration. Dec 09 16:06:49 SG-E3E4RPI4CED5 gpsd[1306]: gpsd:INFO: 1d6b:0003 (bus 2, device 1) Dec 09 16:06:49 SG-E3E4RPI4CED5 gpsd[1306]: gpsd:INFO: 1bc7:1201 (bus 1, device 3) Dec 09 16:06:49 SG-E3E4RPI4CED5 gpsd[1306]: gpsd:INFO: 2109:3431 (bus 1, device 2) Dec 09 16:06:49 SG-E3E4RPI4CED5 gpsd[1306]: gpsd:INFO: 1d6b:0002 (bus 1, device 1) Dec 09 16:06:49 SG-E3E4RPI4CED5 gpsd[1306]: gpsd:INFO: vendor/product match with 091e:0003 not found Dec 09 16:06:49 SG-E3E4RPI4CED5 gpsd[1306]: gpsd:PROG: Probe not found “Garmin USB binary” driver… Dec 09 16:06:49 SG-E3E4RPI4CED5 gpsd[1306]: gpsd:PROG: Probing “GeoStar” driver… Dec 09 16:06:49 SG-E3E4RPI4CED5 gpsd[1306]: gpsd:PROG: Sent GeoStar packet id 0xc1

Does any of that shed any light? I’m tempted to suspect no good of the “vendor/ product match not found” message, but on the other hand it is just an INFO level message.

I was going to mention a couple of other things about the external USB hub configurations, but it’s now very early in the morning so I will follow up in another post :slight_smile:

Regards Andrew Hide

It all looks properly set-up. Something you could do is systemctl stop gpsd and then try to display what’s coming in on /dev/ttyGPS using tail -f /dev/ttyGPS. Gpsd restarts so you have to get in there quick, best to type it on one line as:

sudo systemctl stop gpsd; sudo tail -f /dev/ttyGPS

At least that works for me, but it takes 4-5 seconds for the first data to show up. If you get NMEA stanzas then the GPS is working. My suspicion is that you get nothing and I’m not sure what to make of that. The modem reports that the NMEA output is enabled…

BTW, when you paste terminal output it’s really helpful to enclose it in literal quotes (a line with three ’ before and after the block or select and use the </> formatting button).

Thorsten

Hello,

Yes, it certainly looks like some kind of mismatch between the SixFab hardware and the gpsd daemon, which is causing gpsd to fail.

Again, sorry for the slow response to the suggested diagnostic: the other hardware that had been ordered arrived for evaluation, so I’ve been trying out different configurations with that (and we only have the one Raspberry Pi 4 to use as a testbed at the moment :) ).

We have now had the GPS reception working and the mobile network connection working using both Waveshare options: the Waveshare 7600 HAT, and the Waveshare 7600 dongle. (I did pay attention to your recommendation against the dongle option, but it had already been ordered, and we have at least one site with mains power where it would be no problem to run an external USB hub etc, so it was still worth evaluating its performance.)

A separate problem we had, with all the different hardware options, was that our existing 12V power train (using a 12V automotive cigarette lighter socket and USB converter) was not up to the supply requirements. The RPi 4B would frequently display console undervolt warnings, which also looked like it reset the modem. I eventually replaced the USB power converter with a small adjustable DC converter, and rigged up a couple of home-made cables, which seems to have stopped the undervolt warnings from occurring.

Ironically enough, after that and all the problems with the SixFab HAT, the Waveshare 7600 HAT ended up being the least problematic of all the hardware options: I seated it on the GPIO pins, plugged in the USB cable, connected the external antennas, and it ran first time (including uploading files to the website).

Just in case the power supply had been causing the problem, I pulled everything apart and re-installed the SixFab HAT instead. The mobile data connection came up fine, but no GPS device was detected. So the final summary to date: I could get the GPS to work on both the Waveshare modems, but not on the SixFab modem . When I have a moment, I might flash another SD card with a vanilla, non-SG version of the RPi operating system, which will make it easier to do some of the gpsd debugging options (like running it in foreground from the CLI).

BTW, when you paste terminal output it’s really helpful to enclose it in literal quotes (a line with three ’ before and after the block or select and use the </> formatting button).

Oops, sorry about that! I will remember for next time.

Thank you very much for all the help and suggestions so far, it’s very much appreciated!

Regards

Andrew Hide

I’m glad the waveshare HAT worked. I believe they use the SIM7600 modem exclusively. The HAT has no power issues. The dongle most likely will also work well if it’s the only thing plugged into the rPi. The problem is when you have more plugged in. The USB subsystem is limited to 1.2A total.

I found a reason for which GPS doesn’t work on Quectel EG25 modems, but that’s not the issue with the Telit. I’m pondering how to get more debug info without too many headaches…