I am interested in getting two ZED-F9P modules to communicate as a base and rover over a long distance. It looks like one method that would work would be.
-
base station RTK module sends RCTM data through serial (probably Sparkfun Serial Basic) to the RTKLib software running on a Windows PC.
-
using the RTKlib software STRSRVR function broadcast RTCM data to an NTRIP Caster.
-
use NTRIP Client Andriod app to grab RTCM data from NTRIP Caster
-
send RTCM from NTRIP Client app to Rover RTK module over bluetooth (Sparkfun Bluetooth Mate)
I was hoping to get some advice on the best way to setup the NTRIP caster. It looks like the free version of the SNIP Caster service has the capability of doing this? https://www.use-snip.com/pricing/
Does anyone have any experience with this that they could share?
Thanks!
Yes the SNIP NTRIP Caster can do this (including the Lite, free, edition) , or you could use the pubic NTRIP Caster at RTK2go.com. But there are any number of other configurations that would work for you as well. Consider:
A local copy of SNIP can read your serial stream directly and serve it to others with NTRIP (Input from SNIP's serial stream tab, output by why of PUSH_Out, end to end check with a Remote-Relay connection to RTKgo - that is why SNIP Lite allows three connections). This removes the need for RTKLIB. If your rover devices are local to that copy of SNIP, it can service them directly.
[General observation: If you need a public / static IP for your rovers to reach the Caster, three options; use RTKgo, or get a static IP (often costs $), or use a DDNS service]
Or you can use RTKLIB (which has some built in NTRIP but not a Caster) to send the serial data out to RTK2go or any other Caster. SNIP model Casters will fill out any missing content details for you. No need for a local copy of SNIP Lite as RTKLIB (as well as RTKLIB explorer and emlid which are both based on that code) will read serial and send out as NTRIP.
Or, if you only need to connect one base station stream to one rover devices you do not in fact need NTRIP at all, a simple TCP connections will serve your needs.
Hi there, you can also check Emlid NTRIP Caster https://caster.emlid.com/.
It’s super easy to use and works worldwide. This Caster is available for free, so you can just sign up and start using it.
You can also set up your own caster. You need a (very lightweight) server on the Internet, with a domain name and some free software. I run mine on a Digital Ocean Droplet which costs me $5 per month.
The caster software is here: https://github.com/goblimey/ntripcaster.
I got it all working by connecting the Sparkfun board to a Raspberry Pi and running the NTRIP server on the Pi. (Same Github page, also free).
The software is the original BKG reference NTRIP caster implementation, which I reworked to run under Docker to make it easy to install. It handles version 1 of the NTRIP protocol. BKG produce a version 2 caster, but they charge for that.
By the way, NTRIP is meant to be a carrier for RTCM messages, but you can send anything across the connection. That can confuse your rover, so you need to configure your base station to only send messages that the rover expects, for example, turn off the default UBX messages and only enable RTCM. Alternatively, on my github page, you will find an rtcm filter which takes a stream of messages from the Sparkfun board and allows through only valid RTCM messages. I run that on my Raspberry Pi and feed its output into the NTRIP server (which sends the result to the caster, which sends it to your rover …)
If you use the SNIP caster, you may find the same problem if you don’t suppress the UBX messages.