Sharing SDR stream over the network

After long hours of development, I have successfully finished a first release of the “SDR Server” (formerly known as “SDR Cloud” system but this name was also chosen by other team).

This software solution is able to share customizable (and programmable) IQ Streams of your favorite radio over the network for remote listening or processing. Currently only my own SDR software can handle the remote connection, but a “extio like” DLL is under work.

SDR streams can be remotely reprocessed and re-dispatched as one “sdr server” can receive and share streams coming from other servers. A script engine accepts JSON requests or script snippets to change its behavior.

Basically the protocol relies on HTTP and uses “application/content-stream” content-types. It means the streams can by sent across network proxies and standard TCP/IP equipment. Samples are sent using a VITA49 like format, with samples encoded as INTs or FLOATs depending on bandwidth.

Here is an example use case :

share IQ stream

An AirSpy USB receiver is attached to the PC box running the SDR Server software. This AirSpy is fitted with a SV1AFN upconverter, so it is able to receive bunches of 10 MHz of HF at once.

For this demo, the SDR is tuned at 12 MHz, so it can process from 7 MHz to 12 MHz. The server is configured so as to create two IQ substreams :

  1. One stream from 10.100 to 10.150 MHz, called “30m”
  2. A second stream from 14.000 to 14.300, called “20m”

As the two streams fall inside the 10 MHz of the AirSpy, they can be served over the network simultaneously… That’s what I show below, where two instances of the gkSDR receiver are running on the same remote machine and processing the two streams at the same time.

SDR Server vue

 

This sharing server is fully web controlled and embeds a script engine to set and configure the streams and possible connections. Just to illustrate what can be done, here is the relevant section of the “boot script” used to declare the streams used in this example :

Basically the boot script checks what hardware is connected and decides what to do.

Note that the server accepts REST queries through a JSON over http mechanism so the settings could have been set manually.

For example, the remote SDR can be tuned with a request like :

http://<server IP>/api/stream/RX:1/tune/14.235

Each stream can be shared over multiple clients, as long as the server running the software as enough processing power. To avoid central frequency tuning conflicts, the boot code can decide if the band is locked (as in this example), or not.

The scripting engine allows to program specific local processing on any band, even while users are streaming on their side. Among many features, the scripting engine can:

  • Capture bunches of spectrum and do some DSP locally (FFT, power, etc.),
  • Post/Get results over http to remote systems,
  • Trigger local recording of sub bands,
  • Share set of “memories”,
  • Manage client-to-client chats,
  • encrypted streams,
  • etc.

Work in progress :

  • Remote stream synchronization,
  • Remote stream aggregation,
  • Remote stream decoding (analog linear modulations or digital modulations).

This software to share SDR IQ streams over the network is not Open Source and will probably not be free.

Contact me for details and availability

gkSDR 0.18 soon to be released

Version 0.18 will soon be released. Among various new features :

  1. Available in 32 bits with specific installer (runs now on Windows XP)
  2. Several enhancements and performance improvements, works better with old processors and now supports 10 MHz or more bandwidth for AirSpy or BladeRF (requires “good” PC)
  3. Memory management now available

gkSDR 0.18

Posted in SDR

gkSDR 0.17 Available for download

Windows 64 bits edition

vue_10MHz

Latest release of gkSDR is now available with Drivers for the following hardware :

  • RTL SDR dongles,
  • BladeRF from Nuand,
  • AirSpy
  • HackRF
  • SigFOX
  • Perseus SDR

Currently documentation in PDF is only available in french. Feel free to contact me in case you need help !

Donwload here : http://sdr.f4gkr.org/download/gkSDR64_Install.exe (Qt installator, requires internet connection for Download). If you have already installed previous release, just look for “maintenancetool.exe” in program folder and go for update.

gkSDR has unique features, like :

  • Dual receiver
  • Integrated map
  • Dual hardware support for ADSB monitoring
  • Measurement mode to record a narrow band for matlab processing
  • MP3 recording with dual-receiver support
  • XMLRPC support for remote operation
  • GPS Support for time and position
  • Automatic download of HF Broadcast programs

vue_hf_radiowx

 

Some translations may be missing, please do not hesitate to contact me !

Drop me a mail : sylvain<dot>azarian<at>gmail<dot>com

 

Posted in SDR

gkSDR 0.16 now available for english users (windows 64 bits only today)

I am pleased to release the english edition of my SDR software called “gkSDR 0.16″ for english users.

The user interface is fully translated, some tricks still pending for complete internationalization (the Terrain Elevation Model included in the download is only France so far, get in touch with me for other locations).

This software runs under linux and windows, currently only the binary for windows 64 bits is available for download here : http://sdr.f4gkr.org/download/gkSDR64_Install.exe

Please join the gkSDR Google Group  for support

RXA

Currently supported hardware : see http://www.f4gkr.org/gksdr/materiel-compatible/ (french)

Posted in SDR