I am using the U-blox f9p with an Arduino using UART. When I connect it to U-center as well as the Arduino, the SIV on the Arduino does not match the number of satellites displayed in U-center. It can often be out by a factor of 2 or 3. This greatly increases the time I have it turned on for as the Arduino is waiting for longer that it should be to get a desirable number of SIV. Are there some configuration settings I am missing? What might be causing this?
The “SIV” value returned by the library is the numSV (Number of satellites used in Nav Solution) from the UBX-NAV-PVT message. As jremington says, that value will be different to the values reported in the multiple NMEA GSV messages, also - confusingly - named numSV (Number of known satellites in view regarding both the talker ID and the signalId). The ZED-F9P will select which satellites to use in the solution from the satellites in view.
Full details are in the “Interface Description” available here:
Right, that makes sense, thank you. Does U-center have a view of the satellites used in the solution as well? Also, when using RTK with a second base station, how many satellites should be in the solution to gain an accurate position?
You can open View \ Messages View to see all of the messages being sent by the module. Opening the UBX\NAV\PVT tab will let you see the #SV’s Used field:
You either need to keep clicking “Poll” at the bottom of the window to see fresh messages. Or go to the UBX\CFG\MSG tab, select 01-07 NAV-PVT from the list, tick whichever ports you want to see the message appear on, then click “Send” to enable the message. If you go back to UBX\NAV\PVT you’ll see updates every second.
Instead of focusing on the numSV, why not wait for the Position Accuracy Estimate (Horizontal) to reach a level you’re happy with? You can access this through the Arduino library by calling getHorizontalAccEst.