If I connect this to a serial port on the raspberry pi and output NMEA sentences, will the autopilot recognize the NMEA streams even though its not on the list of GPS’s that work? (GPS/Compass (landing page) — Copter documentation)
In particular I would like GPS to come in obviously, and use the dual compasses for GPS Yaw.
Even better would be if I can get AHRS data coming in too, but I do not believe ardurover supports this unit.
_GPS_SENTENCE_RMC = 32,
_GPS_SENTENCE_GGA = 64,
_GPS_SENTENCE_VTG = 96,
_GPS_SENTENCE_HDT = 128,
_GPS_SENTENCE_PHD = 138, // extension for AllyStar GPS modules
_GPS_SENTENCE_THS = 160, // True heading with quality indicator, available on Trimble MB-Two
_GPS_SENTENCE_KSXT = 170, // extension for Unicore, 21 fields
_GPS_SENTENCE_AGRICA = 193, // extension for Unicore, 65 fields
_GPS_SENTENCE_VERSIONA = 270, // extension for Unicore, version, 10 fields
_GPS_SENTENCE_UNIHEADINGA = 290, // extension for Unicore, uniheadinga, 20 fields
_GPS_SENTENCE_OTHER = 0
At a minumum, the system requires GGA and RMC messages. VTG seems to be good-to-have, and, as you want to consume heading/yaw, HDT.
Critically, the nmea injector in BlueOS does not support HDT. In order for ardupilot to consume HDT, you have to bypass nmea-injector.
Go to the autopilot firmware page, and set SERIAL2 to udpin:0.0.0.0:27000
set the parameter SERIAL2_PROTOCOL to GPS
set the parameter GPS_TYPE to NMEA
set EK3_SRC1_YAW to GPS
restart the autopilot
That should work!
There’s a “hard timeout” after 4 seconds which causes the driver to re-scan if essential messages are missing. If you see multiple “GPS1: detected as NMEA” messages, that means something is wrong/missing.
We recommend trying to send the messages at 10hz or more
Oh, interesting. I was trying to determine yesterday what all messages ArduRover understood, so I could pare down the NMEA message set to make it leaner. Google didn’t manage to lead me to the github page linked to above.
Looks like I can remove GLL and GSA, after having already removed GSV.