Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hcab14/gr-kiwisdr

KiwiSDR gnuradio source
https://github.com/hcab14/gr-kiwisdr

boost-beast cplusplus-11 gnuradio hf-monitoring hf-radio kiwisdr websocket-client

Last synced: 5 days ago
JSON representation

KiwiSDR gnuradio source

Awesome Lists containing this project

README

        

# gr-kiwisdr
----

## Overview

Gnuradio OOT module for the [KiwiSDR](http://kiwisdr.com/)

## 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](https://github.com/gnuradio/gnuradio/commit/219eae9a9c2ef7644450e71d19f8f54c12e1f9cc) + 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](https://www.boost.org/doc/libs/master/libs/beast/doc/html/index.html) 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
* [examples/kiwisdr_rx.grc](https://github.com/hcab14/gr-kiwisdr/blob/master/examples/kiwisdr_rx.grc) (KiwiSDR websocket IQ client)
* [examples/test_align.grc](https://github.com/hcab14/gr-kiwisdr/blob/master/examples/test_align.grc) (KiwiSDR wav file readers + timestamped IQ stream alignment)
* [examples/test_coh_stream_synth.grc](https://github.com/hcab14/gr-kiwisdr/blob/master/examples/test_coh_stream_synth.grc) (KiwiSDR wav file readers + coherent stream symthesis block)