Important remark for all users only reading headlines:

(for whatever reason, other readers please skip)

If you intend to use the ADS-B decoder to show airplanes on the map, you MUST select a sampling rate of 2000000 in the Settings of that receiver, otherwise the ADS-B will not work! The ADS-B will currently NOT work with the Airspy R2.

Introduction

Each of the QIRX receivers ("Frontends") processes data arriving on the TCP/IP network. If you want to understand and use the various Setup scenarios of QIRX you need at least a very basic knowledge how TCP/IP works. In the following I assume you understand the term "TCP/IP socket", "Dotted IP Address" and "Port Number". This is the whole vocabulary you need to know. As TCP/IP is at the heart of the Internet, understanding these terms will help you also in a better understanding of the Internet. If you are looking for a basic and short introduction, you migh consult this internet page or that one.

Remark: Working with TCP/IP does NOT mean that you need to connect to other computers. Each computer has its "built-in" TCP/IP network called the "localhost" with its "dotted IP Address" of 127.0.0.0. QIRX is perfectly able to work with the localhost only, although a "real" network is advantageous in many cases.

Drivers, or I/Q Data Servers

Receiver hardware like RTL-SDR dongles are usually connected to a USB port of the computer. QIRX is not able to directly access these data arriving at the USB port. Therefore, QIRX needs a "driver program" for each hardware it supports, to convert these data into the TCP/IP format and send it to QIRX across a Local Area Network (LAN), which uses TCP/IP. All driver programs are provided by the installer.
This looks at first glance like a complication, but at second glance opens a flexibility not possible with "direct" USB connections.
QIRX supports the following hardware, with the corresponding driver software:
  • rtl-sdr Dongles: Driven by rtl_tcp.exe or rtl2_tcp.exe (QIRX V4 only). There are RTL-SDR dongles with different tuners, like the R820T, the E4000 or the FC0012 and more. All of them are driven by rtl_tcp.exe. A prerequisite is that the so-called Zadig driver has been installed, which is not distributed and installed by QIRX, but can be found on many places in the web. A popular site is RTL-SDR.com.
  • sdrplay Devices: Driven by RSP3_tcp.exe. The supported hardware are RSP1A, RSP2, RSPduo (currently its single tuner mode only) and the RSPdx. You must have installed this hardware by the SDRplay installation procedure.
  • Airspy Devices: Driven by ASPY_tcp.exe. The supported hardware are Airspy Mini, Airspy R2. Please note that the Airspy R2 currently does not work with the ADS-B decoder.
Remark: The driver program must run on the computer where the hardware is plugged-in. Remote scenarios are supported by QIRX. See below.

Setup Dialog

The picture shows the QIRX Setup entries as pre-configured when first run. The dialog opens on clicking the gearwheel icon on the topmost bar.



The following describes the different fields of the receiver part of the Setup dialog (Rx table).
Each row corresponds to the settings of the receiver with the number in the leftmost column.
Remark: The dialog can be opened also if receivers are running. However, running receivers are greyed and cannot be edited.
  • Column "Name": You may enter an arbitrary name for a receiver here. This name appears on the receiver page, for quick identification, but only after a restart of the program.
  • Column "Hardware": Selects the hardware to be used for the receiver. Possible entries are RTL-SDR, RSPx, Airspy.
  • Column "Driver": For a RTL-SDR receiver, you can select between rtl_tcp or rtl2_tcp. The difference is the following:
    • rtl_tcp: The driver rtl_tcp.exe is to be used. It is compatible with other applications.
    • rtl2_tcp: The driver rtl2_tcp.exe is to be used. It is currently NOT compatible with other applications. When more than one RTL-SDR dongle is connected, QIRX displays a selection dialog which device is to be used.
  • Column "Activate": If checked, the receiver is visible and runnable. If unchecked, it is invisible and cannot be used. This is useful e.g. for users not interested in multi-Rx operation.
    For this entry to become effective, QIRX must be restarted.
  • Column "Sampling Rate": Important for the demodulator to be used. Possible entries are:
    • 2000000: Necessary for ADS-B. Due to QIRX internal working it must not be used for one of the other demodulators.
      ADS-B decoding will not work with one of the other sampling rates.
    • 2048000: To be used for DAB, AM, WFM, NFM, SSB. Not for ADS-B.
    • 3000000: Airspy only. It has been introduced to replay raw files recorded with other programs using the Airspy hardware with that sampling rate during the recording (e.g. qt-dab).
    • 4096000: Possible together with a RSPx or the Airspy hardware. Cannot be used with RTL-SDR hardware.
    • 8192000: Possible together with a RSPx hardware only.
  • Column "Bit Width": Possible entries are 8 or 16 bits. Only for the RSPx. The Airspy hardware allows only 16 bits.
    Remark: The TCP/IP data rate doubles with 16 Bit compared to 8 Bit.
    Remark: For the RSP devices, the RSP3_tcp driver (see above) is able to convert to 8 Bit, thus halving the TCP/IP bandwidth.
  • Column "Autostart": If checked, the selected QIRX I/Q data server program (the "driver". e.g. rtl_tcp) is started automatically. If unchecked, it is assumed to be already running with the correct parameters. Usually, in this case it has been started manually.
    Please note: "Autostart" does NOT mean that the receiver is started automatically after having started QIRX. For live reception the blue triangle at the top of each receiver must always be clicked on.
  • Column "Autostop": If checked, the QIRX driver program is stopped automatically when the receiver is stopped. If unchecked, it continues to run and will accept new connections.
  • Column "IP Address": Pre-configured to the localhost (127.0.0.1, see picture above). Other local addresses can be used also. For remote scenarios, see below.
    Remark: The IP Address must be entered as "dotted address". QIRX does not resolve host address names. This might change in a future version.
  • Column "Port": When using the same IP Address, different receivers MUST use different port numbers. When using RTL-SDR hardware, the port numbers MUST differ by at least two, because rtl_tcp.exe uses two sockets, one for the I/Q data, and another one for commands and responses.
  • Column "Device Index": Identifies the USB index. It must be up-counted when using more than one hardware on a computer with the same QIRX driver, like the scenario described in the Install.
    The main hardware affected are the RTL-SDR dongles, where sometimes even the use of a single dongle requires a Device Index of 1 instead of 0. This remains kind of a mystery.
    With more than one RSPx devices, the count must start at 0 and be increased with other devices used on the same computer.
    No tests were made with more than one Airspy regarding the Device Index.
    Remark: In any case, using the same Device Index with the same QIRX driver for two different receivers (same computer) will NOT work.
  • Column "Remote Starter Port": Content is don't care and can be zero. The feature of automatically starting a remote driver has been deprecated.

Remote Scenario: An Example

In a "Remote Scenario" the receiving hardware is connected to another computer than the one running QIRX. This might be advantageous for a number of reasons. This remote computer does not run the QIRX software, but one or more instances of the QIRX drivers like rtl_tcp (see above). Whereas QIRX is confined to run on a Windows machine, the drivers are not. All driver programs except ASPY_tcp are available on Linux and have been tested on Debian 11.
As a result, people are running e.g. the rtl_tcp on Raspi embedded devices, perfectly suitable for the purpose.
Some examples where such a remote scenario might be useful:
  • Short Antenna Cable: It is always advantageous to have the cabling from the antenna to the receiver as short as possible, despite the fact that the drivers all support a Bias-T supply to drive e.g. a mast amplifier. Many cheap rtl-sdr dongles do not provide this facility though.
  • Antenna Location: Using an antenna together with the receiver hardware near the SDR program like QIRX will in most cases be a compromise. Having the possibility to put an antenna on the roof pairs nicely with using a remote I/Q data driver.
  • Noise Pollution: Today's working places with all of this home office stuff and large multiple computer screens have a notoriously bad reputation with respect to RF noise pollution of the environment. Using an embedded device tailord for low noise generation will definitely gain you some decibels in sensitivity.
The picture shows the settings for a local/remote scenario.



  • Rx 1: Driver for RTL-SDR runs on the localhost, 127.0.0.1. Nothing special here.
  • Rx 2: Driver for RTL-SDR runs on a remote computer, IP address 192.168.0.1234. Obviously intended for ADS-B, as the sampling rate is 2000000. Autostart is not selected. Remote Starter Port is 0 (nor relevant here, see below).
  • Rx 3: Driver for RSPx runs on the same remote computer. Autostart is not selected. Remote Starter Port is 0 (not relevant here, see below).
This setup for Rx2 and Rx3 needs some explanation.
  • Both drivers - for Rx2 and Rx3 - are to be run on the same remote computer, as the same IP Address has been entered for both. As a result - even for two different drivers - two different port numbers are mandatory, due to the TCP/IP restriction that no two "Server Sockets" (as the QIRX drivers are using) on the same machine can be equal, meaning that with equal IP Addresses the port numbers must be different. Rx2 uses rtl_tcp as its driver, therefore it will need two ports, in our example 1234 for transmitting the I/Q data, and 1235 as a command and control channel.
    Therefore, the next port Rx3 is able to use, is 1236.
  • The drivers for Rx1 and Rx2 are equal. They can nevertheless use the same port number and Device Index, because running on different machines.
  • Both drivers on the remote machine have their "Autostart" unchecked. Remote drivers must always be started manually. The previously available feature of an automatic remote driver start and stop has been deprecated.

Starting a Remote Driver

The picture visualizes this situation for a Windows remote machine. For a driver residing on remote Linux, of course the commands sketched in the picture would look different.



On the remote site the start of the drivers has to be done manually, either in Linux or in Windows. For the necessary and available parameters either in a Linux terminal or on the Windows command line, the documentation of the drivers have to be consulted (see above).


  • Cookies helfen uns bei der Bereitstellung unserer Dienste. Durch die Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen