Abstract

This paper presents the implementation of a GPS L1 C/A signal receiver using software-defined radio technology. A HackRF One SDR operating at 10 Msps sample rate was used to capture GPS signals at 1575.42 MHz. A Python-based data acquisition system was developed using the python hackrf library to interface with the hardware and collect raw I/Q samples. The captured signals were processed using GNSS-SDR, an open-source GNSS receiver. The system successfully acquired nine distinct GPS satellites across multiple constellation blocks (IIR, IIR-M, IIF, and III), demonstrating the feasibility of low- cost GPS reception using open-source tools. However, persistent tracking beyond 16 seconds could not be achieved, preventing ephemeris decoding and position computation. Analysis identified the HackRF’s crystal oscillator (∼20 ppm) as the primary limitation, as GPS tracking requires frequency stability below 1 ppm. This finding is consistent with results reported by Castillo Delacroix et al., who observed the same failure with HackRF while achieving successful acquisition using an RTL-SDR v3 with built-in TCXO. This work establishes the viability of SDR- based GPS signal acquisition and characterizes the hardware constraints that must be addressed for complete position solu- tions.

Read the full paper of the project at Project Paper

The implementation code of the project are at GPSReceiver.