RS2 and M2 as a RTK/PPK

Hi dear team Emlid,
I just start working on reach RS2 and M2,just while I am into lot of questions and basic doubts.

since I’m beginner for this emlid Reach RS2 and M2 just gone through its related documents here and followed steps also.

Just updated Reach RS2 and M2 firmware to 26 and started working for the RTK setup between RS2 and beginning itself got confusion that it showing Base as rover and Rover as base in the status tap of the each unit.

as you can see screenshot of reach M2 rover sats 37 and base sats 26.but actually Reach RS2 satellite is 37 and Rover reach M2 satellite is 26.its also happening in REACH RS2 page also its Normal? there is a big doubt in find which one base and which one is Rover.

I didn’t get fix solution on REACH RS2 until I set correction input. Its necessary for RTK based survey .same to be done on Reach M2 Rover also to get it fix solution. I have used TCP protocol to send the correction between RS2 and M2.i have doubt in that also

as per my knowledge both RS2 and M2 IP address is same when hotspot mode(

start with RS2:
under BASE MODE tap correction output set as TCP---->role server----->Address localhost----->Port 9001

under Correction input set as TCP---->role client----->address>Port 9001.

for Reach M2 setting as below:
under BASE MODE tap correction output set as TCP---->role server----->Address localhost----->Port 9000

under Correction input set as TCP---->role client----->address>Port 9000.

if sender port number should be same as receiver port number to data transfer .but here RS2 having same port number for the correction input & output as 9001
M@ has same port for correction input/output as 9000. if this setting is right can you describe how?

my main aim to do PPK as well as RTK at the same time with PIXHAWK flight controller and mission planner. Cancan anyone clearly guide me for doing PPK/RTK in single flight.

As per my guess this is going to be my integration plan for PPK and RTK.

Pixhawk integrated with Reach M2 via serial port S1 or S2.for PPK M2 C1 port to be connected with camera hotshoe.

please guide me for the following doubts?

REACH M2 correction input ?
position output ?
Base mode ?

REACH RS2 correction input via TCP protocol (server )-------mission planner RTK/GPS(client)
position output?
Base mode?

components used : Pixhawk flight controller
emlid REACH RS2 & M2
Data radio RFD900x (both MAVLINK & Emlid)

This link might help for me to do RTK /PPK .but this guide is reference with REACH RS .

this can be applicable to REACH RS2 & M2 also?

Only one needs to be a base sending corrections, the one that you will leave stationary.

The one you move around with is the rover, base mode should be disabled on this unit.

1 Like

You giving the solution for only RTK .but I need scenario that both RTK/PPK .rtk for precision waypoint follwing and landing.ppk for acheving centimeter accuracy.

In PPK your base is still just a base, your rover does not send corrections. For Post processing you need to log the path taken by the drone.

A base station is stationary and is the only one that sends or in ppk records corrections.

The only time a base needs corrections is to find its position the first time, before it goes into base mode. Or alternately you can go out earlier and PPP the base location.


I knew concept of how RTK works and PPK works .I am just asking is that any way to perform simultaneously both of them .

Sending corrections back to base from the moving rover is not handled by EMLID or any other manufacturer.

There is such a thing called moving base, which still requires a stationary base, plus two rovers on the machine. Even with this setup corrections only go in one direction, from stationary base to, rover 1.1 then to rover 1.2. Emlid does not do moving base.

If your base station is moving, its ARP coordinates are always fixed, you will soon end up with very large measurement issues.

The base stays stationary and sends or records corrections, the rover moves and receives corrections and records its position relative to the base. The base is very important it is the monument all measurements are referenced to in both situations.

There is no simultaneous two way, base rover, corrections.

PPP / Commercial / Monument Base -----------> Field Base -----------> Rovers
Corrections move in one direction.


Thank you for your answers .so either I can do RTk or PPK at a time in a single flight.

Doubt for me in PPK setup,when base set as a RTK mode as static and position mode could not set fix solution status.

I can able to set average single solution only ,because there is no correlation input coming for base that right? Because single solution status give only meter level accuracy.

Base set to static,
average your position, or set up on a known point
start sending corrections

Rover is moving set to kinematic
receive corrections

Yes you have to pick one or the other
RTK is Real Time Kinematic, corrections are done in real time
PPK is Post Process Kinematic which involves making logs and processing your data on a computer after the fact.

Emlid docs will walk you through step by step

But at no time does the rover send corrections back to the base.


@PotatoFarmer pretty much summed it up.

And the terms spell it out:

RTK is Real Time Kinematic: keywords REAL TIME

PPK is Post Process Kinematic: keywords “POST” PROCESS


Hi @Kalai_Selvan,

Reach M2 can be used for both RTK navigation and PPK mapping in a single flight. To integrate the unit with Pixhawk for navigation, you can use the settings from our ArduPilot integration guide for Reach M2. In this case, you will need to set TCP correction output on Reach RS2 and Serial correction input on Reach M2.

For precise mapping, you will need to connect the unit to the camera with a hot shoe adapter, collect logs on the base and rover, and post-process them together after the flight. To learn the workflow in more detail, you may check our PPK mapping guide.

To get absolute accuracy, you can place the base on a known point or average its position in Fix using corrections from an NTRIP service. If you average base position in Single, you will get relative accuracy only. To explore different ways of placing the base, you can read this guide.

When you connect to a unit in the Reach Panel, you can see the number of satellites tracked by it in the Rover window. If the unit gets base corrections, the number of satellites for that base will be shown in the Base window.

In the ReachView 3 app, we started to show it differently to prevent confusion. For the connected unit, the number is shown at the top of the Status tab. If the unit receives corrections, you can find the number of satellites in view for the base in the Corrections section.

1 Like

If follow the ardupilot integration documents it doesn’t shown the RTK parameter setting in the M2 as well as base RS2.

Examble how much update rates in rtk parameter for M2 as well as reach RS2 .if go through PPK guide it’s says set M2 update rates to 10HZ for drone flight …1hz for base RS2.

These kind of setting really confusing me …

Then come to logging ,since I’m doing PPK I have to log only raw data in both M2 and RS2 or log position and base correction also because parallelry running RTK.

In this conditions if i am placing baseunit in unknown location and I can’t get fix solution,because there is no rover correction to base . Is I am right?

@Kalai_Selvan Learn and use one method at a time.

First try RTK, learn all the steps. Once that is mastered try PPK.

For RTK the first thing you have to do is set your Base Station.
To do this you have to choose from the following options.

Entering known LLH coordinates or

Averaging in your location with no corrections as a single or

Temporarily using the base as a rover, getting corrections from a provider, Averaging in your position as an average fix or

Learning the PPP method, entering the base LLH coordinates.

Once you have the base coordinates you lock them in manually, they will never change for that mount point. Set the base to “Static” because it is stationary. Then you can send corrections to your rover as desired.

At the Rover end set it to “Kinematic” if it will be moving taking measurements. Set up the correction controls to receive from your base. Get a fix!

Play with that until it works every time, then move to PPK.


When set postion output in M2 selected as NEMA protocol,but under this NEMA setting is generated as below.

Is this setting just leave it as default or we have to change something.

And under ROVER M2 base mode tap base mode correction must be turned off as below?

as you said and followed ardupilot integration guide and done base test .but i got error in mission planner that randomly showing GPS2 RTK fixed and NO FIX .i have attached video here and some screen shots of pixhawk autopilot configuration also.

what is the problem causing here please help me anyone?

Where are your antennas located?

Is your rovers correction age steady, and below 1s?

How are you transmitting your corrections, could we see a screenshot of the corrections tab on the base?

Sounds like it is just about working, just need to optimize a few things.

Antenna postion I will take photo tomorrow.

Correction from the base via TCP .

I will look for age steady also . didn’t notice that.

It took me a long time to get a good fix with the M+ units I first had.

Once you have all of the steps and settings down you will be amazed what these M2 units can do.

1 Like

Thank you potatofarmer.fixing of M2 multiband is little fast as for as I seen.

Both rover and and base set as 5hz update rate is that fine?