Go Down

Topic: GPS NMEA Data (Read 146 times) previous topic - next topic

0x10c

Hello,

  I'm just starting out playing about with GPS.

  I haven't actually started coding yet, but I have a GPS module knocking about somewhere and I want to start by getting hold of the NMEA "sentences" from the receiver and attempting to parse them myself (I know the module/library will do this for me, but where's the challenge in that?)

  Having read a few documents on NMEA data contents and format, I can't find anything that would allow me to get hold of the timestamp data from the individual satellites the module is receiving data from.

  Can anybody tell me how to do this, please?  I want to try calculating the fix from the timestamp data myself.

  Thanks for any help :)

NissanCedric

HI.

You might find that the "raw" data from each satellite is processed internally to the receiver, which processes it  to deliver the calculated data to the end user. Maybe you can't access the raw data.

John.

srnet

You could always read the datasheet for the GPS your using (you did not say) to see what data is available outside of the NMEA sentences.
http://www.50dollarsat.info/
http://www.loratracker.uk/

0x10c

Hello both,

  thanks for your thoughts.

  You're absolutely right - the raw data (i.e. the time-stamp) received from each satellite is processed by the receiver and it then generates the NMEA sentences which include, amongst a load of other things, the calculated fix.  You may be right that the timestamp itself is not made available via any of the NMEA sentences, but I haven't been able to find anything that definitively says that.

  The data sheet for the GPS (it's a Neo-6m, but I don't think the specific RX module matters, as NMEA is a general standard) just says it uses the "standard NMEA messages", but none of them return the timestamp data on a per-satellite basis.

  Thanks :)

wildbill

You won't get any of that data in NMEA messages - there's nothing that would find such information useful.

It's possible that you could put a GPS into a mode where it does output what you're looking for, but I rather doubt it because again, people want positional data from a GPS, not the raw data that the GPS used to calculate it.

Fifteen seconds of googling tells me that you would need specialist equipment to read the raw satellite feed, but before you give up, try digging into your GPS' manual and see if there are different modes it can function in.

srnet

The data sheet for the GPS (it's a Neo-6m, but I don't think the specific RX module matters, as NMEA is a general standard) just says it uses the "standard NMEA messages", but none of them return the timestamp data on a per-satellite basis.
You would be mistaken, it matters a great deal which GPS you are using, which is why I prompted you to say.

Read post #2 more carefully.
http://www.50dollarsat.info/
http://www.loratracker.uk/

0x10c

Ah, thanks for pointing that out - I am duly admonished :(

So a GPS receiver can generate strings outside the NMEA standard it's using?

jremington

Careful reading of the data sheet for the GPS module will tell you everything the manufacturer wants you to know.

If you want to dive into the arcane technical details of GPS computing, you will need to buy an RTK module. Here is one offering.

srnet

So a GPS receiver can generate strings outside the NMEA standard it's using?
Not necessarily, but all is explained in the datasheet.

I dont understand really what is to be gained by doing the calculations the GPS perfoms so well, outside of the GPS with an Arduino.

Fine if you want to learn the nitty gritty that probably has little practical application, so why not start by studying the GPS data sheet, properly.   
http://www.50dollarsat.info/
http://www.loratracker.uk/

jremington

Quote
I dont understand really what is to be gained by doing the calculations the GPS perfoms so well,
cm positional accuracy with RTK.

srnet

cm positional accuracy with RTK.
Yes, with an RTK, but not with the Ublox Neo 6M the OP is using ................
http://www.50dollarsat.info/
http://www.loratracker.uk/

0x10c

Hello all,

  thanks for your thoughts and advice.

  Yes, I see now that the GPS modules I'm using (I also have a MTK3329) aren't really equipped to do what I want to do.

  My ultimate goal was to determine the time-error apparent in each satellite signal received; as I understand it, this is essentially what DGPS calculations are based on.

  Rather than a GPS module, do I need to look at GNSS receivers - would these give me access to the raw satellite feed(s)?

  I've read a little about RTK modules and the RTK libraries, but RTK relies on me operating within range of an RTCM station and the nearest one to me is about 50 miles away; what's the typical range on the RTCM signal and does it broadcast correction data for all satellites or just the ones it's currently receiving?  I'm not really looking for accurate GPS positioning, though, just access to the raw satellite data.



  SRNET - I'm sure you feel perfectly justified in assuming I'm not reading the datasheets etc "properly" and doubtless, in your lengthy experience, few people are capable of keeping up with your level of technical expertise.  However, might I suggest that a little less smug, self-satisfied sniping on your part would make this discussion rather more pleasant to be part of.

jremington

#12
Aug 18, 2019, 11:49 pm Last Edit: Aug 19, 2019, 12:11 am by jremington
You really need to do a bit more background reading. GNSS is just the acronym for generic Global Navigation Satellite System, which includes receivers for GPS as well as receivers intended for other satellite systems like GLONASS.

You will need to consult a given receiver's data sheet in order to determine what it has to offer.

srnet's comments are not out of line. On this forum, we expect people to do some background reading, and their own homework.

For example, this is not completely correct. You can set up your own base station.
Quote
RTK relies on me operating within range of an RTCM station and the nearest one to me is about 50 miles away

NissanCedric

My take on GPS technology is that there are three layers. Putting aside commercial navigation systems like those in cars, but working directly with receivers from makers like u-blox.

Top layer is for the end user. This is the NMEA sentences we can process on Arduino to use parameters like time, lat, long, altitude, speed and course.

Next layer down is for developers. Here they can process the data underlying the NMEA sentences and develop commercial products. This is the layer where the OP would find their answers (if they are available).

Next layer down is the exclusive domain of the receiver manufacturer such as u-blox. Here they receive the sat signals, capture the data, process it and produce computed data to feed the upper two layers. This is where the individual sat time signals would originate.

This lowest layer is proprietary. The algorithms used here can be expected to be protected intellectual property. I'm wondering if that protection will ensure the raw data will not be available in the upper two layers.

John.

Go Up