Hi Gentlenav,
I am happy to give you some feedbacks about the project to connect a differential GPS ZED-F9P to MatrixPilot.
Of course, it was not a plug and play replacement of the standard GPS and I had to solve some difficulties.
In a first step I connected directly, with USB connectors, the base and the rover to the PC. I created specific software to receive the RTCM3 message from the base and send them to the rover.
I try to read the RELPOSNED message, but unsuccessfully. The description of the message had changed and must be conform to this document : ZED-F9P_InterfaceDescription_(UBX-18010854).pdf.
When all was correct "on the table" I tried to connect the base to the GCS, sending the RTCM3 messages via the telemetry with Mavlink protocol (using the message 233), receiving and decoding the message in MatrixPilot which send it to the GPS. MatrixPilot was upgraded to decode RELPOSNED message.
I encountered two difficulties:
1- The first is obvious but gave me some time to fix: the mavlink_message_CRCs table must be the same in the GCS and in PatrixPilot. In MatrixPilot the CRC constants are defined in two files (MAVlink/include/common/common.h and MAVlink/include/matrixpilot/matrixpilot.h). These to files have different CRC for the message 233. The table retained by matrixpilot is defined in the last file ( matrixpilot.h). I do not remember where I picked up the mavlink_message_CRCs for the GCS but the CRC for the message 233 was different from those in Matrixpilot.
So we have to take care about that!
2- Matrixpilot initializes the GPS by sending some configuration data during the GPS setup (gps_startup_sequence procedure), using gpsoutbin(int16_t length, const uint8_t msg[]).
This is done when we have time to send small messages at low rate. But, the 5 RTCM messages are heavy (some time shared in several 180 data length messages) and need to integrate a kind of FIFO in the gpsoutbin procedure.
I have upgraded this procedure in my MatrixPilot version.
Now, the rover receives the RTCM3 messages correctly and commutes in RTK mode.
I will go ahead to adapt the navigation loop for this accuracy announced to be close to centimeter!
Best regards,
gfm