RTK base with a Raspberry pi4 and SimpleRTK2B

hi
@Francois can you give more details on how to implement the scan? what is pid? I googled it’s Packet Identifier?

Mine never crashed so far but it would be nice to have this.
I am just a beginner in the linux world, it took me a while to get my base work automatically, I had installed a couples of programs and had some trials and errors before having this setup.

Hi
PID is processus identifier… on Unix Linux systems
See on one of my latest post I ve indicated the command
If I remember if PID is null then the command is started once again
I ve one RPI zéro wifi as base and another on the tractor roof All in wifi and Bluetooth for 4g and it works Fine
Francois

1 Like

Thanks for the tutorial @Pat, it works like a charm.
I have two things to add :

  1. The COM port you indicated may not be the same for someone else (if the module isn’t plugged in the right USB or if the Raspberry Pi is a different one, for example). Thus, to find out which COM port to use, one should follow this procedure :
    a) Leave the module unplugged and run this command : dmesg | grep tty
    b) Plug the GNSS module in any USB
    c) Run the command again
    d) Look for the line that was added to the command’s answer. For example, on my setup, the COM port ttyACM0 was added (the same as for Pat, but this may not be the case for you) :
    image

  2. If one has special characters in its PASSWORD or MOUNTPOINT, single quotes can be added at the beginning and the end of the string. For example, this would give :
    @reboot /home/pi/RTKLIB-rtklib_2.4.3/app/str2str/gcc/str2str -in serial://ttyACM0:115200:8:n:1:off -out 'ntrips://:PASSWORD@rtk2go.com:2101/MOUNTPOINT' &
    If one has a single quote in its PASSWORD or MOUNTPOINT, the string can be closed just before, the single quote is then escaped with a \ and the string is then reopened with another single quote. More details here : shell - Which characters need to be escaped when using Bash? - Stack Overflow

@Francois your auto-restart feature after a str2str crash interests me a lot as it can enhance the overall system reliability. I found your post (RpiNtripBase - #6 by Francois), but I don’t get how your command works. It doesn’t work when I add it to crontab with crontab -e. Can you give more details please ?

2 Likes

Hi,

Be careful crontab - e is su, so type :
sudo crontab -e
then add the line I’ve indicated to you (with exactly the stars ans space at the beginning)
then CTRL X and yes

To verify :
check that str2svr is running (ater 1 minute)
if yes , check for the id of the process (ps -e), kill the str2svr proccess :
sudo kill
the process must disapaear and then after 1 minute appear again.
francois

Hi François,

Thanks for these details. I did manage to make it work, but I had to modify slightly your line.

  1. There was a space missing between the two first stars. I added one.
  2. Because It still didn’t work, I tried to remove the end of your line and just added a & instead.
    Now it works just fine. If str2str crashes, or if the raspi reboots (after a power outage for example), the str2str process restarts automatically.

To sum it up, I executed crontab -e (no sudo needed) and added this line at the end :
* * * * * pidof str2str > /dev/null || /home/pi/RTKLIB-rtklib_2.4.3/app/str2str/gcc/str2str -in serial://ttyACM0:115200:8:n:1:off -out 'ntrips://:PASSWORD@rtk2go.com:2101/lefricheduval' $
Exit with ctrl+X, and it starts after a minute.

To make it work, I found useful information here :

and here :
https://www.cyberciti.biz/faq/how-to-restart-a-process-out-of-crontab-on-a-linuxunix/

2 Likes

Yes it should. A Raspbian installation works the same way on a pi3 and a pi4 (you can even swap the SD card between the two !). For a more beginner friendly alternative, I’d recommend you to give a look at the RTKBase software though (RTKBase: a GUI for your own Gnss Base Station)

Hi All, wondering if you’d be able to help. For some reason str2str on Pi4 is not sending data correctly to rtk2go using this method. I’ve set up my mountpoint and put in my personal password for rtk2go but its still not working. Here is an image from the base station Pi.

image

I’ve been checking rtk2go it doesnt show any data on that mountpoint. I’ve also got a client running on another pi which isn’t receiving any data either. I’ve tried encasing the whole whole -out protocol in single quotes and without as well as ntrip and ntrips.

Further to my last point this is what rtk2go is showing when streaming from the str2str base Pi

1598562452419659196827019329913

I’m in the same boat unfortunately

1 Like

image
This is the stage i am at but it doesn’t show a location yet.
I managed to get rtk2go say about a RTCM 3 format by changing the USB port on the Rpi until it worked in one.

I also had the same message on rtk2go “This stream is NOT parsed”, because I didn’t send only RTCM3 messages (there was NMEA as well). You should check your F9P configuration and enable only RTCM output, disable everything else, especially NMEA

2 Likes

The way I have my base set up is RTCM3 only output, no input from UART2 with a baud rate of 115200 using the second micro USB.

I have also just tried using a local tcp connection from the base pi using a second pi and f9p as a rover, this gave a successful rtk fix using exactly the same stream just tcp instead or rtk2go on the out/inbound

Why using the second micro USB ? I used the first one (on the antenna side) and it worked well.

You can also check if the issue comes from rtk2go by using the GUI STRSVR instead of STR2STR as a NTRIP server, on a windows computer. It does the same thing but easier to use thanks to the GUI.

1 Like

image

That’s worked for me. Just haven’t quite got the location pinned down. Likely to be something with configuration in u center ?

Antenna side for me also.

You only have the message 1084 enabled. The position is given by the 1005. Also, you need a few other ones to get a RTK fix. This was discussed here.

Indeed, you enable them using U-center :
Activate RTCM U-center
The value you enter is the transmission period. Use 1 s for all messages, except for 1005 which can be send at 10 s period with no negative incidence

1 Like

I was using the second USB as it allows for the main USB to be plugged into the computer on U-center at the same time as outputting info to the pi. I also read/saw on a video somewhere that said being able to set the baud rate to 115200 was preferable for transmitting the data.

I never tried the rear USB to output RTCM, so there may be a trick I don’t know. At least I can say this : the rear USB is made to connect to a xbee or simplertk2blite board plugged in the xbee headers. It uses a UART to USB adapter (FTDI) to talk to these boards. What you want to do is use this USB plug and converter to talk to the F9P on board. So I’s say you need jumper wires to connect the F9P UART pins to the FTDI chip UART pins. However, I don’t find the headers pinout anywhere, so I can’t help you much more
EDIT : hehe, got it : simpleRTK2B hack#2: unbrick ZED-F9P/use UART1 via USB - ArduSimple

image

Perfect, that’s worked great.

I don’t seem to have a fix antenna location showing yet though.

Edit, it’s working 100% now, thank you so much for your help