Integration of reach with pixhawk

I have managed to integrate pixhawk with reach (i think) but i have doubts that pixhawk is receiving/using the reach.
the gpsstatus2 in mission planner is always 0…
base is connected via usb to the computer and the rover is connected via Telem2 port on pixhawk.
Also, the rover satellite count is 23 while the base satellite count is 0 (look at screenshots)

BASE settings:
firmware: v2.3
reachview: v2.2.6
-base mode:USB-to-PC @115200 (serial)
-RTK settings: position mode: kinematic
GPS AR mode: fix and hold
GLONASS AR mode: off
-correction input: off
-position output: off

ROVER settings:
firmware: v2.3
reachview: v2.2.6
-base mode:TCP server, localhost, port 9000
-RTK settings: position mode: kinematic
GPS AR mode: fix and hold
GLONASS AR mode: off
-correction input: UART @57600, rtcm3
-position output: UART @57600, erb

Mission planner:
ver: 1.3.44-1.1.6240
serial 4 baudrate:57600
serial 4 protocal: GPS
GPS inject: connect to /dev/ttyACM0
new RTCM msg: box is checked
M8P autoconfig: box is unchecked

Did you change the GPS-TYPE2 parameter to “1” (I think that may be default anyway)

GPS_INJECT_TO parameter to “1”

And you are connected via Serial4 right?

Also, you can turn Base Mode off in your Rover. Not needed.

I always use 38,400 baud but I would think 57600 would work.

Otherwise your setup looks OK to me. This has always worked for me with Beta up to 2.2.5. I just updated to 2.2.7 and now it tells me to plug in an antenna when one is clearly plugged in; 2.2.5 did not behave this way. So I can not confirm until later today if there is another possible issue.

1 Like

i believe the GPS-TYPE2 and GPS_INJECT_TO parameters were recently introduced to mission planner, they’re not in my version (1.3.44-1.1.6240). Which version of mission planner do you have?

thats why im avoiding updating anything (mission planner, reach view, apm copter…), for bugs like these…

The mission planner gps inject function seems to be working. it seems from the screenshot that mission planner is receiving something from reach, but it isnt really injecting?

Also, the only way to confirm that missionplanner is receiving/using the reach information is via the gpsstatus2 only?

I am running the same Mission Planner. Using latest ArduCopter 3.4.6 on a Navio2.

Just went out this morning and tested with good results. No problems injecting RTK.

Please make sure you have the advanced mode set in Mission Planner to see all parameters.

Mission Planner --> Config/Tuning --> Planner --> Layout --> Advanced

Then you can see the full parameter list and search for what you need to check/change.

If you follow the Emlid Docs for Reach integration it should work fine with your setup.

The only thing I can not confirm is the USB to PC since I have my base hooked to a router running a TCP server. But you are seeing the messages in MP from Base so it should be good. I suspect you need to check your parameters for GPS-TYPE2


i checked the params today and it turns out GPS_INJECT_TO and GPS_TYPE2 were different.

Went out to test and its still the same! MP is injecting (as it seems) but gpsstatus2 remains always 0.

Another strange thing is the satellite count for the base is always 0 and for rover its between 20-23…whats your satellite count?

1 Like

another weird thing is the solution is always single, its never fix or even float…

1 Like

just caught this; that is not serial 4. it is serial2. check your params for serial2. i don’t think it defaults to GPS in the params.

you were absolutely right man! i was working with serial 4 for the companion pc and i guess i forgot about serial 2.

so now the gpsstatus2 is 4 (even without starting the injecting). Starting the injection in MP didnt change a thing…

This means that MP is using GPS from the reach unit but not taking into account the rtk solution?
This is kinda verified when looking at the reachview app for each unit, the solution is single all the time and the count on the top is 22 for rover and 0 for base…i think its a reach unit configuration issue?

Any ideas? @coby @igor.vereninov

Did you set GPS_INJECT_TO parameter to “1”?

What happens now is:

  • Corrections are delivered from base Reach to MP
  • Position is delivered from rover Reach to Pixhawk

The corrections are not delivered from Pixhawk to Reach. That is why you get only single.


I get that, but why should the solution stay single? Both reach units do whatever they need to do to get a “precise” location and send that to pixhawk. The solution they provide is single rather than fix or float (i.e it isnt really that precise).
Is there anything i can do to increase the precision of the position provided by the reach units?

You may now be to the point where you have to start tweaking your integration and hardware.

I use 120mm ground plane and TW3710 on the base. The rover is hooked to a maxtenna helical. So about 200 bucks in antennas. I really don’t think you can skimp here if you want a chance at RTK. Can you do it with stock antennas? Probably with good ground planes and proper placement. But I don’t even try, so not the one to say.

i have used aluminum sheets under each gps antenna, in addition to the other factors stated in the emlid website (35 degrees view…).

Im using the antennas supplied with the reach units. Im guessing if they are shipped with the units then they should be sufficient to get a precise solution…

I guess updating the antennas will be a future step maybe.

btw using these antennas you get a fix solution?

I may be totally wrong but

Would you mind testing it with 3dr radio and reach connected to Serial 4/5?
This way I managed to make rover receive corrections…through still no luck with RTK accuracy for pixhawk

i think im in the same place now, im able to receive position from reach unit since gpscount2 is 3-4.
but just like you, the solution is single, not fix or float, which means that the injected GPS corrections are not really doing anything…?

Im hoping someone of the PRO users would know what to do with this? @bide @igor.vereninov

Im trying to plot to validate that the accuracy of the position received from the reach unit is actually quit bad…(or maybe not?)

Uhm. Im no pixhawk or MP user and thats propably it.
But i cant help looking at reach rtk config and why you dont get anything other then singel.
Is basemode on rover right? Server running on rover portnr 9000?


And may i ask why?

i asked myself the same question…no answer

I will turn it off and go out for a test and report back. stay tuned.

@TB_RTK tuned of base mode for the rover and still the same result…only single solution.

Kept at it for around 30mins but still the same result. Im clueless at this point :confused:

An interesting observation is that the “additional correction” and “base correction” logs for the rover were empty (0MB), doesnt this mean that the rover unit is not receiving any corrections?

Yea, its kind a obvious that rover is not getting correction data.
I see there are other thread in the forum about pixhawk and MP version, i guess you have read those?
Edit: you might wanna check there is no other stream on the same port rover is listening.