[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gpsd-users] Processing RTCM messages

From: Michele Pangrazzi
Subject: Re: [gpsd-users] Processing RTCM messages
Date: Tue, 9 Feb 2016 09:23:53 +0000

I’m sorry, what I've written seems to be a bit confusing. 
I’ll try to re-explain with steps:

1. First step

Android device (with GPS) —————> NMEA over HTTP POST ——————> Webserver

The Android device sends a NMEA string over HTTP POST API to web server, for example:

2. Second step

Webserver —————> NMEA over NTRIP ——————> Local NTRIP caster (

The webserver sends the NMEA string obtained at first step using NTRIP protocol to a local caster. I’ve implemented a simple NTRIP protocol communication using Node.js.

3. Third step

Local caster (  —————> RTCM over NTRIP ——————> Webserver

After receiving NMEA string, the caster starts to stream RTCM messages to webserver. I can decode those messages piping them in gpsdecode stdin, and obtaining a lot of JSON-formatted messages like the following:

{"class":"RTCM3","device":"stdin","type":1004,"length":133,"station_id":101,"tow":202035000,"sync":"true","smoothing":"false","interval":"1","satellites":[{"ident":9,"L1":{"ind":0,"prange":225245.44,"delta":-0.0450,"lockt":1,"amb":75,"CNR":47.50}"L2":{"ind":3,"prange":    1.74,"delta":1.7000,"lockt":1,"CNR":43.75}},{"ident":23,"L1":{"ind":0,"prange":243095.28,"delta":0.0475,"lockt":1,"amb":69,"CNR":51.50}"L2":{"ind":3,"prange":  324.08,"delta":-3.6605,"lockt":1,"CNR":49.25}},{"ident":3,"L1":{"ind":0,"prange":76490.70,"delta":0.0165,"lockt":1,"amb":68,"CNR":51.75}"L2":{"ind":3,"prange":    1.16,"delta":1.2540,"lockt":1,"CNR":51.00}},{"ident":11,"L1":{"ind":0,"prange":184857.86,"delta":-0.0155,"lockt":1,"amb":79,"CNR":45.25}"L2":{"ind":3,"prange":  327.24,"delta":-0.5705,"lockt":1,"CNR":37.50}},{"ident":17,"L1":{"ind":0,"prange":263169.64,"delta":0.0555,"lockt":1,"amb":74,"CNR":49.00}"L2":{"ind":3,"prange":  326.78,"delta":-0.9475,"lockt":1,"CNR":45.00}},{"ident":1,"L1":{"ind":0,"prange":283568.54,"delta":-0.1030,"lockt":1,"amb":72,"CNR":50.00}"L2":{"ind":3,"prange":    2.22,"delta":2.1210,"lockt":1,"CNR":46.25}},{"ident":31,"L1":{"ind":0,"prange": 7808.52,"delta":-0.0350,"lockt":1,"amb":78,"CNR":46.00}"L2":{"ind":3,"prange":  326.88,"delta":-0.8420,"lockt":1,"CNR":40.50}},{"ident":19,"L1":{"ind":0,"prange":51468.08,"delta":-0.0775,"lockt":1,"amb":75,"CNR":48.50}"L2":{"ind":3,"prange":  324.86,"delta":-2.8995,"lockt":1,"CNR":44.50}}]}

Basically, I receive first a 1013 message (system parameters), then a lot of 1004 / 1012 messages (GPS / GLONASS observations). The NTRIP caster is a Leica SpiderWeb.

I was wondering if there is a way to actually compute the correction on server-side starting from those messages (and the NMEA string obtained at first step). If yes, the webserver could send to the Android device a more precise position, maybe in lat/lon format (it would be great).

If what I’ve written is completely wrong, I apologize. I’m not very familiar to those tecnologies.

Thank you,

On 08 Feb 2016, at 21:46, Greg Troxel <address@hidden> wrote:

Michele Pangrazzi <address@hidden> writes:

To explain better: right now I have a webserver that receives a NMEA
string through an API from an embedded device with a GPS connected.

Do you mean NMEA sentences with computed positions?

Or do you mean a device that is *generating* corrections?

Then, the webserver sends this string using NTRIP protocol
to an NTRIP Caster, which responds correctly with some RTCM messages
(type 1012 and 1004), parsed to JSON by your gpsdecode tool.

Which string, and why would it be sent, vs just getting the RTCM bits
over IP?

Is it possible to also process RTCM messages, compute the correction
and then send back the corrected position to client?

Are you using a receiver which is sending raw pseudoranges over NMEA?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]