We are developing an RTK system that uses two SparkFun GPS-RTK2 Board - ZED-F9P (Qwiic). The first one is used as a moving base and the other one as rover. The base recieves correction data from Thingstream via NTRIP. We have followed ZED-F9P moving base applications Application note from U-Blox. Our goal is to obtain precise heading and absolue position (latitude, longitude) from the RTK system.
We are using the length we obtain form the messeage UBX-NAV-RELPOSNED to know if we can trust the heading, latitude and longitude given by the Rover via I2C. We compare RELPOSNED length to the kwown distance between the rover antenna and the base antenna, which is 50cm. If our system takes 10 consecutive samples of RELPOSNED length between 49.5cm and 50.5cm, we allow our device to continue working, but if RELPOSNED lenght doesnât fall into those margins, we wait untill it does. We call that process calibration.
The problem is that sometimes our device takes up to 7 minutes or more to establish 10 consecutive samples of RELPOSNED lenght inside our bracket, when it normally takes under a minute. This happens both when the device is started in a location where its has recieved GPS/GNSS signal before (warm start) and when it is started at a new location where it has never been before (cold start). But this can also happen at other times different from start, meaning we perform a first successful calibration under a minute, and then, after a while, a second calibration, third or fourth can take a lot of time, or our device just stays calibrating forever.
We have found some sort of solution to this porblem, but it doesnât always work. When we notice that a calibration is going to take a very long period of time, we play with the device orientation. For example, we try to calibrate with the Rover antenna pointing to the East, we notice it is taking longer than usual, we rotate ti so that it points South, and 10 consecutive samples of RELPOSNED lenght are received almost instantly after rotating. But, as I previously said, this doesnât always work.
We would like some help to understand this issue, and to know if there is something we can do, firmware or hardware, to prevent our device from it. We would also like to know if there is a better way of obtaining the heading than the one we are currently using, which is from the RELPOSNED message when the obtained lenght matches our known lenght.
The antennas we are using for both Base and Rover are AECC0502GB.
Thank you in advance
