I have the NEO-M8T-0-01, which doesn't have Galileo, but I'm running with GPS and GLONASS enabled. (I was shipped old stock by a supplier. I'd love to upgrade the firmware to 3.01 TIM 1.10 to be able to get the Galileo constellation, but I'm just an individual. All my emails offering to sign an NDA to get it have not been replied to.)
My antenna is a Tallysman TW4722 Wideband GNSS Dual Feed pre-filtered.

I'm constrained to less than half of a full sky view (at Lat 45, from near ground level, a width of around 175 degrees of azimuth, aimed 30 degrees East of South) with multipath from infrastructure and mostly low buildings. I've been improving results by using signal level threshold, minimum elevation threshold and RF absorbing material for shields, to try to filter out SVs without line-of-sight to the antenna. I even got improvements by putting the GNSS module inside an insulated thick-walled aluminum can for thermal stability, possibly some RF benefit. All was of benefit, but with that limited skyview I was getting a low SV count and a number of short periods each day where I'd be thrown into holdover due to zero SVs. Adding in Galileo would be really useful to have more SVs in that skyview.

Recently, after reviewing the gain map of patch antennas, I decided to see if I could make better use of the area of maximum gain by pointing its vertical axis more at the centre of my sky view, for higher signal strength, but at risk of more multipath off the ground. So I tilted its circular ground plane 30 degrees at my sky view. Immediately I saw higher signal levels and more SVs above the signal level threshold (18 dB). So I decided to write some code to disable SVs that couldn't have line-of-sight to my antenna, based on an azimuth range. To that end, I starting going through the M8 message codes. I didn't find a way to manually exclude an SV, but I discovered UBX-CFG-NMEA - "Consider"

u-blox receivers use a sophisticated signal quality detection scheme, in order to produce the best possible position output. This algorithm considers all SV measurements, and may eventually decide to only use a subset thereof, if it improves the overall position accuracy. If Consideration mode is enabled, all satellites, which were considered for navigation, are communicated as being used for the position determination. If Consideration Mode is disabled, only those satellites which after the consideration step remained in the position output are marked as being used.

With the ublox u-center, I found that Consider was Enabled. With Consider Disabled, the list of SVs indicated those actually used in the solution. Encouraged by the initial results, I dialed back the signal level threshold to 16 dB (from 18).

I then observed, with Lady Heather providing the SV list and the sky map:

1. Every SV that doesn't have line-of-sight to my antenna is excluded from the solution. - The M8T solution is excluding SVs showing as visible that are only visible to the antenna by reflecting from buildings, structural steel posts, or an electrical transformer on pole.

2. A regular number of short incidents where a SV, although positioned within my sky view, is excluded from the solution. Turns out this matches when the SV's line-of-sight signal path is either blocked by or runs close to:
- some steel posts,
- an entrance roof,
- an electrical transformer on pole,
- some hydro wires running parallel to my building, or
- the horizon or buildings on the horizon (but only at some azimuths).

3. The count of satellites went from:
- before: typically two, three or four available to consider for a solution, to
- now: typically five or six used for the solution.

4. Astoundingly fewer holdover periods per day:
- One short period with zero SVs.
- A second short period with a count of two SVs.

I may have to lower or remove the signal level threshold, as any solution should be better than going into holdover?

With the Consider disabled, I get to see that the M8T is only using valid satellites for its solution - the same ones I would have manually chosen (less a few more when in a position with somewhat dynamic issues I wouldn't have been able to easily detect or even detect, let alone address) - and I got to dial back threshold. No more point in trying to find a way to code excluding SVs. Except for being able to get the updated firmware to add the Galileo constellation in so I'm without holdovers, I'm done. Just let the M8T run and do its job.

Now I finally feel the M8T was money well spent.


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Reply via email to