Skip to content

hcab14/gr-kiwisdr

Repository files navigation

gr-kiwisdr


Overview

Gnuradio OOT module for the KiwiSDR

Requirements

  • C++-11 compiler
  • git, cmake, swig, doxygen
  • gnuradio 3.9 and above (for gnuradio 3.7 use the maint-3.7 branch)
  • boost (libboost-pythondev, libboost-dev and libcppunit-dev) >= 1.45; for the KiwiSDR websocket client boost >=1.65 is needed (may or may not work with earlier boost versions)
  • liborc-dev (needed for gnuradio 3.9)
  • libzmq3-dev

Installation

Do not forget to use the option --recurse-submodules

    git clone --recurse-submodules https://github.com/hcab14/gr-kiwisdr.git
    cd gr-kiwisdr
    mkdir build
    cd build
    cmake ../
    make install

For some reason on OSX the following command is needed:

    volk_profile -R volk_16u_byteswap

For building without the KiwiSDR websocket client (no dependency on recent boost version):

    cmake -DENABLE_KIWI_WS_CLIENT=OFF ../

Working installations

maint-3.7 branch

  • GNURadio master@219eae9 + boost-1.68 (OSX)
  • GNURadio v3.7.13.4 + boost-1.66.0_3 (OSX)
  • GNURadio v3.7.11 on Ubuntu 18.10 and 18.04 (Linux Mint 19.1)

master branch

  • GNURadio 3.9 master branch on Ubuntu 20.04
  • GNURadio-3.9 from PPA

GNURadio blocks

  1. kiwisdr/kiwisdr: KiwiSDR websocket client providing a source of timestamped IQ samples
    • uses the boost.beast websocket library
    • Only IQ mode is supported for now
    • Missing KiwiSDR configuration options (user,pw,AGC,...)
    • May not work with older boost versions distributed with GNURadio packages
  2. kiwisdr/kiwi_wav_source: source block for reading KiwiSDR IQ files with GNSS timestamps
    • the wav files need to have been be recorded with kiwirecorder.py -w ..., i.e., contain GNSS time stamps
  3. kiwisdr/align_streams: alignment of IQ streams coming from the same KiwiSDR (this is work in progress)
  4. kiwisdr/coh_stream_synth: coherent combination of three KiwiSDR IQ streams into a single IQ stream (this is work in progress)

Usage

See