New Post: November Librem 5 update: Byzantium Released

I used the grep command.

sudo cat /dev/gnss0 will give you a stream of information, which will be relatively incomprehensible unless you track down some documentation. I have teseo-liv3f-dm00398983-teseoliv3-gnss-module–software-manual-stmicroelectronics.pdf which I imagine was linked to in this forum. I am not going to pretend that I am an expert but the information in that document was adequate to confirm the type of messages that the GNSS was emitting and approximately what those messages mean i.e. adequate for a human to parse the message and understand it.

sudo grep -a '$..GLL' /dev/gnss0

will give you your fix, so to speak.

From the above document, the format of that message is: $<TalkerID>GLL,<Lat>,<N/S>,<Long>,<E/W>,<Timestamp>,<Status>,<mode indicator>*<checksum><cr><lf>

and an example from that document is:

$GPGLL,4055.04673,N,01416.54941,E,110505.000,A,A*54
                                             ^

I have indicated with ^ the status field. It is A for valid and V for invalid. You of course want A but you don’t get an A until
a) the phone gets a fix on one satellite, and
b) maintains the fix for long enough to download the ephemeris, and then
c) gets a fix on enough satellites to determine your position.

I already did the first two steps. So I just wandered outside with my Librem 5, doing the above grep command, and it took maybe 20 or 30 seconds to get a fix and thereby reported

$GPGLL,<lat>,S,<long>,E,021343.000,A,A*40

(where I have removed the latitude and longitude for privacy reasons, but they were correct before I removed them).

As far as I am aware, I have not installed gnss-share. What I am doing here is just very basic, low-level diagnostics to demonstrate that the GNSS chip is working.

7 Likes