PreArm: GPS is not healthy

Hi,
I am running Emlid Reach M2 on a dual gps ardupilot stack. Here2 CAN gps1 and Reach gps2.
I have followed the suggested install procedure. I get rtk fixed, however, I get PreArm: GPS is not healthy. Also EK2: Changed EK2_GPS_TYPE to 1, which indicates that vertical velocity is not provided.
Log:
15.09.2021 11:39:35 : PreArm: GPS is not healthy
15.09.2021 11:39:28 : EKF2 IMU1 is using GPS
15.09.2021 11:39:28 : EKF2 IMU0 is using GPS
15.09.2021 11:39:05 : PreArm: Need 3D Fix
15.09.2021 11:39:01 : EKF2 IMU1 origin set
15.09.2021 11:39:01 : EKF2 IMU0 origin set
15.09.2021 11:38:59 : GPS 2: detected as NMEA at 57600 baud
15.09.2021 11:38:53 : EKF2 IMU1 tilt alignment complete
15.09.2021 11:38:53 : EKF2 IMU0 tilt alignment complete
15.09.2021 11:38:52 : EKF2 IMU1 initial yaw alignment complete
15.09.2021 11:38:52 : EKF2 IMU0 initial yaw alignment complete
15.09.2021 11:38:51 : EK2: Changed EK2_GPS_TYPE to 1
15.09.2021 11:38:50 : GPS 2: detected as NMEA at 115200 baud
15.09.2021 11:38:50 : GPS 1: specified as UAVCAN

GPS_TYPE2 =5
SERIAL4_BAUD,57
SERIAL4_PROTOCOL,5
GPS_AUTO_SWITCH,1
GPS_INJECT_TO,1

If i set GPS_TYPE2 to auto, I get a configuration check failure, but at 5 NMEA it at least detects the GPS.

running the following setup:
15.09.2021 09:41:00 : CubeBlack 003D001B 34385105 30353338
15.09.2021 09:41:00 : ChibiOS: d4fce84e
15.09.2021 09:41:00 : ArduCopter V4.0.3 (ffd08628)

I have also made sure antenna is well away from interference. Wireing tx/rx to the Reach should be ok.

here2 to on can works perfect.

Any help here is appreciated! Thanks

Hi @atob,

How did you configure the NMEA stream from Reach M2? Can you show the screenshots from ReachView 3? Apart from that, I don’t see any obvious reasons for such an issue. Your configuration looks fine.

Hi, the screenshots are shown below.

I still have not found a solution to this. I see that sometimes, the reach unit switches to “waiting for corrections” for up to a couple of seconds, but this should not affect the prearm.

In the integration documentation it explicitly states not to use this as it is obsolete. I have therefore only tested NMEA.
Spent one full day testing every possible configuration, started looking at the api to ap-source code, nothing worked. I forced armed, but the copter experienced slight toiled bowling and instabilites, pointing towards data transfer issues.

After spending (too much) time on this, I finally got an RTK-fix using ERB with the following settings:
GPS_TYPE2,13
GPS_INJECT_TO,1
SERIAL4_BAUD,57
SERIAL4_PROTOCOL,5
GPS_AUTO_SWITCH,1
The update rate is at 5hz.
NMEA sends quite a lot of information in the packets, so it can be serial rate issues from the Reach to the autopilot.

I still do not know why this is not working with NMEA, I tested higher rates too. A lot of time could have been saved if a warning of this was stated in the documentation. Will ERB be supported? Is there a way I can run this on NMEA?

Note that I am using a canbus GPS as primary (here 2), Another important issue is that reach must run on separate power supply.

Thanks!

1 Like

Hi @atob,

I’ve tried this setup myself and didn’t reproduce the same behavior. NMEA stream works. So, let’s see what could be an issue here.

We stated that the ERB format is deprecated since we’ve not made any changes in this protocol for a while. As Reach outputs the industry-standard NMEA format, we can be sure that there will be no issues with compatibility. That’s why we recommend using it instead. However, if ERB works for you, you can use it in your configuration.

Were you testing outside with this configuration? Reach should see the satellites to provide any valuable information in the stream.

Also, does the situation change when you select other options for the GPS_AUTO_SWITCH parameter? What happens if you choose only Reach receiver as a GPS?

Hi,
Thank you for the prompt reply. I did test the exact configuration with NMEA. For now the ERB seems to work, I will report back if anything changes.

Hi @atob,

Sure, just let me know in case you catch something. We’ll look into this.