Does longitude/latitude info come directly from GNSS chip on Android devices? - gps

I'm trying to directly communicate with the GNSS chip on my device and I am not clear whether the RAW GNSS information is coming directly from the GNSS chip or not. I have used the application provided in the link and it seems to read longitude/latitude information.
Is this information directly coming from the GNSS chip? Further, is the GNSS driver enough to extract this information? Or is longitude/latitude info calculated based on GNSS raw data? If it's the latter, how do I calculate longitude/latitude from raw GNSS (a reference would be sufficient)?
Note: I am not interested in very high accuracy location nor am I interested in indoors location retrieval (using Wi-Fi and Carrier services). I want to record the GPS (or Glonass or whatever) and save it as longitude/latitude format.

Apparently, GPS gives the information. I have found a partial answer here. (this is for GPS, it does not include other GNSS chips like Glonass and Galileo).
Apparently, the GPS hardware outputs results following NMEA format. From the page:
GPS is a commonly used constellation of GNSS satellites. GPS hardware typically reports location information as ASCII strings in the NMEA standard format. Each line of data is a comma-separated list of data values known as a sentence. While each GPS module may choose to report different portions of the NMEA protocol, most devices send one or more of the following sentences:
GPGGA (Fix Information): Includes position fix, altitude, timestamp, and satellite metadata.
GPGLL (Geographic Latitude/Longitude): Includes position fix and timestamp.
GPRMC (Recommended Minimum Navigation): Includes position fix, speed, timestamp, and navigation metadata.
Therefore, GPS driver is sufficient to give longitude/latitude information.

Related

Read data from GPS Uart

I'm using a Mediatek MT3333 GPS receiver (baudrate: 115200 bpS), but all I'm getting is this:
b'$GNGGA,132002.448,,,,,0,0,,,M,,M,,*5C\r\n'
b'$GPGSA,A,1,,,,,,,,,,,,,,,*1E\r\n'
b'$GLGSA,A,1,,,,,,,,,,,,,,,*02\r\n'
b'$GPGSV,1,1,00*79\r\n'
b'$GLGSV,1,1,00*65\r\n'
b'$GNRMC,132002.448,V,,,,,0.00,0.00,100417,,,N*5A\r\n'
b'$GNVTG,0.00,T,,M,0.00,N,0.00,K,N*2C\r\n'
After some research I found that my receiver doesn't have a fix, any idea how to solve this?
It looks that the received signal strength is low so that your GPS receiver mode doesn't get a GPS FIX. It would be better to place the device outdoor to verify if there is a stable reception.
From the GPS sentences showed above, your Mediatek MT3333 GPS receiver output modified NMEA 0183 Sentence. All the standard sentence should started with $GP as the suffix and with format of $GPaaa, where aaa is alphabetic.
For instance,
b'$GNRMC,132002.448,V,,,,,0.00,0.00,100417,,,N*5A\r\n' should be read as
$GPRMC,132002.448,V,,,,,0.00,0.00,100417,,,N*5A if conforms to NMEA. This sentence tells that at 2017-04-10 12:30:02 (GMT) got no GPS fix with speed at 0 knot and course at 0 degree.
If the output of your GPS receiver conforms NMEA, you can use some free software, such as VisualGPS, to evaluation the GPS signal quality.
If possible, suggest to change the GPS antenna to external one, an active GPS antenna with 2-stage amplifier at around 28dBm gain, to improve the GPS signal reception in order to get a stable fix.
From the datasheet of Mediatek MT3333, it did mention below for improving GPS signal reception:
An external antenna and high gain external LNA connected to the
internal LNA in low-gain mode, which offers high linearity. In this
configuration, external LNA gain ranging from 15 to 20 dB is
recommended. The maximum total external RF front end gain including
active antenna and external LNA can be 43dB.
Hope this help.

What's output data of a GPS receiver?

What's output data of a GPS receiver? I have some information about NMEA but I want to know If all GPS receivers have same output or not?
thank you
More or less they have the same output.
They differ only at very special topics, like raw data output option for special evaluations.
The GPS chip manufctures specify which NMEA sentences they support.
You might want to read e.g the ublox protocoll specification downlodable from the ublox homepage.
The following NMEA sentences are widley used with GNSS modules;
GGA, GGL, GSA, GSV, RMC, VTG, ZDA
Note that the RMC sentence is the recommended minimum for navigation devices.
This highly depends on the receiver model used and what kind of data you are looking for. Basically, two different types of outputs can be available, position solutions (including velocities) or raw measurements (the observables for each satellite). Some receivers (the cheaper ones) are limited to position output, while other receivers can output the raw data as well. For positions, the NMEA format is quite handy, but not for raw measurements. These are usually output in a binary, proprietary protocol which is different between the various receiver manufacturers. However, most receivers include some tools which allow the transformation of these propietary protocols into the RINEX format. This is the "receiver independent exchange format", but is used for post-processing rather than for live output.
Additionally, professional GNSS receivers can be configured quite flexibly, so that the type of output, the update rate and the output port (network, serial ports, bluetooth, usb, ...) can be configured as desired.
A very handy toolkit to work with different types of GNSS receiver is the RTKLIB (http://www.rtklib.com/), an open-source program package for various tasks related to satellite navigation systems.

How to read GPS coordinates from device via USB port

I need to read GPS coordinates using a VB.NET program directly from a GPS device connected to the computer via USB (bluetooth also OK but prefer USB). My constraints are:
The computer running the software is NOT connected to the internet. It is a stand-alone machine in a moving vehicle.
I need to be able to read GPS coordinates from the device while the vehicle moves and use the device to perform location-aware queries on a local database
The GPS device can be anything (e.g. Garmin GPS or GPS card without display), as long at it can be purchased off the shelf or over the internet.
The user group for this solution is quite small (about 40 users).
I have already checked out GPSGate (http://gpsgate.com/) and emailed my requirements to them. They replied, and I quote: "I am sorry but we have no product for you." (end of reply).
I also checked out Eye4Software) and tried using their demo product but it does not pick up my Garmin Nuvi via USB. They responded to my questions but unfortunately their OEM product is an ActiveX dll and I am looking for a .NET based solution.
So if anyone has a "home-grown" solution based on the .NET framework, that can be easily duplicated, I would really appreciate it. Many thanks!
Most of the USB GPS pucks will speak a standardized protocol called NMEA 0183. There are several .net protocols out there that decode this protocol, see here for some pointers to get started.
So, if when shopping around you just check that the device is able to generate NMEA you should be up and running in a minimum of time, and at a reasonable cost.
EDIT: a "gps puck" is a GPS receiver shaped more or less like a hockey puck, like this one
For in-car use there are specific versions that can be fixed onto the vehicle's roof
They are pretty common (many online shops carry them) but select them based on the chip that's inside, the popular Sirf Star 3 is still a solid performer, stable and accurate. I haven't had the chance to play with its successor, the Sirf Star 4 yet, and I'm not implying these are the only good chips around, only that I got most experience with this chip.

How to write a program that transfers points of interest between a GPS device and a file on a PC?

How can I write a program that transfers points of interest between a GPS device and a file on a PC?
Specifically, I'd like to know if all GPS devices have the same output format? If not, what are the different kinds of formats?
Thanks in advance!
No, there are many, many standards for outputting this kind of data from GPS.
NMEA is the standard for most GPS data, but it is not (typically) used for bi-directional communication and transferring of waypoints.

configuring gps module ssf1513

hi i am developing code for gps tracker using gps module ssf1513. i don't know how to configure the gps module to power save mode , please guide me how to enter in input mode.
That board has a SiRF starIII GSC3e/LPx GPS chip.
You can Communicate with it via SiRF's binary protocol or NMEA here are links to the reference manuals for each:
SiRF NMEA Reference Manual
SiRF Binary Reference Manual
How exactly you want to save power is up to you there are tons of ways to reduce power usage with gps (duty cycle control, long sleeps, etc). This will be application dependent.
It my be that the power save mode is automatic, e.g. if you stop polling the device then it may go into power saving mode after a certain time-out, and then wake up again automatically when you start polling it again ?