GNSS Reception with Clone SDR Board

We love seeing the incredible work many RF enthusiasts manage to pull off — they make it look so easy! Though RF can be tricky, it’s not quite the voodoo black art that it’s often made out to be. Many radio protocols are relatively simple and with tools like gnuradio and PocketSDR you can quickly put together a small system to receive and decode just about anything.

[Jean-Michel] wanted to learn more about GNSS and USB communication. Whenever you start a project like this, it’s a good idea to take a look around at existing projects for designs or code you can reuse, and in this case, the main RF front-end board is taken from the PocketSDR project. This is then paired with a Cypress FX2 development board, and he re-wrote almost all of the PocketSDR code so that it would compile using sdcc instead of the proprietary Keil compiler. Testing involved slowly porting the code while learning about using Python 3 to receive data over USB, and using other equipment to simulate antenna diversity (using multiple antennas to increase the signal-to-noise ratio):

Testing antenna diversity

The main board uses two MAX2771 GNSS front-ends, which filter and convert the received signals to either a digital output or optionally as I and Q outputs for conversion with discrete ADCs. This data is then read by the 8051 core on the FX2, and the data is sent over USB to maintain a fast and reliable stream. On the PC side, this can be decoded using the original PocketSDR software, or one can build a decoder using gnuradio.

The result is a working GNSS decoder. If you would like to see more detail about the project, [Jean-Michel] put together a YouTube video talking about his work in cloning and porting the code, which you can see below:

Leave a Reply

Your email address will not be published. Required fields are marked *