The TCP Protocol and Quisk

By Jim Ahlstrom, N2ADR, the author of Quisk SDR

June 7, 2026. Initial draft. Expect frequent updates.

June 11, 2026. Added input from Heiko, DL1BZ, Maintainer of the deskHPSDR project.

Please use the group https://groups.io/g/n2adr-sdr for discussions.

This paper discusses software that I do not use myself. Please report errors.

What is TCI

I am interested in adding TCI to implement Rx and Tx audio streams that connect Quisk to external digital mode programs, CW skimmers, logging programs and contest programs. These programs typically use only a few control commands, often just PTT and frequency. TCI provides many more controls such as output power control, filter width, CW macro speed and AGC mode. It is a more general transceiver control protocol.

The TCI protocol was developed by Expert Electronics. Their SDR hardware is controlled by their ExpertSDR3 and legacy ExpertSDR2 software. TCI is a protocol built into this software that enables external programs to control the radio and have access to the receive and transmit audio streams. This can be used by external digital mode and logging programs.


The TCI protocol uses a network connection and it eliminates the need for COM ports and virtual audio cables. This is an attractive feature. The digital mode program WSJT-X supports TCI, and to connect it to a radio you select the radio "TCI" and the audio "TCI audio" and you are connected. Using PC audio to transfer digital samples between computer programs has always been a bother.

Why I Don't Like TCI

I am the author of Quisk SDR software. When my users first requested TCI, I initially declined. I don't like the TCI protocol for these reasons:

Experiences with WSJT-X

Although I don't like the TCP protocol, my users want to connect to WSJT-X, and it supports TCI. So I felt obliged to add TCI to Quisk. I have WSJT-X version 3.0 on Linux and version 3.1 on Windows to test. I could not find a technical description of the TCI protocol as used by WSJT-X (is there one?) so I looked in the source code. I saw a comment that indicated an early version 1.2 of TCI and I saw the Stream header lacked the number of channels. So I had to resort to experimentation to figure out how to connect. I discovered the following:

Experiences with deskHPSDR

I do not have the software defined radio deskHPSDR but I have been in contact with its developer Heiko, DL1BZ. He has implemented TCI version 2.0 and has successfully connected to the clients JTDX, MSHV RumLogNG and UT4LW's SDC (Software Defined Connectors) and its build-in CW Skimmer. He has no interest in supporting protocols earlier than the current version 2.0 of TCI. He provided the following insights:

What to Do

Heiko wants to support only TCI 2.0. I don't disagree, but this creates problems for me. My TCI version 1.4 currently connects to WSJT-X, and I believe that TCI version 2 will not. So changing to version 2 will anger my users. The problem goes away when and if WSJT-X upgrades to version 2, but that may never happen. And there may be other TCI version 1.4 software out there that I don't know about, and I will break it too.

I am not a philosopher, I am an engineer with the mindset of a businessman. I want to make my users happy and contribute to the advancement of amateur radio. We should be using modern technology, not COM ports and audio hacks.

An ideal solution would be to assemble all authors of client and server software and hash out a protocol that is simple to implement and satisfies everyone. But this is not an ideal world. I proposed this to FreeDV and they were too busy with their own software. But I think that if TCI authors follow the "TCI Best Practices", then all TCI 2.0 users will connect successfully and I can figure out a way to support older clients.

TCI Best Practices

Please use these Best Practices to increase the chances of a successful connection. This is not a finished document. Please suggest changes.

Further Work

I need the support of TCI client and server software authors to make this work. I welcome feedback, both positive and negative. Please let me know what you think on the news group named above.


Jim Ahlstrom, N2ADR