Pixhawk / Ardupilot + Reach integration, no HDOP or satcount

I’m trying to integrate a Reach into a fixed wing UAV platform with a Pixhawk flight controller, but the Pixhawk is not receiving HDOP or satellite number data from the Reach. The Pixhawk is recieving position data and GPS status is “3D Fix”, but HDOP is 0 and satcount is 0. What’s going on??? Does the Reach ERB protocol not contain HDOP and satcount data?

Emlid Reach (Edison) running ReachView version 127.0.0.1, HobbyKing clone Pixhawk running ArduPlane version 3.8.4. Reach is connected via 6 pin DF13 connector to Serial 3 (GPS), The Reach is the only GPS unit attached to the Pixhawk, and will be used in both Single and RTK modes. The Reach+antenna works well, and has previously been successfully integrated to an ArduPilot quadcopter platform. The Pixhawk is working, and has previously worked well with a 3DR uBlox GNSS reciever.

ArduPlane settings:
Serial3_baud - 38400
Serial3_protocol - GPS
GPS_type - AUTO (I have also tested this as ERB, same result)
GPS_auto_config - enable

Reach Position output settings:
Device - UART
Baud - 38400
Format - ERB

Any help or ideas are gratefully appreciated!

Reach is one of the best integrated GPS in Ardupilot… All reach information is available, even AR ratio.
So please use the latest version (2.11) and the latest Arduplane version. There is good ardupilot documentation in both the emlid and on the ardupilot.org websites.

Hi, not sure what you are talking about here… version 2.11 of what?
Thanks, Oli

Hi Oli,

What’s the version of ReachView software on board of your Reach unit?

https://docs.emlid.com/reachrs/common/reachview/settings/#check-app-version

It’s running v2.11.0.

So I’ve been playing around with it again today, and discovered that the lack of HDOP and satcount data only occurs when the Reach is in Single mode (ie no RTK correction).

When I feed RTK corrections to the Reach (via NTRIP GPS inject on Mission Planner), the Pixhawk receives:

  • GPS status value (either Float or Fix)
  • Lat/long location values
  • HDOP value
  • Satcount value

But as soon as I turn off the RTK corrections and the Reach goes back into Single mode, the Pixhawk only receives:

  • GPS status value (3D fix)
  • Lat/long location values

So it appears that as long as you are using the Reach as an RTK device it will function perfectly, but if you are using it as a standard GNSS reciever it has limited functionality. Is this lack of HDOP/satcount data a bug or a feature?

It is a feature, this way if you get no data you know that you lost RTK fix.

@Amilcar_Lucas ah ok, thanks very much. Is that included in the documentation anywhere? If not, maybe the details of what data the Reach passes over ERB when in each mode should be included, perhaps on the ArduPilot integration tutorial page.

I will mark this thread as closed. I just wanted to say that I’m really enjoying the Reach system and it’s a fantastic piece of kit - excellent work Emlid.

1 Like

No it is not documented. But you can do a pull request to the ardupilot wiki.

This is not a good feature. The Reach cannot be used as the primary GPS because of this behavior and it makes it harder to diagnose what is going wrong.

1 Like

I also would like to ask to change this behavior. It is not a feature. Please change the code so that the information is transfered in single mode too!

Added to our issue tracker, will fix. Thanks for the reports.

1 Like

@egor.fedorov the fix must be done on the ardupilot code. And I happen to know that some developers consider this to be a feature… I will support the merging of your PR, but I’m not sure it will get merged upstream.

I would like sat count and single/float/fix added to reach :+1:

Sorry, but that information is already integrated in the code. What exactly is not working for you ?

Its working, but as stated above not in single mode.

I see, we’ll get to the bottom of this :slight_smile:

1 Like

I can’t find any logic yet in the ardupilot source code that would prevent the hdop and nsats:

Is that logic on the Reach side?

No that logic is on the AP_Gps base class

I looked in these two classes and didn’t see any specific logic to 0 out the dop and nsats when there are no RTK measurements: