Giter VIP home page Giter VIP logo

pocketsdr's Introduction

PocketSDR - An Open-Source GNSS SDR Front-end Device, ver. 0.1

Overview

PocketSDR is an open-source SDR (software defined radio) based GNSS (Global Navigation Satellite System) RF front-end device. It supports almost all signal bands for GPS, GLONASS, Galileo, QZSS, BeiDou, NavIC and SBAS.

PocketSDR consists of 2 CH Maxim MAX2771 GNSS RF front-end IC (LNA, mixer, filter, ADC, frequency synthesizer) and Cypress EZ-USB FX2LP USB 2.0 controller. The front-end CH1 is dedicated for GNSS L1 band (1525 - 1610 MHz) and CH2 is for GNSS L2/L5/L6 band (1160 - 1290 MHz).

The frequency of the reference oscillator (TCXO) is 24.000 MHz and ADC sampling frequency can be configured up to 24 MHz.

PocketSDR contains also some utility programs to configure the device, capture and dump the digitized IF (inter-frequency) data. These supports Windows, Linux and other environments.


Package Structure

PocketSDR --+-- bin     PocketSDR utility binary programs for Windows
            +-- src     PocketSDR utility source programs
            +-- conf    Configuration files for device settings
            +-- util    Windows driver installation utility (ref [3])
            +-- doc     Documents (ref {1], [2])
            +-- FW      Firmware source programs and images
            |   +-- cypress  Cypress libraries for EZ-USB firmware development
            |                (ref [4])
            +-- HW      PocketSDR CAD data and parts list for hardware
                        (*.brd and *.sch are for Eagle, *.f3d is for Fusion 360)

Installation for Windows

  • Extract PocketSDR.zip to an appropriate directory <install_dir>.

  • Attach PocketSDR to PC via USB cable.

  • Install USB driver (WinUSB) for PocketSDR.

    • Execute zadig-2.6.exe in <install_dir>\PocketSDR\util.
    • Execute menu Options - List All Devices and select "EZ-USB" (USBID 04B4 1004).
    • Select WinUSB (v6.1.xxxx.xxxxx) and Push "Replace Driver" or "Reinstall Driver".

  • Add the PocketSDR binary programs path (<install_dir>\PocketSDR\bin) to the command search path (Path) of Windows environment variables.

  • To rebuild the binary programs, you need MinGW64 and libusb-1.0 library. Refer MSYS2 (https://www.msys2.org/) for details.


Installation for Linux

  • Extract PocketSDR.zip to an appropriate directory <install_dir>.
    $ unzip PocketSDR.zip
  • Install libusb-1.0 developtment package. For Ubuntu:
    $ sudo apt install libusb-1.0-0-dev
  • Move to the source program directory, edit makefile and build utilities.
    $ cd <install_dir>/src
    $ vi makefile
    ...
    #LIBUSB = -L/mingw64/lib -llibusb-1.0
    LIBUSB = -lusb-1.0
    ...
    $ make
    $ make install
  • Add the PocketSDR binary programs path (<install_dir>/PocketSDR/bin) to the command search path.

Utility Programs

PocketSDR contains the following utility programs.

  • pocket_conf: SDR device configurator
  • pocket_scan: Scan and list USB Devices
  • pocket_dump: Capture and dump digital IF data of SDR device
  • pocket_plot.py: Plot PSD and histgrams of digital IF data

For details, refer comment lines in src/pocket_conf.c, src/pocket_scan.c, src/pocket_dump.c and src/pocket_plot.py. You need Python 3, Numpy and matplotlib to execute pocket_plot.py.


Execution Examples of Utility Programs

    $ pocket_conf conf/pocket_L1L6_12MHz.conf
    ...
    $ pocket_dump -t 10 ch1.bin ch2.bin
    ...
    $ pocket_plot.py ch1.bin -f 12 &
    $ pocket_plot.py ch2.bin -f 12 -IQ &


References

[1] Maxim integrated, MAX2771 Multiband Universal GNSS Receiver, July 2018

[2] Cypress, EZ-USB FX2LP USB Microcontroller High-Speed USB Peripheral Controller, Rev. AB, December 6, 2018

[3] Zadig USB driver installation made easy (https://zadig.akeo.ie/)

[4] Cypress, CY3684 EZ-USB FX2LP Development Kit (https://www.cypress.com/documentation/development-kitsboards/cy3684-ez-usb-fx2lp-development-kit)


History

  • 2021-10-20 0.1 1st draft version

pocketsdr's People

Contributors

tomojitakasu avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.