SuperSDR: multiplatform KiwiSDR + CAT transceiver integrator

Overview

SuperSDR

SuperSDR integrates a realtime spectrum waterfall and audio receive from any KiwiSDR around the world, together with a local (or remote) controlled CAT transceiver. There are three main items that may be independently controlled:

  • the KIWI WATERFALL, that may be linked to the CAT radio or to the mouse/keyboard tuning;
  • the KIWI RECEIVER, that may be tuned everywhere on the HF bands;
  • the CAT radio that serves as the main tuning method.

All three may be strictly intelinked, or set up separately depending on the operating convenience:

  • the WF is usually tuned by the VFO on the CAT radio to serve as a panadapter and the KIWI RX may be turned off if not necessary;
  • the KIWI RX may be tuned on a secondary frequency with keyboard and mouse or with the VFO, then the CAT radio is unlinked from the RX and is free to explore other frequencies;
  • the RX and the CAT radio are both active on different frequencies while you can explore the bands moving around the WF window and its span. In the future I plan to support multiple KIWI channels both for the WF and the RX.

SuperSDR in action

Prerequisites:

Install Python 3 along with PYGAME, PYAUDIO, MATPLOTLIB and NUMPY/SCIPY, or whatever it asks when breaking apart upon launch ;) If you use Linux I hope I don't have to tell you how to install librearies and Python components: I presonally use a Arch based distro and pip to keep everything updated.

On Windows:

There is now a preliminary Windows executable thanks to Giovanni Busonera. This version doesn't need any library nor Python environment. The Windows executable will always lag a bit during the development.

I don't personally use Windows, but a beta tester let me know that you can run it there:

  • Install miniconda and the proposed version of Python (3.8)
  • Now open the miniconda powershell to install the packages as below:
    • conda config --add channels conda-forge
    • conda install pyaudio
  • then use pip on a powershell:
    • pip install numpy
    • pip install scipy
    • pip install matplotlib
    • pip install pygame

Use:

SuperSDR tutorial

There is now the possibility to launch the program with no command line options and select the kiwi server at the start or change it at runtime (still buggy, but it mostly works). To use the CAT, at least for now, you have to specify it from the command line.

To launch the program:

./supersdr.py --kiwiserver 192.168.1.82 --kiwiport 8073 -z 9 -f 198 -w password

to just explore your local kiwisdr, or:

./supersdr.py --kiwiserver sibamanna.duckdns.org --kiwiport 8073 -S 192.168.1.89 -P 4532 -z 9 -f 198

to connect to a remote kiwi AND to a local CAT radio for which rigctld is running on the server located at 192.168.1.89.

Just use --help to show all available command line options.

Main key commands during use are shown by pressing H or moving the mouse to the HELP label on the bottom right.

When connected to both a kiwisdr and to a CAT radio any click on the waterfall synchronizes the radio and, vice versa, moving the VFO on the radio, changes the tuning on the waterfall causing the WF window to follow when outside the span.

Have fun!

73, marco / IS0KYB

Comments
  • password - time limit override

    password - time limit override

    I issue the following command to start (password changed below)

    Connection is stated ok and rigctld work as expected but the timelimit override password does not work - it times out

    supersdr.py -w xxxxxxxx --kiwiserver vk6qs.proxy.kiwisdr.com --kiwiport 8073 -S 127.0.0.1 -P 4532

    On the same kiwi this http works fine

    http://vk6qs.proxy.kiwisdr.com:8073/?password=xxxxxxxx

    opened by mshurmer 4
  • run error

    run error

    $ python3 supersdr.py --kiwiserver 192.168.1.86 --kiwiport 8073 -z 9 -f 198
    pygame 1.9.6
    Hello from the pygame community. https://www.pygame.org/contribute.html
    Traceback (most recent call last):
      File "/home/dan/inst/supersdr/supersdr.py", line 47, in <module>
        sdrdisplay = pygame.display.set_mode((disp.DISPLAY_WIDTH, disp.DISPLAY_HEIGHT), 
    TypeError: 'vsync' is an invalid keyword argument for this function
    
    opened by ok1hra 2
  • error on windows 10

    error on windows 10

    Hello - I get the following error when starting

    C:\Users\mshur\Downloads\WinSuperSDR\WinSuperSDR>supersdr.exe v pygame 2.0.1 (SDL 2.0.14, Python 3.8.5)

    Please enter: hostname [port] [password] vk6qs.proxy.kiwisdr.com vk6qs.proxy.kiwisdr.com 8073 8 14200 KiwiSDR Server: vk6qs.proxy.kiwisdr.com:8073 Zoom factor: 8 Actual frequency: 14141.407012939453 kHz Trying to contact vk6qs.proxy.kiwisdr.com... Socket open... Waterfall data stream active... Starting to retrieve waterfall data... 14200 USB 30 3000 Trying to contact server... Audio data stream active... Filling audio buffer... kiwi sound not started! server closed the connection cleanly Traceback (most recent call last): File "supersdr.py", line 295, in NameError: name 'exit' is not defined [6576] Failed to execute script supersdr

    opened by mshurmer 2
  • Should auto select the proper modulation for the given band.

    Should auto select the proper modulation for the given band.

    The application should provide an 'AUTO" mode to auto select the modulation, i.e.:

    • "AUTO" mode is selected
    • frequency is 7100, LSB is selected
    • frequency is switched to 14100, mode should switch to USB

    "AUTO" is disabled if the operator manually change the mode.

    opened by mgaggero 1
  • New useful features

    New useful features

    Hi, I'm using the SDR with the new features and it looks fantastic. I don't wanna bother you, but I think that some other features could be useful and can increase definitely the donation rate :-). I identified these most important ones (in my opinion):

    • make the filter passband variable
    • show the current frequency of the mouse pointer
    • enabling the mouse wheel for zooming

    Thank you again, Bye Giovanni

    opened by Strato75 1
  • Volume control and S-meter features

    Volume control and S-meter features

    Hi, this project is outstanding but in my opinion, adding a volume control and the S-meter could make it perfect :-). Is it possible to add those features? Giovanni

    opened by Strato75 1
  • New API for Kiwi v1.359+ to reduce waterfall artifacts and enable spectrum leveling (CIC comp)

    New API for Kiwi v1.359+ to reduce waterfall artifacts and enable spectrum leveling (CIC comp)

    opened by jks-prv 0
  • Mute if radio is transmitting

    Mute if radio is transmitting

    Hello,

    Would it be possible to have the audio mute if the radio connected by CAT is transmitting. I think you might have looked at this as an option some time ago. Thanks

    Matt

    opened by mshurmer 1
  • Frequency

    Frequency

    Nice piece of software, tracks my K3 and gives me real time waterfall.

    Some minor problems: CW frequency is given as the bfo frequency, not the carrier frequency so my K3 is off by the sidetone. Ok on SSB and AM.

    Ideally software should use defaults on startup, eg kiwisdr.local:8073 and rigctld on localhost:4532

    The connection to dxcluster is superfluous and are better served by other software.

    73 de Olaf - LA3RK

    opened by la3rk 2
Releases(v3.14)
  • v3.14(May 20, 2022)

    Several bugs fixed, notably:

    • audio buffer now works as it should, no more clicks and pops;
    • pulseaudio stream now closes correctly when changing server or disabling second rx (thanks Luigi Pacella);
    • private kiwis are accessible now;
    • workaround for hamlib bug vfo a/b and cleaned some code;
    • fixed the EIBI labeling behavior;

    New features:

    • QRZ.COM lookup now on by default within the logger;
    • dynamic window resize;
    • added ADC overflow indicator;
    • improved visuals.

    --> Windows executable added

    73, marco IS0KYB

    Source code(tar.gz)
    Source code(zip)
    WinSuperSDR_3.14.zip(63.17 MB)
  • v3.13(Mar 31, 2022)

  • v3.12(Mar 9, 2022)

  • v3.11b(Feb 21, 2022)

  • v3.11(Feb 18, 2022)

    Hi, big release for a smallish 0.01 version difference! I just added the Logger subsystem so you can log new QSOs interactively and search for old ones. It saves data in a simple and human readable/editable log file: no databases! Even if you have a log with 100K QSOs it will be something like 10MB... The graphical interface has been optimized and several small bugs corrected: now the red/green colors of the MAIN/SUB RX make sense. There is still something to do when CAT is active. The logger dialogs use TKinter, so a new dependence... sorry, it would have been really ugly to implement them in SDL/PYGAME from scratch. I'll convert the KIWI selection dialog too in the near future.

    SLOW/FAST tuning mode is now usable by pressing CONTROL/SHIFT and the arrows. I also lowered the CW pitch to 500Hz, if you don't like it, just change the constant value in the utils python file ;)

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v3.1(Feb 15, 2022)

    Hi, this version should be stable. I fixed bugs regarding:

    • the memory system,
    • the audio recording system,
    • the audio buffer size, and the desyncing over long times due to fractional audio sampling of the kiwis,
    • much improved DXCLUSTER client and spot management/visualization (new colors showing spot age),
    • new command line option to increase window size (1920 goes full screen),
    • deep code cleanup,
    • sub-khz resolution for command line frequency,
    • improved s-meter behavior.
    • added the possibility to disable the DXCLUSTER client without losing the accumulated spots (P shortcut).

    Enjoy!

    73, marco / IS0KYB

    Source code(tar.gz)
    Source code(zip)
  • v3.0beta(Jan 31, 2022)

  • v2.1(May 23, 2021)

    Hi! Introducing several new features and bugfixes.

    • The main new feature is dual receive from the same or from two different kiwis. To activate it on the same kiwi, just press Y at runtime, pressing Y again switches A/B VFOs. You can independently change all RX parameters and audio volume. To turn off the second receiver, you may either press M to mute it or press SHIFT-Y. To activate the 2nd RX from a different kiwi, just press Q (to select a different kiwi) and it will be stored in the permanent Kiwi repository saved to disk. Now that your different kiwi is stored with a number, lets's say NUMBER 1, you can activate the 2nd rx by pressing Q, then R1 and ENTER. Now pressing Y will contact the nr. 1 receiver and open it as the 2nd rx;
    • Another cool feature is temporal averaging to detect extremely weak signals (a bit in the spirit of Leif Asbrink's LINRAD): you may increase (G key) or reduce (H) the averaging. Keep in mind that an averaging of 100X produces a frame rate of one hundredth, so it may be useful to monitor the band for an extended time;
    • Colormap fine tuning: up to now the colormap was automatically and dynamically set up. For most applications it was fine, but to really exploit the averaging you can now change the upper (lower) limits by pressing , and . (+ SHIFT respectively). This parameters are visible in the upper left part of the spectrum.
    • DX cluster is now much better integrated and the graphical presentation is much better;
    • Click and drag tuning on the spectrum display, with visual freq shift indicator.

    73! marco / IS0KYB

    Source code(tar.gz)
    Source code(zip)
    WinSuperSDR_v2.1.zip(61.62 MB)
  • v2.0(May 8, 2021)

    In this release I fixed several bugs and unintended behavior, entirely reviewed the interface, added the panadapter on top of the waterfall, added the audio recording feature and the possibility to change kiwi server at runtime and at the start. Please let me know of any bug you find!

    Thanks! marco / IS0KYB

    Source code(tar.gz)
    Source code(zip)
    WinSuperSDR.zip(37.18 MB)
  • v1.1beta(May 1, 2021)

    This release features several new features and bugfixes. The code has been thoroughly refactored following a more object-oriented style even if there is still a lot of work to do. The user can now choose at runtime which operating mode to use: SYNC or not. SYNC means that CAT and KIWI tuning are linked and every change on the real radio or the supersdr interface will change the other. Disabling SYNC frees the CAT VFO from the KIWI RX frequency/mode and the waterfall continues to work as a panadapter for CAT and the KIWI RX will act as a second receiver on a monitor frequency. The two receivers are resyncable to converge again on the same freq. Memories are now implemented as a circular buffer: you press W and store, press R repeatedly and you cycle through them. 10 memories are available, the oldest will be erased if you store more than 10.

    We also feature a new Windows release

    Source code(tar.gz)
    Source code(zip)
    WinSuper_mainSDR.zip(37.02 MB)
  • 1.0(Apr 24, 2021)

    This is a pre-release. It may contain several bugs, but it is mostly stable and useful. Basic functions have been implemented.

    There is an experimental Windows version that you may try without having to install any library.

    Have fun!

    marco / IS0KYB

    Source code(tar.gz)
    Source code(zip)
    WinSuperSDR.zip(61.45 MB)
Owner
Marco Cogoni
A physicist with too many interests
Marco Cogoni
An Open-Source Toolkit for Prompt-Learning.

An Open-Source Framework for Prompt-learning. Overview • Installation • How To Use • Docs • Paper • Citation • What's New? Nov 2021: Now we have relea

THUNLP 2.3k Jan 07, 2023
Generative Adversarial Networks(GANs)

Generative Adversarial Networks(GANs) Vanilla GAN ClusterGAN Vanilla GAN Model Structure Final Generator Structure A MLP with 2 hidden layers of hidde

Zhenbang Feng 2 Nov 05, 2021
Meaningful titles for tabs and PDF downloads! Also supports tab search.

arxiv-utils If you are a researcher that reads a lot on ArXiv, you'll benefit a lot from this web extension. Renames the title of PDF page to the pape

Johnson 174 Dec 20, 2022
A face dataset generator with out-of-focus blur detection and dynamic interval adjustment.

A face dataset generator with out-of-focus blur detection and dynamic interval adjustment.

Yutian Liu 2 Jan 29, 2022
Semantic graph parser based on Categorial grammars

Lambekseq "Everyone who failed Greek or Latin hates it." This package is for proving theorems in Categorial grammars (CG) and constructing semantic gr

10 Aug 19, 2022
NVIDIA Deep Learning Examples for Tensor Cores

NVIDIA Deep Learning Examples for Tensor Cores Introduction This repository provides State-of-the-Art Deep Learning examples that are easy to train an

NVIDIA Corporation 10k Dec 31, 2022
An implementation of IMLE-Net: An Interpretable Multi-level Multi-channel Model for ECG Classification

IMLE-Net: An Interpretable Multi-level Multi-channel Model for ECG Classification The repostiory consists of the code, results and data set links for

12 Dec 26, 2022
WiFi-based Multi-task Sensing

WiFi-based Multi-task Sensing Introduction WiFi-based sensing has aroused immense attention as numerous studies have made significant advances over re

zhangx289 6 Nov 24, 2022
PyTorch implementation of PSPNet segmentation network

pspnet-pytorch PyTorch implementation of PSPNet segmentation network Original paper Pyramid Scene Parsing Network Details This is a slightly different

Roman Trusov 532 Dec 29, 2022
Do you like Quick, Draw? Well what if you could train/predict doodles drawn inside Streamlit? Also draws lines, circles and boxes over background images for annotation.

Streamlit - Drawable Canvas Streamlit component which provides a sketching canvas using Fabric.js. Features Draw freely, lines, circles, boxes and pol

Fanilo Andrianasolo 325 Dec 28, 2022
KSAI Lite is a deep learning inference framework of kingsoft, based on tensorflow lite

KSAI Lite is a deep learning inference framework of kingsoft, based on tensorflow lite

80 Dec 27, 2022
Easy genetic ancestry predictions in Python

ezancestry Easily visualize your direct-to-consumer genetics next to 2500+ samples from the 1000 genomes project. Evaluate the performance of a custom

Kevin Arvai 38 Jan 02, 2023
The Incredible PyTorch: a curated list of tutorials, papers, projects, communities and more relating to PyTorch.

This is a curated list of tutorials, projects, libraries, videos, papers, books and anything related to the incredible PyTorch. Feel free to make a pu

Ritchie Ng 9.2k Jan 02, 2023
This script runs neural style transfer against the provided content image.

Neural Style Transfer Content Style Output Description: This script runs neural style transfer against the provided content image. The content image m

Martynas Subonis 0 Nov 25, 2021
ROS-UGV-Control-Interface - Control interface which can be used in any UGV

ROS-UGV-Control-Interface Cam Closed: Cam Opened:

Ahmet Fatih Akcan 1 Nov 04, 2022
Artificial Intelligence search algorithm base on Pacman

Pacman Search Artificial Intelligence search algorithm base on Pacman Source The Pacman Projects by the University of California, Berkeley. Layouts Di

Day Fundora 6 Nov 17, 2022
Groceries ARL: Association Rules (Birliktelik Kuralı)

Groceries_ARL Association Rules (Birliktelik Kuralı) Birliktelik kuralları, mark

Şebnem 5 Feb 08, 2022
ConvMAE: Masked Convolution Meets Masked Autoencoders

ConvMAE ConvMAE: Masked Convolution Meets Masked Autoencoders Peng Gao1, Teli Ma1, Hongsheng Li2, Jifeng Dai3, Yu Qiao1, 1 Shanghai AI Laboratory, 2 M

Alpha VL Team of Shanghai AI Lab 345 Jan 08, 2023
Implementation of ETSformer, state of the art time-series Transformer, in Pytorch

ETSformer - Pytorch Implementation of ETSformer, state of the art time-series Transformer, in Pytorch Install $ pip install etsformer-pytorch Usage im

Phil Wang 121 Dec 30, 2022
PyTorch implementation of neural style transfer algorithm

neural-style-pt This is a PyTorch implementation of the paper A Neural Algorithm of Artistic Style by Leon A. Gatys, Alexander S. Ecker, and Matthias

770 Jan 02, 2023