gpsd-users
[Top][All Lists]
Advanced

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

Re: [Question] gpsd, ntrip & C94-M8P (u-Blox)


From: Florian Kiera
Subject: Re: [Question] gpsd, ntrip & C94-M8P (u-Blox)
Date: Thu, 23 Apr 2020 10:11:56 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0

Hey Gary!

Am 22.04.20 um 22:19 schrieb Gary E. Miller:
Yo Florian!

On Wed, 22 Apr 2020 12:08:02 +0200
Florian Kiera <address@hidden> wrote:

Hello there, I got a question regarding to the use of correction data
in gpsd.
Cool.

Using latest Arch Linux (5.6.6) and the latest gpsd version (3.20).
Good, the last release.

I am using a C94-M8P from u-blox to receive DGPS-information (RCTM3)
and transfer it via ntrip to another PC that is connected to a 2nd
M8P that is moving around.
A common configuration.

Its supposed to send correction data via the ntrip caster to the
moving PC's M8P.
Think of NTRIP the way you think of TCP.  Just one layer of many that
has to work for the project to work.  Only TCP is actually
documented...

The fixed station part works,
How do you know that?

however using the
command: "gpsd -n /dev/ttyACM0 -G ntrip://:@IP:PORT/STREAM" only puts
the information, the ntrip caster is giving out and the M8P is giving
out, into the PC itself but not to the M8P (the USB port since it is
not addressed at that point?).
Uh, missing a bunch of details.  Are you now talking about the rover
config?


Yes, I was talking about the rover since its the part I want to use gpsd for. Using that command didn't make the green RTK LED of the M8P flash (no correction data received) but i was able to see the data from the ntrip caster and the M8P (rover) in gpspipe -w.

Receiving the information from gpspipe -w and RTKlib's stream2stream function giving me the data as well:

./str2str -in ./str2str -in ntrip://usr:pw@ip/BASE (output is the console)
./str2str -in ntrip://usr:pw@ip/BASE -out serial://ttyACM0:19200 (made the RTK LED flash))

That outputs made me believe that the fixed stations part works (Base->(using ntrip server)->ntrip caster). That for I made a check on the base side for now and concentrated on the rover.



What worked for me was using RTKlib's
str2str that uses an input stream (ntrip caster) and gives it to the
output stream (the USB port of the M8P).
And you are not using the serial port?  The common configuration is
to have the base send data to the rover over a port on the roer that
gpsd is NOT using.

Haven't tried this so far because I thought gpsd is able to send (correction data) and receive (relative accurate data) over the same port. At the moment I'm only using the micro USB port of the M8P to connect to my USB port.
I will try to use the serial port as well I guess. (Still would like to solve it through one port (IF possible))


But using this command won't
allow me to access the exact data of the moving M8P because the port
is already used to receive correction data. GPSD would be able to
give the correction data from the ntrip caster to the M8P (atleast
what the information of the manual tells me) and ALSO receive the
corrected exact coordinates of the M8P (the 2nd M8P uses the RCTM3
messages and its own coordinates to give out an accurate position in
NMEA) and write them into the shared memory so I might be able to use
them for my CUI.
You realize that is one really long run-on sentence?  I'm unclear how to
parse that.
Sorry for that one. I just wanted to explain what I'd like to do with gpsd on the rover side. Obviously not well, sorry. gpsd is able to retrieve data from ntrip caster, right?
I want to retrieve my correction data from the ntrip caster and paste it to the M8P. Basically what the str2str function of RTKlib does. Sadly I cannot retrieve the position data from the M8P afterwards, because I only used one port and it will be used by RTKlib so gpsd cannot use it. About gpsd I wanna use it anyway to retrieve the position information from the Rover's M8P just with str2str together it wont work. So I read the gpsd manual which says:
gpsd can use differential-GPS corrections from a DGPS radio or over the net, from a ground station running a DGPSIP server or a Ntrip broadcaster that reports RTCM-104 data; this will shrink position errors by roughly a factor of four. When gpsd opens a serial device emitting RTCM-104, it automatically recognizes this and uses the device as a correction source for all connected GPSes that accept RTCM corrections (this is dependent on the type of the GPS; not all GPSes have the firmware capability to accept RTCM correction packets).

That for I thought gpsd could solve both of my problems: receive the data from the ntrip caster and share it with the M8P & retrieve the relative accurate position from the M8P


So my question is: Whats the correct use of gpsd to send and receive 
correction data from different sources (receive from ntrip, send to 
USB)?
This is UNIX, many ways to skin the cat.
 Actually made me hope to stick to one port instead of 2 ports (USB and serial (RS232)).

The most common solution is to NOT send the base RTCM3 data to the rover
over the rover USB.  But instead to a rover serial port not used by gpsd.

Do I need to change any settings of gpsd to tell it that M8P is 
able to use the RCTM3 data or something like that?
Nope.  But there are a TON of setting in the M8P that need to be changed.

You made no mention of how you configured your base and rover and how
you verified that config.

I've been using the User Guide of the M8P's and the u-blox center to set them up:
    -    start with the default settings
   (I will mark rover as R and base as B)

   B    change the port settings of USB to protocol out: RCTM3 and protocol in: none
   B    start a survey-in (TimeMode 3) to get the current location (for testing just an accuracy of 10m) or just set a fixed (absolute) position -> fix mode will go to TIME
   B    enable RCTM3 messages: 1005, 1077, 1087 and 1230 (all on 1 tick for USB) 

   R    change the port settings of USB to protocol out: NMEA and protocol in: RCTM3

To verify that they work in general:
The M8P's are shipped with 2 antennas that can be plugged on the UHF port and with those the M8P's are able to communicate in short distances.
Using that antennas and the set up listed above will make the rover's M8P's green LED (RTK correction received signal) flash. I am also able to check their output through "cat /dev/ttyACM0" on both computers (rover and base).
That proofed me it works in a small area. However I would like to realize the communication through ntrip and retrieve the final position information of the rover through gpsd.

Other people have done what you are trying, but it requires changing the
configuration  on the rover after you start the rover gpsd.
You mean the rover's M8P's configuration? If so what would the configuration look like/need to be like? =-O
Is there nothing more I can do through/with gpsd at that point?

RGDS
GARY
---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703
	address@hidden  Tel:+1 541 382 8588

	    Veritas liberabit vos. -- Quid est veritas?
    "If you can't measure it, you can't improve it." - Lord Kelvin

Thank you for your response, I really appreciate it! I hope the new information is explaining it better what I wanted to say/ask and is precise enough that you can help me with it.

I am looking forward to your response (or others who might got a solution to my question)!

Regards Florian


reply via email to

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