KrakenSDR would do a good job of this, they combine five RTLSDR into a coherent array. The top end of their tuning range is 1766 MHz which would include the 1575 MHz of the GPS L1 signal.
The little five antenna array can even attach on the roof of a car for a handy ground plane. Prob not a good idea to drive with it out there tho.
You could also use a single receiver with a small antenna array (GPS wavelength is around 20 cm) to estimate the angle of arrival of the incoming signals.
It just so happens I've got an RTL-SDR, a GPS receiver that outputs raw pseudoranges, and a signal splitter that lets me put the signal from one antenna into two receivers.
So if you like I can get the pseudoranges out of a commercial GPS receiver, and the raw signal from an RTL-SDR at the same time, which might help you pinpoint your last bit of location inaccuracy.
Would you be interested in that? Or do you consider this project complete?
However, I wish some of these guys would show us the initialization procedures. In my experience trying to get an RTK level solution with an L1 only GPS receiver (read: cheap) is impractically hard. Then once you have it, you can lose it with the slightest change in the number of satellites available (i.e. if you go under a tree or next to a building). However, my experience is now over 3-4 years old, maybe we've come a long way.
GPS signals are sufficiently low frequency that a phased array would need to be fairly large. Each antenna in the array would need to be around 5cm and you'd need quite a few of them on each axis. Totally doable but someone probably decided a dish was easier/cheaper than a big board of antennas or waveguides and associated circuitry. Phased array would be nice to have though, since if the array was large enough you could have multiple beams produced by different parts of the array and cover more/multiple areas.
I did this back in the day using a ublox LEA-M8F module for my PhD work following the instructions posted here:
http://www.opendigitalradio.org/lea-m8f-gpsdo
I also experimented with RTK which this module is capable of.
Now there's probably a more up to date ublox module available which could provide even better results using multi frequency GNSS etc.
Just thinking about what that would involve. Very high gain antennas could track individual GPS satellites and probably defeat jammers. A phased array system (similar to Starlink's 'dishy', but probably larger due to the much lower frequency) might also work. Either solution would make many if not most uses of GPS either physically impractical and/or too costly.
If you want to explore deeper, there's some fun (and well commented) open source GPS processing codes in Octave/Matlab [1], coming from the excellent book [2]. Those are compatible with cheap RTL-SDRs. [3] also looks nice, but as I recall is Linux only.
There are commercial products for less than $100 that do this for the L1 C/A signal - such as [1].
You can rebroadcast at substantially higher power than the signal coming directly from the satellite, so the direct signal gets drowned out. After all, the satellite has to broadcast to cover half the world, while you only have to cover a few square meters.
Now, I'll grant the receiver may see a change in signal strength, some cycle slips, and an increase in clock skew. But you get those in normal GPS operation anyway. If you're going to detect GPS attacks and self-destruct your drone you'll want a very low false-positive rate, and I'm not sure that's feasible.
And then there's RTK (I like to talk about https://centipede.fr ) that measures the offset between GPS signals and litteral ground truth and proadcasts it, enabling centimeter-level precision.
The more systems, the merrier, even if they aren't all accurate, you can use them to increase precision (kalman anyone?).
Someone mentioned multi band. You can also use signals from multiple systems at different frequencies.
I just read through the LightSquared story and am pretty intrigued!
One of the fascinating demonstrations of the fact that GPS is relatively interference robust is that Galileo (ESA GNSS system) runs on the same frequencies as GPS; the different spreading codes mean that receivers can choose which signal to listen to.
Reading about the LightSquared system though, they do talk about a quite real concern: overloading the receiver's frontend entirely. That's one of the concerns that would be addressed by using directional antennas (if you're receiving interference, rotate your antenna so that the source is in an antenna null). As far as I know, most civilian receivers wouldn't have a directional antenna, they'd have an omni so that they work in any orientation; it'd suck if your iPhone could only receive GPS signals if it were sitting flat. On a military vessel, it'd make a lot more sense to mount an upward-cone-looking antenna high up on a mast to avoid sources of surface interference.
I'm super curious now though! I've got a software GPS receiver set up, I'd like to try injecting noise into the (virtual) signal chain and see how much noise power is necessary to lose lock. If anyone's curious, GNSS-SDR works great with $20 RTLSDR radios: http://gnss-sdr.org/source-code
Edit: I did a bit more research, and it sounds like overloading the front-end is the most common approach to jamming. People are turning on multi-watt transmitters in their vehicles (e.g. to block fleet management GPS from detecting their location). Despite the amount of power they're putting out, they seem to be limited in range to around 50 feet.
It's also pretty satisfying to see http://www.novatel.com/assets/gajt/pdf/gajt-white-paper.pdf which indicates that the solution I came up with (directional antennas with nulls pointed at the interference sources) is a solid strategy for mitigating jamming.
Modern GNSS receivers with modern multi-band antennas can track hundreds of satellites simultaneously across all the various GNSS systems including GPS, GLONASS, GALILEO, etc....
This is how they build RTK surveying equipment, and they can have their own RTK reference point that uses statistical averaging over time to get accuracy down to the centimeter range or below, and then rebroadcast that to the local RTK rover nodes. There are multiple correction systems available that you can subscribe to, some of which can transmit their corrections via 4G/LTE/5G or other radio band communications, so that you don't need your own RTK reference for your rover units.
For good RTK equipment, you can easily pay $40k or more, but if you look around you can find some equipment that costs less than $1000. My current favorite is the SparkFun GPS RTK Express Kit, although you need a pair of them if you want to do your own RTK reference point and you don't subscribe to one of the various other correction systems.
That used to be done. They're called "psuedolites". You'd put one somewhere on your property. It listens to the GPS satellites, and over a few hours, gets its own location very accurately by averaging error. Then it rebroadcasts a correction signal to cooperating GPS receivers nearby. Some airports have used these. They're called "ground based augmentation systems" in aviation.
There are agricultural versions. Deere sells some.[1] They call this "RTK".
> One of the most accurate solution is to keep a GPS receiver on a well known location.
I wonder if a network of connected devices with a GPS-disciplined SDR receiver and a regular GPS one could work both as this project does plus as passive radar like the software that was recently taken down. The purpose would be to have much wider coverage along with redundancy and error correction.
The little five antenna array can even attach on the roof of a car for a handy ground plane. Prob not a good idea to drive with it out there tho.
reply