RTK corrections not reaching Rover via Mission Planner

I am trying to set up RTK GPS for the autonomous boat I am building. I am using the Mission Planner (ver 1.3.56) ground control software with a Pixhawk flight controller (2.4.8). I have set-up my pair of Reach GPSs as a base and rover combo using the instructions for integrating Reach units with ArduPilot that are part of the Reach online docs. The base station uses a Wi-Fi connection to send the corrections to the laptop running Mission Planner, the corrections are supposedly merged into the telemetry data stream. As I said, I am following the instructions given in the Reach docs.

It appears that the base station is outputting corrections. I say this because I can see data is getting to Mission Planner - the TCP Client page which opens when I instruct MP to Inject GPS information in the telemetry string, shows data being received. I have green bars that vary in size reflecting signal strength from the various satellite signals, the Link Status shows varying input/output data rates, RTCM messages (1002, 1006 and 1010) are coming in, BASE/GPS/GLONASS buttons are green (BEIDOU is red - but its not being sent from the Reachbase). The Inject MSG check box is checked. This all suggests that I am getting something from the base to Mission Planner.

I don’t think the rover Reach is getting this information. The status page in Mission Planner shows a number of parameters (GPSSTATUS2, GPSHDOP2, SATCOUNT2) - all I believe tied to the GPS (the Reach rover) plugged into SERIAL4/5 on the Pixhawk - that are 0.

If I use Reachview to look at the rover I see the following:

On the Status page in the upper righthand side I see ROV:20 Base:0 - I take this to mean the rover is seeing 20 satellites and there are no satellites coming in from the base. The section labelled RTK parameters shows age of differential is 0.0 s - there is no differential correction? There is nothing showing for the base position or height.

On the Correction Input page: Base Correction is ON, Serial Device = UART, Format = RTCM3, Baud =57600 (this is the setting for the telemetry radio - all the telemetry appears to be coming OK).

On the Position Output page: Output 1 is ON (Output 2 is OFF). The serial device = UART, Baud = 57600, Format =ERB. It appears to be connected to a /dev - the text is green.

When I check the logs - the size of the log for base corrections is 0.0 KB - there’s nothing there.

To round out the information, here is the Reachview info for the Base Reach

On the Status page ROV:21 BASE:0, Static positioning, solution status=single.
Position output = OFF
Base mode = ON
Address: localhost
Base Coords_ 2 min average
Lat/Lon and height are set and good.

I pretty much followed the exact parameter settings described in the documentation. The only thing different is the baud rate on the radios, which as I said are having no problem sending all the other telemetry at 57600.

Lastly, when I get this working, do I need to CTRL-F to set-up the Inject GPS info every time I connect to my rover? Or is this “remembered” like all the other parameter settings?

I look forward to hearing what I need to change!

Did you set the GPS_INJECT_TO parameter?
Is GPS2_TYPE set to 13?

GPS_INJECT_TO is set to 1 - which I believe will send the information to the 2nd GPS (the Reach which is plugged into Serial4/5

GPS_TYPE2 is set to 13.

I also changed the cable connecting the Reach to the serial port - after confirmed the continuity on all 6 channels.


While I wait for some support I’ve been cruising the web looking for a solution. It seems like several people have the same problem, corrections make it to the Mission Planner but don’t get sent to the Reach GPS

I’ve noticed that the ROV count on the Status page of the Base station is frequently 0 - even though the bars on the display continue to move. They are typically above 40. Does the ROV:0 mean no GPS position is being calculated - hence no corrections. How does this jive with the signal-to-noise display? Are there settings I could tweak to improve the GPS positioning (the ROV satellite count?)

1 Like

I am running into a problem when I try to set-up a RTK GPS on the autonomous boat I am building. I have a pair of Reach GPS that I want to use as a Base-Rover pair. I am using the latest stable release of Ardurover with a Pixhawk 2.4.8 flight controller. I am using the current stable version of Mission Planner (1.3.56).

Following specific instructions on the Emlid website I have configured the base and the rover. The rover gps is plugged into Serial4/5 on the Pixhawk which has been set to a baud rate of 38400 - so this should be viewed as the second GPS on the boat. The corrections from the base are sent via a wifi connection. They appear to be coming in I have green bars that vary in size on the screen that shows up when I initiate GPS injection. On the same page I can see packets of information both incoming and outgoing. I have a green light on the page for “base”, :“GPS” and “Glonass”. I have RTCM messages - that change with time. I have a RTCM base.

However…I don’t appear to be actually sending the corrections to the GPS or receiving corrected positions from it! When I check the status of my system on the main page I see a number of parameters (gpsstatus2, gpshdop2 and others) that are 0 which suggests the Pixhawk doesn’t know its attached.

The parameters I set (following the instructions from Emlid’s web page) were:


Hi Nigel,

As I can see from you messages, you’ve changed the baud rate in both Correction Input and Position Output to 57600. But the Baud rate of Serial4 that you’ve pointed in Mission Planner configurations equals to 38400. Try making it the same as in Correction Input and Position Output.

Drrr!!! The problem was simple user error. The Reach has DF13 connectors but only one is the UART - I was plugged into the wrong connection on the Reach. (What is that other one for?). Once I reconfigured the connections (and made sure Baud rates were all the same) the Mission Planner saw the Reach which was then able to calculate RTK corrected position information and send it back to the Mission planner as it was supposed to do.