To give a recent (as of now) reference:
According to this paper quoted below, a set of 4 GPS receivers connected to independent antennas can be used to determine attitude and:
"To the authors’ knowledge, GAP also represents the first practical demonstration of dual-frequency-based attitude determination in space.[...] attitude solutions with 0.1–0.3° precision can be achieved in the GAP data processing. "
(By *"data processing" he means it's not done onboard)
With a few caveats though, such as:
"precise orbit determination of CASSIOPE using GPS observations can achieve decimeter-level accuracy during continued operations but suffers from onboard and mission restrictions that limit the typical data availability to less than 50% of each day and induce regular long-duration gaps of 4–10 h."
Yikes. Admittedly, this was a mission to test a low-cost GPS receivers.
The CASSIOPE minisatellite was launched on Sept. 29, 2013, so we are talking flight-proven performance (allegedly)
To give a spec on the receivers:
"NovAtel OEM4-G2L receiver (Fig. 2) is a miniature GPS receiver offering L1 C/A and L2 P(Y) tracking of up to 12 satellites. It exhibits a small form factor
(60 mm×100 mm) and power consumption (2.5 W) which are well below those of established space receivers [...] Measurements are nominally provided at a 1-Hz data rate by receivers GPS-0 to GPS-3 for orbit and attitude determination"
Sadly:
"The GAP-A experiment onboard CASSIOPE is specifically designed to study GPS-based attitude determination using observations from three concurrently operated receivers. GAP-A was configured to optionally perform coarse real-time attitude determination onboard the spacecraft (Kim and Langley 2007), but while this feature operated flawlessly in ground testing, GAP failed to respond to data requests on orbit. Nevertheless, raw GAP-A data could still be downloaded."
Furthermore:
"GPS attitude determination in space was first demonstrated in the early 1990s as part of the RADCAL (Radar Calibration) mission and was later applied on a variety of other missions such as APEX, REX-II, UoSat-12, TopSat, and Flying Laptop (see, e.g., Georgi 2017; Hauschild et al. 2019, and references therein). On the International Space Station (ISS), a four-antenna GPS receiver system coupled with an inertial measurement unit is used to provide attitude information on a routine basis. Compared to the use of GPS receivers for position and timing, GPS attitude determination of satellites has, however, remained a niche application due to the higher system complexity and inherent limitations in the achievable performance, which cannot compete with well-established star sensors"
I've tried checking for GPS units built by "serious, big companies". I recalled that this 1997 paper by Thales claimed they had developed a GPS with the performance summarized in a table below, taken from a brochure from 2012. This kind of brochure is subject to change without previous notice, and I couldn't find an updated version.
Apparently, a unit of the GPS Tensor by Thales flew onboard the SAC-C satellite as an experiment, and this satellite also had star trackers.
In conclusion
Due to the complexity and limitations of star sensors, I was expecting GPS-based attitude sensors to become the go-to option for low-accuracy attitude determination systems. It seems that even today, these sensors are not something I would recommend to anyone.
1 Montenbruck, O., Hauschild, A., Langley, R. B., & Siemes, C. (2019). CASSIOPE orbit and attitude determination using commercial off-the-shelf GPS receivers. GPS Solutions, 23(4). doi:10.1007/s10291-019-0907-2
[2] Marradi, L., & Fossati, D. (1997, February). The GPS Tensor™ Receiver Development. In Spacecraft Guidance, Navigation and Control Systems (Vol. 381, p. 311).