GPS Software

hi,

are you sure you have followed the instructions from the release notes?

http://builds.96boards.org/releases/dragonboard410c/linaro/debian/16.06/

Search for “Using onboard GPS”

Hi I’m using the Android vLA.BR.1.2.4-01810-8×16.0-3 build, but I can’t seem to get a location lock using google maps.

I’ve also tried the google API to call for NETWORK and GPS location provider but it never returns anything.

Also tried this on the latest build and still couldn’t get any location coordinates at all.

P.S. The Qcomm IZat is enabled and Location mode is set to High Accuracy, the GPS Status app doesn’t get a lock either after waiting for a long time.

1 Like

I followed the instructions and was able to bring up a gpsd instance talking to the GPS chipset. Looking at the API you introduce in gps_userspace_proxy/qmi_gps.h I was wondering whether you are aiming to port over Android’s SUPL/XTRA apis, too?

What is the current state of affairs related to GPS on OE?

I’m not seeing:
/sys/devices/platform/soc/4080000.qcom,mss/boot

I do see:
/dev/ttyGPS0

I modified GPSD service as:
[Unit]
Description=GPS (Global Positioning System) Daemon
Requires=gpsd.socket

[Service]
EnvironmentFile=/etc/default/gpsd
ExecStart=/usr/sbin/gpsd -N -D3 -F /var/run/gpsd.sock /dev/ttyGPS0

[Install]
Also=gpsd.socket

Running “telnet localhost:2947” I never see a response from GPS.

Using the 136 snapshot of Debian I am able to get the GPS to work. My question is with regard to the qdsp-start.service command. Is it safe to have this DSP service autostart at boot or does this have to be started after boot.

hi, the only reason why the DSP is not started automatically right now is because there is a bug in the current firmware, and once the DSP is started/loaded the Linux audio ASoC driver no longer works. The DSP firmware will by default ‘own’ the audio device, and the Linux driver cannot use it anymore.

there is a firmware fix for this issue which has been tested, and which has not been released (publicly) by QCOM as of yet. Once we have this new firmware, we will default to booting the DSP.

If you don’t need analog or HDMI audio (BT or USB audio is not affected by this issue), then it’s ok to load the DSP automatically.

There is a new release coming up in the next few days, but it won’t have the new DSP firmware…

Thanks @ndec for the response. For my application, we are running headless, so we don’t need HDMI or audio.

Hello,

I have downloaded and installed dragonboard410c_sdcard_install_debian-144.zip.

I’ve followed the instructions in the release notes about “Using onboard GPS”. I’m definitely getting some NMEA sentences being output by the GPS. However I’m not convinced it is doing anything useful.
I’ve left it running for a couple of hours sat on the ledge by the window. I’m not necessarily expecting it to get a fix but I was expecting it to be reporting that it can see some satellites.

As I say I’ve installed the packages spoken about in the release notes.

Any suggestion on how I can tell definitely if it is doing something good or not?

Here is some details of the experiments I’ve tried:


linaro@linaro-alip:~$ cat /dev/ttyGPS0 
^C
linaro@linaro-alip:~$ systemctl status qdsp-start.service
● qdsp-start.service - Start the Hexagon QDSP
   Loaded: loaded (/lib/systemd/system/qdsp-start.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
linaro@linaro-alip:~$ sudo systemctl start qdsp-start.service
linaro@linaro-alip:~$ systemctl status qdsp-start.service
● qdsp-start.service - Start the Hexagon QDSP
   Loaded: loaded (/lib/systemd/system/qdsp-start.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Oct 13 22:28:04 linaro-alip qdsp-start[3784]: Found Hexagon at /sys/kernel/debug/remoteproc/remoteproc0
linaro@linaro-alip:~$ ps -ef | grep qdsp
linaro    3826  3741  0 22:28 pts/0    00:00:00 grep qdsp
linaro@linaro-alip:~$ cat /dev/ttyGPS0 
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGGA,,,,,,0,,,,,,,,*66
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGGA,,,,,,0,,,,,,,,*66
$GPRMC,,V,,,,,,,,,,N*53
^C
linaro@linaro-alip:~$ 

When I start gpsmon:


(91) {"class":"VERSION","release":"3.16","rev":"3.16-1~bpo8+1","proto_major":3,"proto_minor":11}
(141) {"class":"DEVICES","devices":[{"class":"DEVICE","path":"/dev/ttyGPS0","driver":"NMEA0183","activated":"2016-10-13T21:48:16.783Z","flags":1}]}
(122) {"class":"WATCH","enable":true,"json":false,"nmea":false,"raw":2,"scaled":false,"timing":false,"split24":false,"pps":true}
(24) $GPVTG,,T,,M,,N,,K,N*2C
(29) $GPGSA,A,1,,,,,,,,,,,,,,,*1E
(25) $GPGGA,,,,,,0,,,,,,,,*66
(24) $GPRMC,,V,,,,,,,,,,N*53

Thanks,
Barry

Hi,

Still not seeing anything. The nmea sentences still seem to be empty:


linaro@linaro-alip:~$ gpspipe -r
{"class":"VERSION","release":"3.16","rev":"3.16-1~bpo8+1","proto_major":3,"proto_minor":11}
{"class":"DEVICES","devices":[{"class":"DEVICE","path":"/dev/ttyGPS0","driver":"NMEA0183","activated":"2016-10-14T19:23:50.189Z","flags":1}]}
{"class":"WATCH","enable":true,"json":false,"nmea":true,"raw":0,"scaled":false,"timing":false,"split24":false,"pps":false}
$GPVTG,,T,,M,,N,,K,N*2C
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGGA,,,,,,0,,,,,,,,*66
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGGA,,,,,,0,,,,,,,,*66
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGGA,,,,,,0,,,,,,,,*66
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGGA,,,,,,0,,,,,,,,*66
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGGA,,,,,,0,,,,,,,,*66
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGGA,,,,,,0,,,,,,,,*66
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGGA,,,,,,0,,,,,,,,*66
$GPRMC,,V,,,,,,,,,,N*53

I’ve used my phone to find where I get the strongest signal. This is what my phone is seeing when sat next to the 410c.

Should I expect to see some readings in the nmea sentences even without an external antenna?

Thanks,
Barry

Hi @barry. I am seeing the same thing when using the internal antenna. Its not really ideal for GPS, especially when used indoors. I am currently re-working the board to include the UFL connector to use an external active antenna. I think that will work much better. your phone (most likely) has a better antenna that what is on the DragonBoard. I will report back to this thread once I have the active antenna working and let you know if the board is able to get a fix while indoors. Cheers, Ken

Hi @Cryptik,

Looking forward to the update.

Good luck,
Barry

Hello,

anyone know if is it possible to get PPS output pin (pulse per second - 1 Hz) from DragonBoard GPS subsystem?

Thanks,
Irvin

Hi @cryptik,

Did you manage to re-working the board to include the UFL connector for an external active antenna?

Cheers,
Barry

Hello,

I’m validating GPS(with external antenna) on debian 16.06…followed the instructions as mentioned…but not getting gps signals

when i checked the qpsd status i found below info
~# systemctl status -l qdsp-start.service
● qdsp-start.service - Start the Hexagon QDSP
Loaded: loaded (/lib/systemd/system/qdsp-start.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Wed 2016-11-23 13:10:31 UTC; 21s ago
Process: 2466 ExecStart=/usr/sbin/qdsp-start (code=exited, status=0/SUCCESS)
Main PID: 2466 (code=exited, status=0/SUCCESS)

qdsp service is in inactive state…how to make it to active state…is this the reason why gps signal are not getting tracked?

can anyone help me on this

Regards,
Laxman

Try install libgps
sudo apt-get update
sudo apt-get install gpsd
sudo apt-get install gpsd-clients

next

apt-get install gnss-gpsd gpsd gpsd-clients

then
systemctl start qdsp-start

test with

gpsmon -n

Thanks wilson,

Exactly, those were the steps i followed before posting my last post…

checked again still same result:-)

Hi Barry, Sorry for the late reply. I am still reworking the board. I have completed the rework for the external WiFi antenna, but the GPS rework is taking longer. The parts are extremely small, and doing it by hand is quite difficult. I do have two of the parts soldered to the board including the UFL… I will hopefully have the active antenna working in the next two weeks. I will report back on the performance.

Cheers,
Ken

Hi Ken, I too and looking forward to the results of your GPS Performance Test.

We are in the Melbourne Australia and I can confirm that using the internal GPS antenna on the DragonBoard 410c running Android 5.1.1 does work, however, the first GPS position lock takes over 10 minutes in most cases. (Sometimes over an hour). A phone sitting next to the Dragonboard running Android 5.1.1 takes 10 seconds to get lock. (What’s really worrying if once the board has lock, if you then exit and restart the GPS Program (we are using Chartcross), it doesn’t remember it’s ‘position’ (which AGPS is supposed to work it) and then takes another 10 minutes to lock.

We have also tested the Inforce 6410Plus (sitting next to the Dragonboard) which needs an external GPS antenna (at least it’s got the U.FL connector attached already!) and this has the same results on Android 4.4.2.

1 Like

So, with android 5.1 and android 6 I get most excellent performance (Even inside) with the on board antenna. On the same board, I ran the most recent build (144) that enabled GPS. I ran the code as it stands (same spot as android inside) and didn’t get any satellites to show up (even after leaving it run all weekend). I took one of my boards and followed the U.FL guides (and used the exact part numbers for the discreet components) for an active antenna. Instead of using the AP.25E.07.0054A outlined in the PDF, I got a more sensitive active antenna AGGBP.25B.07.0060A. This antenna performed horribly when compared to the passive antenna (Molex 1461860100) that I was using for WiFi. I didn’t change the discreet components over from the active antenna. I got several more satellites and better SNR. I am quite perplexed and plan on ordering up the AP.25E.07.0054A to see. I also checked all the connections (the inductor provides the 1.8V, which is actually more like 1.79, to the active antenna). I verified that this was indeed getting 1.8V to the connector and that there were not any shorts or anything. I have a microscope and everything to do this sort of fine detail work.

Bottom line, I was getting the same “Active: inactive (dead)” and empty data sets as the previous users in linux until I switched to an external antenna (and waited a good half hour for it to find satellites for the first time).

Has anybody had any similar issues? I am guessing the GPS stack running on the DSP is different than the android gps stack? Is there an Enhanced Mode IZat for linux? Has anybody used gnss-sdr with this?

Previous post was build 144 of Debian not Android just for clarification. Also, tried the snapshot release of debian with the newer debian and the gpsd-start does not exist yet…