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
Implementation of Heterogeneous Graph Attention Network

HetGAN Implementation of Heterogeneous Graph Attention Network This is the code repository of paper "Prediction of Metro Ridership During the COVID-19

5 Dec 28, 2021
Code release for ICCV 2021 paper "Anticipative Video Transformer"

Anticipative Video Transformer Ranked first in the Action Anticipation task of the CVPR 2021 EPIC-Kitchens Challenge! (entry: AVT-FB-UT) [project page

Facebook Research 123 Dec 13, 2022
Data manipulation and transformation for audio signal processing, powered by PyTorch

torchaudio: an audio library for PyTorch The aim of torchaudio is to apply PyTorch to the audio domain. By supporting PyTorch, torchaudio follows the

1.9k Dec 28, 2022
Train neural network for semantic segmentation (deep lab V3) with pytorch in less then 50 lines of code

Train neural network for semantic segmentation (deep lab V3) with pytorch in 50 lines of code Train net semantic segmentation net using Trans10K datas

17 Dec 19, 2022
Code for the paper "Query Embedding on Hyper-relational Knowledge Graphs"

Query Embedding on Hyper-Relational Knowledge Graphs This repository contains the code used for the experiments in the paper Query Embedding on Hyper-

DimitrisAlivas 19 Jul 26, 2022
codes for IKM (arXiv2021, Submitted to IEEE Trans)

Image-specific Convolutional Kernel Modulation for Single Image Super-resolution This repository is for IKM introduced in the following paper Yuanfei

Yuanfei Huang 9 Dec 29, 2022
A program to recognize fruits on pictures or videos using yolov5

Yolov5 Fruits Detector Requirements Either Linux or Windows. We recommend Linux for better performance. Python 3.6+ and PyTorch 1.7+. Installation To

Fateme Zamanian 30 Jan 06, 2023
🔥 Real-time Super Resolution enhancement (4x) with content loss and relativistic adversarial optimization 🔥

🔥 Real-time Super Resolution enhancement (4x) with content loss and relativistic adversarial optimization 🔥

Rishik Mourya 48 Dec 20, 2022
Libraries, tools and tasks created and used at DeepMind Robotics.

Libraries, tools and tasks created and used at DeepMind Robotics.

DeepMind 270 Nov 30, 2022
ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information

ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information This repository contains code, model, dataset for ChineseBERT at ACL2021. Ch

413 Dec 01, 2022
Implementation of Retrieval-Augmented Denoising Diffusion Probabilistic Models in Pytorch

Retrieval-Augmented Denoising Diffusion Probabilistic Models (wip) Implementation of Retrieval-Augmented Denoising Diffusion Probabilistic Models in P

Phil Wang 55 Jan 01, 2023
A PyTorch Toolbox for Face Recognition

FaceX-Zoo FaceX-Zoo is a PyTorch toolbox for face recognition. It provides a training module with various supervisory heads and backbones towards stat

JDAI-CV 1.6k Jan 06, 2023
Official implementation of VaxNeRF (Voxel-Accelearated NeRF).

VaxNeRF Paper | Google Colab This is the official implementation of VaxNeRF (Voxel-Accelearated NeRF). VaxNeRF provides very fast training and slightl

naruya 132 Nov 21, 2022
CNN Based Meta-Learning for Noisy Image Classification and Template Matching

CNN Based Meta-Learning for Noisy Image Classification and Template Matching Introduction This master thesis used a few-shot meta learning approach to

Kumar Manas 2 Dec 09, 2021
VISNOTATE: An Opensource tool for Gaze-based Annotation of WSI Data

VISNOTATE: An Opensource tool for Gaze-based Annotation of WSI Data Introduction Requirements Installation and Setup Supported Hardware and Software R

SigmaLab 1 Jun 14, 2022
EfficientNetV2 implementation using PyTorch

EfficientNetV2-S implementation using PyTorch Train Steps Configure imagenet path by changing data_dir in train.py python main.py --benchmark for mode

Jahongir Yunusov 86 Dec 29, 2022
This is an official implementation for "SimMIM: A Simple Framework for Masked Image Modeling".

SimMIM By Zhenda Xie*, Zheng Zhang*, Yue Cao*, Yutong Lin, Jianmin Bao, Zhuliang Yao, Qi Dai and Han Hu*. This repo is the official implementation of

Microsoft 674 Dec 26, 2022
Implementation of CrossViT: Cross-Attention Multi-Scale Vision Transformer for Image Classification

CrossViT : Cross-Attention Multi-Scale Vision Transformer for Image Classification This is an unofficial PyTorch implementation of CrossViT: Cross-Att

Rishikesh (ऋषिकेश) 103 Nov 25, 2022
Our CIKM21 Paper "Incorporating Query Reformulating Behavior into Web Search Evaluation"

Reformulation-Aware-Metrics Introduction This codebase contains source-code of the Python-based implementation of our CIKM 2021 paper. Chen, Jia, et a

xuanyuan14 5 Mar 05, 2022
Learning Confidence for Out-of-Distribution Detection in Neural Networks

Learning Confidence Estimates for Neural Networks This repository contains the code for the paper Learning Confidence for Out-of-Distribution Detectio

235 Jan 05, 2023