Reputation: 1392
UPDATED See edit!
I have installed LineageOS 18.1 for Raspberry Pi 4 (which is an awesome piece of software) and everything seems to be working correctly. With the exception of GPS. I have an A9G connected to the Pi. It is connected to the first Pi's UART and I can see the data coming on ttyAMA0.
:/ # microcom -s 9600 /dev/ttyAMA0
$GNGGA,092800.998,4955.7547,N,00900.2330,E,0,0,,102.0,M,48.0,M,,*5E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$BDGSA,A,1,,,,,,,,,,,,,,,*0F
$GPGSV,1,1,00*79
$BDGSV,1,1,00*68
$GNRMC,092800.998,V,4955.7547,N,00900.2330,E,0.000,0.00,211021,,,N*55
$GNVTG,0.00,T,,M,0.000,N,0.000,K,N*2C
$GNGGA,092801.998,4955.7547,N,00900.2330,E,0,0,,102.0,M,48.0,M,,*5F
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$BDGSA,A,1,,,,,,,,,,,,,,,*0F
$GPGSV,1,1,00*79
$BDGSV,1,1,00*68
$GNRMC,092801.998,V,4955.7547,N,00900.2330,E,0.000,0.00,211021,,,N*54
$GNVTG,0.00,T,,M,0.000,N,0.000,K,N*2C
$GNGGA,092802.998,4955.7547,N,00900.2330,E,0,0,,102.0,M,48.0,M,,*5C
I changed the GPS receiver to use ttyAMA0 in /vendor/build.prop
# GPS ro.kernel.android.gps=ttyAMA0
I also trying with adding
ro.kernel.android.gpsttybaud = 9600
or
ro.kernel.android.gps.speed = 9600
But not a single App can receive GPS data. I have the feeling I am missing something very simple but essential.
Any help very appreciated
EDIT Ok, I am a step further. The first problem was apparently, what a bummer, a permission issue. I adjusted it in the file: /vendor/ueventd.rc
From:
/dev/ttyAMA0 0660 bluetooth bluetooth
To:
/dev/ttyAMA0 0660 system radio
Now it seems that the data is being received and correctly interpreted. But when I open a GPS testing App, the signal is flickering. It almost like if something else is reading from ttyACM0.
Is it possible?
just to clarify what I mean with "flickering", please take a look at https://cloud.sobi.pro/f/68f0398aea1549918376/
Upvotes: 1
Views: 1454
Reputation: 1392
I recently found this old post of mine and I thought I'd share some of my findings.
So, the flickering was caused by GLONASS NMEA string ($GLGSV
).
Basically, GPS and Galileo were reporting "GPS Fix" whilst GLONASS was reporting "No Fix" thus the "flickering".
The issue, I assume, is that we are not using a dedicated driver but a generic console driver. A proper driver would probably filter the noise out.
As I switched from my previous setup, Raspberry Pi with LineageOS to a x86 tablet + Fedora + Waydroid, I used socat
to create a virtual terminal and used a simple bash script to filter the GLONASS output out of the NMEA string.
Hope that helps someone.
Upvotes: 0
Reputation: 11
I also had the same flickering issue. I can see it in a map program or with physics toolbox where I can see the GPS LAT LONG. It flickers between the "real" position and 0.00000 for the LAT and LONG.
I am using LineageOS17.1 on a Raspberry Pi 4
my Ultimate GPS USB is from Adafruit and is on /dev/ttyUSB0
I tried updating build.prop in both /vendor and /system with the
ro.kernel.android.gps.speed = 9600
and
ro.kernel.android.gps = ttyUSB0
The solution that I eventually used was to remove the r0.kernel... from both build.prop and use the app GPS Connector
https://play.google.com/store/apps/details?id=de.pilablu.gpsconnector&hl=en_US&gl=US
Enable in developer options under "select mock location app" you can select the GPS Connector.
You can have the GPS Connector app start at boot.
If you find a more elegant solution than using an app, please reply.
Upvotes: 1