TCI Remote Compactor bridges your Thetis SDR to the TCI Remote app over any internet connection — 4G, 5G, hotel WiFi — with zero port-forwarding and military-grade compression.
Everything from installation to your first remote connection — a playlist you follow in order, from zero to hero.
Thetis outputs uncompressed audio and a full waterfall stream — easily 2 Mbps or more. That is fine on a gigabit LAN, but completely unusable over a mobile data connection. Without a solution, remote operation simply does not work.
Raw TCI saturates a typical mobile data plan within minutes. Audio breaks up, the waterfall freezes, the app disconnects.
Most routers, ISPs, and 5G home gateways block incoming connections. Even when it works, your home IP changes without warning.
Opening Thetis to the internet means anyone who finds your IP can connect. There is no built-in password system.
You cannot share your radio with a fellow operator or monitor it from two devices simultaneously without dropping connections.
TCI has no built-in disconnect handling. A dropped remote connection leaves PTT active and the tuner running — indefinitely. Burned finals, a seized ATU motor, and a destroyed PA are the result.
TCI Remote Compactor includes a built-in secured tunnel engine. At startup it creates a secure, encrypted HTTPS tunnel to your radio — no router configuration, no IT knowledge, no dynamic DNS service required.
Your TCI Remote app receives a live URL like https://abc123.tciremote.com that works from any network, anywhere on earth. One click and you are on the air.
The Compactor intercepts the raw Thetis audio stream and re-encodes it in real time using the Opus codec — the same algorithm used by Discord, Teams, and WhatsApp. You choose the bitrate: from a razor-thin 8 kbps on a weak connection up to 320 kbps for studio-quality monitoring.
* Waterfall / spectrum data is compressed separately and further reduced by priority queuing to protect audio quality.
The TCI protocol has no built-in disconnect handling. Thetis cannot tell the difference between a deliberate stop and a crashed connection. If you drop off mid-transmission — dead zone, crashed app, sudden network loss — Thetis keeps transmitting, keeps tuning, keeps running the ATU. Indefinitely. Without a watchdog, this is how finals burn and ATU relays get destroyed.
Watchdog runs server-side in the Compactor — independent of the mobile connection quality. Even if the app freezes or the phone loses signal completely, your radio is safe.
Listen to your frequency on up to eight public uberSDR receivers at the same time. The Compactor measures which one hears the station best and hands you that audio — your own radio included. Receive only; transmitting stays on your radio.
Connect multiple operators simultaneously — each on their own device. A club can share one radio, with each member independently controlling frequency, mode, and audio.
Guest (RX-only), Operator (RX/TX), and Master (full admin). Set separate passwords for each level. Never worry about a guest accidentally transmitting.
All connected operators can talk to each other in real time through a full-duplex voice intercom — without leaving the app or picking up a phone.
Server-side priority queuing instantly drops heavy waterfall packets when your link is congested, guaranteeing uninterrupted audio. You hear the radio, always.
Configure a Main, Secondary, and Tertiary Thetis server. If your primary shack PC goes offline, the Compactor automatically switches — then switches back when it returns.
Five configurable one-tap shortcuts that proxy your radio's web interfaces (antenna tuner, rotator, cluster, SDR Console) securely through the tunnel — no VPN needed.
A built-in quality panel shows round-trip time, jitter, and packet loss for your connection. Includes an internet ping tool to diagnose 4G/5G instability on the spot.
Runs silently in the background. Start it with Windows so your remote setup is ready the moment your shack PC boots — no action required on your part.
The console shows real-time compression ratios, connected clients, audio bitrate, and byte savings — so you always know exactly what is happening on the wire.
One-time purchase, tied to your email address. No subscription, no annual renewal. Buy once, use indefinitely — including all future v1.x updates.
All traffic through the tunnel is TLS-encrypted end-to-end. Your radio traffic never travels the open internet unprotected.
See exactly how long each tunnel has been active. One-click restart button lets you cycle a stuck tunnel without touching the shack PC remotely.
If the remote client drops unexpectedly — dead zone, app crash, network loss — PTT is released within 15 seconds and the tuner (TUN) and ATU are stopped within 5 seconds. No stuck transmitters. No equipment damage.
Whether you are sharing with a trusted fellow ham, a club member, or just want a receive-only feed for yourself on a second device — you control exactly who can do what.
| Permission | 🎧 Guest (RX only) | 📻 Operator (RX/TX) | 👑 Master |
|---|---|---|---|
| Receive audio & waterfall | ✓ | ✓ | ✓ |
| Tune frequency & change mode | — | ✓ | ✓ |
| Transmit (PTT) | — | ✓ | ✓ |
| Use intercom | ✓ | ✓ | ✓ |
| Access web shortcuts | — | ✓ | ✓ |
| Manage server settings | — | — | ✓ |
Run the Windows installer, enter your license key and the IP address of your Thetis server. The Compactor starts automatically and creates your tunnel URL.
Download the free TCI Remote Android app, enter the tunnel URL shown in the Compactor window, choose your password level (Guest / Operator / Master), and tap Connect.
Full waterfall, audio, and PTT — over 4G, 5G, or any internet connection. The Compactor handles compression, tunneling, and stability automatically.
Your radio is at a hilltop QTH with great RF but no gigabit internet. The Compactor makes 4G or a rural broadband link work perfectly.
You are in a hotel room on the other side of the world. Connect to your home station with a single tap, without any advance preparation.
Share one club SDR with multiple members. Assign each person an Operator password. Guests can listen; licensed members can transmit.
Let a second operator back home monitor the band conditions on your behalf and relay information via the built-in intercom — all through one secure connection.
TCI Remote Compactor is the server-side engine that powers the TCI Remote smartphone app. Install the Compactor on your shack PC, open TCI Remote on your phone, and you are on the air — anywhere in the world.
The app is free to download. The Compactor license unlocks the full remote experience: compression, tunneling, multi-user, and intercom.
📱 Free download Get TCI Remote for Android →One-time purchase. No subscriptions. All v1.x updates included. Works with Thetis and the free TCI Remote Android app.
The Compactor is the server-side engine that works together with the free TCI Remote Android app — install one on your shack PC, the other on your phone, and you are on the air. Also requires a Thetis SDR installation.
Your transmitter is yours again: the intercom can no longer end up in the middle of your over. Live Translate gets a better standard prompt that keeps both letters of a double, talks like a radio amateur and is kept up to date with every version without touching your own instructions. Twelve more languages, a WAD that lets you hear your own call come back, and a Log4OM sync that no longer breaks up the audio. Everything since v1.4.1 is included — installing this over your current version is all you have to do.
The version numbers keep running together: Compactor v1.4.2 belongs with TCI Remote app v4.2. An older app, v4.1 included, still connects and everything you already had keeps working — the newest features simply do not appear in it.
The intercom could get in the way of your transmitter. A TX guest who pressed IC while you were on the air was not refused: the guest’s voice went to Thetis as ordinary transmit audio, right into the middle of your over.
That is closed now. PTT, TUNE or a recording bank going on the air takes the intercom away from whoever has it, nobody gets the intercom while the radio is transmitting, and intercom speech never reaches the radio. This protects you with an older app too: the Compactor holds the audio back itself.
The master and TX operators can also switch the intercom of another user off, with the IC button next to that user in the list of who is connected. It stays off for that call sign — reconnecting does not bring it back — until you switch it on again or restart the Compactor. The button needs TCI Remote v4.2.
Changed in v1.4.2The instruction the translator gets before it hears you has been rewritten. A call sign with a double letter keeps both: “Oscar November seven Oscar Foxtrot Foxtrot” is no longer taken for a stutter. TCI Remote is no longer translated as Thetis. Q-codes, reports, CQ, 73 and 88 stay exactly as you said them, the translation uses the ham radio jargon of the target language, and it follows your own tone, pace and energy instead of sounding like a newsreader. The voice itself is still the translator’s own.
The prompt now comes in two parts. The standard part belongs to the Compactor and is updated with every new version, all by itself. Your own instructions go in a box of their own and are sent after it; an update never touches them.
Had you written a prompt of your own? Then the Compactor does not replace it. It asks you once which one you want, and keeps your old prompt so one button brings it back.
Changed in v1.4.2Twelve more languages than before, among them Persian, Urdu, Swahili, Tamil, Filipino, Chinese (Traditional) and Portuguese (Portugal) — to transmit in and to read along in. They are picked in TCI Remote v4.2.
And in the app’s QSO note you can now tap the station’s country to set the Live Translate target language: Italy gives Italian, Belgium gives Dutch, French and German.
New in v1.4.2With KEEP ON DURING PLAY switched on in the WAD panel, the remote receivers keep running while a recording bank calls. You now actually hear them, instead of the silence of your own radio while it transmits — so you hear your CQ the way other stations hear it.
Changed in v1.4.2Importing or sending a large logbook no longer breaks up the audio. The Log4OM sync shares one connection with the receive audio, and a full history used to go into it in a single burst of several megabytes, ahead of the audio. It now goes one batch at a time, and only once the audio has gone through: 13,000 QSOs take about a minute instead of a few seconds, and the radio keeps playing throughout. Three other places where the sync held up the Compactor are gone as well.
The LOG4OM button in the app’s QSO note always appears now. The app asked once per connection whether the station has Log4OM, and if that one question went missing the button stayed hidden. It now asks again until it gets an answer. That part needs TCI Remote v4.2.
The Log4OM page no longer cuts its text off at the right edge, and there is a new Log4OM sync category under the Verbose button that writes down what the sync does and why.
Fixed in v1.4.2Record your own voice once and let the radio do the calling. Eight banks live in the Compactor and seven of them hold your voice, each with a name, a repeat interval and a number of repeats. Press play and the Compactor keys the radio, puts the recording on the air, and does it again at the interval you set — up to twenty times, up to two minutes apart. Calling CQ without talking yourself hoarse.
A bank holds up to a minute. Bank 1 works the other way round: it is a quick record of what came off the radio, so you can play back the transmission you just missed. Preview sends a recording to your phone alone, with the transmitter untouched.
Touching PTT, MOX or TUNE stops the playback and the whole repeat series on the spot, and a playback is watched by exactly the same safety net that has always watched your transmitter. The banks are operated from the app and need TCI Remote v4.1.
New in v1.4.1The logbook in the app and your Log4OM logbook can now be kept the same. Log a QSO on the phone, with its note, and it is in Log4OM. Correct it or delete it in Log4OM and the app follows.
Nothing is moved: both programs keep their own complete logbook, and Log4OM’s database is only ever read, never written — everything going into Log4OM goes in through Log4OM’s own connector, so Log4OM stays in charge of its own file. One connector to add there, one file to point at here, and a setup manual in the Compactor that walks through both.
Master only. A transmit or receive guest never sees it and can never put a QSO in your logbook.
New in v1.4.1The waterfall runs at the speed you choose, anywhere from 5 to 60 frames per second, and every connection has its own. Turn it down on a phone over mobile data and the waterfall keeps flowing where it used to stutter; turn it up on a good line and it moves like the screen in the shack.
The setting travels with the connection, so it is still yours after a reconnection. It sits under the PF button below the spectrum in the app, and it needs TCI Remote v4.1.
New in v1.4.1Everyone in a Radio Network now shares one spectrum stream from the radio instead of each guest opening one of his own. It is a single connection to Thetis, fed out to all of them.
A guest on a slow line drops frames on his own link only, and the log says so by name; the others see nothing of it. Before this, one bad connection could hold the waterfall up for everybody.
New in v1.4.1The Compactor now asks Windows for the processing time it needs instead of taking what is left over. It raises its own priority and opts out of the power saving that lets Windows clock a program down and move it to an efficiency core — the two things that made the audio and the waterfall stumble while something else was busy on the same machine.
It asks for the highest class and will normally be given the one below it, which is what Windows allows a program that is not running as administrator; the log says which one it actually got. None of it is required: if any step is refused the Compactor runs exactly as it ran before.
Changed in v1.4.1The Zero-Config tunnel could stay down after the network dropped out. Pulling the cable, losing WiFi or waking the computer from sleep left the address still being announced with nothing behind it, and only a restart brought it back. The Compactor now watches the way in itself: it notices the moment the machine loses its network route and the moment it gets one back, and it sends one request through its own tunnel every ten minutes even when nothing has happened. Three unanswered checks and the tunnel is rebuilt, about forty seconds after it went quiet. Checks that fail because your own connection is down do not count against it.
With Live Translate on, everybody listening in now hears what the antenna really radiates. The listen-in stream used to carry the operator’s bare voice, as it arrived, before the translation was mixed into it. A video recording made in the app carries that same mix now, with the Live Translate and RX Transcript lines drawn into the picture as subtitles.
And the daily limit in the Live Translate and RX Transcript tabs sticks. Typing a new number and pressing Save kept the old one, because a background refresh put the old value back into the field in the moment between the press and the release.
Fixed in v1.4.1Press PTT and speak your own language. What goes out on the air is what you said, in the language of the station you are working, spoken by a synthetic voice. The transmitter stays keyed until the translation has finished, so the last word is not cut off, and the app shows you it is still going out.
Your own voice goes out at full level during the three seconds it takes the model to answer, so the frequency is never left empty, and it stays in the background underneath the translation afterwards — far enough back that the other station is not listening past a second voice. Off, quietly underneath, or far in the background: you choose, and from this release far in the background is where a new installation starts.
USB, LSB, AM, SAM, DSB and FM. You can hand it your own vocabulary in advance — callsigns, place names, the words of your own corner of the hobby — so it stops turning them into something else.
New in v1.4.0The other direction. What comes in over the air is written out and translated, in a ticker across the waterfall or in a window of its own. Everyone connected reads along, and each of them picks their own language — four readers in four languages is not four times the cost.
Two engines. Standard writes an over out word by word while it comes in. Delayed translation waits until the over ends and then writes it in one piece, for a fraction of the price — around seven times less. Both are measured figures, and they are in the app next to the setting.
It can be told what language to expect, or left to work it out per over; either way the language it actually heard is shown beside the text.
New in v1.4.0Both modes run on your own Google Gemini key, entered on the Compactor. Google bills you directly — we charge nothing for it and none of your audio passes through us.
The Compactor holds a daily limit in minutes for each mode. Run out and the mode stops translating; it never stops you transmitting. The master operator can set those limits from the app as well, and see how many of today’s minutes have already gone. The link on both tabs goes straight to your own spending page at aistudio.google.com, because that is the only place the real figure lives.
New in v1.4.0When the operator switches the radio to FreeDV, Radio Network and receive-only guests now hear the decoded speech instead of the raw modem tone. A guest can also switch FreeDV listening on by themselves: receive only, so no command goes to the radio and nothing changes for the operator.
The station decodes once for everybody, so extra listeners cost almost nothing. The FreeDV Reporter window, the waveform and the callsign on the map stay with the operator; a guest cannot change them.
New in v1.4.0Messages now reach every user of a station, Radio Network visitors and master, transmit and receive guests alike. Until now a message between those two groups simply went nowhere.
Verbose logging has moved out of Settings and onto the log on the Dashboard tab, split into eight categories you switch on one by one. Switch on Radio Network alone and an evening of visitors is no longer buried under TCI traffic; switch on FreeDV and the log says per listener why they hear what they hear. The same button opens the log and shares it.
New in v1.4.0The false 429 is gone. The Compactor was watching the output of the tunnel service for the bare number 429, and a checksum that happened to contain those three digits was enough to make it believe the connection was rate-limited and stand down for an hour.
Live Translate used to drop the transmitter the instant the translated voice stopped, which clipped the last word — only the other station could hear it. It now holds on for another 0.8 seconds.
Fixed in v1.4.0FreeDV sits in the mode row next to DIGL and DIGU. Select it and you are on digital voice over your own radio: the Compactor runs the RADE neural codec itself, so Thetis stays a standard Thetis and needs no add-on and no extra sound card.
Switching in and out sets the transmit profile, the mode and both filters for you, and puts every one of them back exactly as it was when you leave. Thetis can take up to ten seconds over a profile change; until the radio confirms it, transmitting is held off, so nothing goes out through the wrong profile.
The neural network runs in a process of its own. If it falls over, the Compactor and its watchdogs keep running.
What it asks of you. Thetis needs a transmit profile named FreeDV, made once by hand — the app walks you through it the first time and checks afterwards. FreeDV is a constant-carrier mode, so set a sensible power limit before you key up.
The FreeDV reporter page shows who is on the air and who is hearing whom. You can now put your own line of text next to your callsign there — your rig, your antenna, whatever you want people to see. Type it in the MESSAGE field under ADVANCED in the FreeDV window and it appears next to your callsign within a few seconds. It only goes out while you are publishing to the reporter; switch that off and the line goes with it.
New in v1.3.5Pin a WAD receiver and you get its own small waterfall underneath it — not just for the first one, for every receiver you pin. The Compactor fetches that spectrum over the connection it already has with that receiver, so it does not take a second slot at somebody else’s station.
Each receiver also reports its own signal strength, so the app can show an S-meter per receiver, and the REMOTE VOLUME slider under ADVANCED turns every remote receiver up or down by as much as 12 dB with your own radio as the untouched reference.
New in v1.3.5Seven tick boxes in Settings: TCI commands, server connection, tunnel, client activity, Radio Network, errors and warnings, and licensing. Tick only what you are chasing and the log stays readable. TCI commands are their own category, so you can watch exactly what goes to and from the radio without the rest of the traffic drowning it.
Everything off is the default and behaves as before. The verbose log is written to a separate file that rolls over on its own, so it cannot quietly fill your disk, and the Share button hands it over in one step when you need help.
New in v1.3.5The hosting provider’s firewall keeps a list of addresses it will not talk to, and home connections land on it through no fault of their own — an earlier tenant of that address, or simply a busy shared range. Until now that showed up as a bare HTTP 429 and nothing else.
The log now says what to do about it: switch your router off, wait five minutes and switch it back on. Most connections hand out a different public address after that, and a different address is usually not on the list. If it keeps happening, there is a mail address in the message.
New in v1.3.5The message field would not take text — on a phone no keyboard came up, on a computer no cursor appeared. The window’s drag handler was swallowing the click. Fixed.
The reporter used to stop working after a failover to a second Thetis and stay on “waiting for the Compactor” without saying why; it now survives one. The V1 waveform is the default and can be chosen explicitly, and the transmit path takes the right audio route instead of the radio’s own microphone input.
Fixed in v1.3.5WAD used to demand that you switch the VFO lock on first, because it had no way of keeping up with a frequency that moved under it. It follows the VFO now instead: turn the knob and the receivers are retuned once you stop, each one staying out of the audio until it has confirmed the new frequency itself. So you tune the way you always tune, and the lock button goes back to being yours.
New in v1.3.4.3On 160, 80 and 40 your radio is in LSB, but the WAD receivers kept listening in USB — the wrong sideband, so voices came back unintelligible and whatever sat on the other side of the carrier came through with them. The Compactor did send the mode; what it did not send was a passband with the sign that belongs to it, and an uberSDR applies the passband literally. It now sends the passband your radio actually has, sign and all, and AM, FM and CW get a symmetrical window instead of a single-sideband one. Measured on real receivers before and after, on both sides of the carrier.
Fixed in v1.3.4.3You know the situation: a station is working everyone and you hear nothing but noise. That is not your radio being bad, it is where your antenna happens to stand. A receiver 800 km away sits on a different hop and may hear that station perfectly.
Switch WAD on and the Compactor connects to a number of public uberSDR receivers on your frequency, next to your own radio. It measures the signal-to-noise on each of them twice a second and hands you the one that is hearing best — your own radio included, and it goes back to your own radio the moment that is the better one. The changeover is a short crossfade, so you hear a change of background noise rather than a click.
In the app you say how far away a receiver may be (a lower and an upper limit, up to 10 000 km) and how many to use at once, from three up to eight. Leave it on AUTO and it picks for you; switch to MANUAL and you tap the receiver you want to stay on, while all the others keep measuring so you can see what you are choosing between. USB, LSB, CW, AM, FM and the digital modes all follow the mode of your radio.
What it is not. WAD is receive only — you still transmit with your own radio, and WAD steps aside for as long as you are transmitting. The receivers follow your VFO, so after a band change you hear your own radio for about a second while they catch up. It needs an internet connection at the Compactor, and it depends on public receivers being online and having a free slot: every receiver you use occupies a place at somebody else's station that nobody else can use while you have it. That is exactly why the ceiling is eight and not more. The waterfall stays your own radio's — WAD is audio.
Available to the master user and to guests with TX rights. You need the TCI Remote app version that has the 🛰 button; hold it for two seconds to open the settings.
New in v1.3.4.2"Auto start when Windows starts" did nothing at all — the startup entry pointed at a file that is not part of the installation, so Windows launched nothing. It repairs itself the first time you run this version; you do not have to do anything.
Fixed in v1.3.4.1The full window opened on every start. It is a tray application, so it now starts in the system tray and tells you so. The window still opens right after installing.
Fixed in v1.3.4.1Store your favourite frequencies and recall them in one click — your net, your repeater, your beacon watch, always where you left them.
New in v1.3.4Switch between your Thetis TX profiles from the Compactor for local use — no need to walk back to the shack PC to change your audio chain.
New in v1.3.4Find the station you are looking for in the Radio Network list instead of scrolling past all of them.
New in v1.3.4A colour scheme on the Radio Network list shows which stations are free, busy or on the air — before you connect.
New in v1.3.4Decide per guest which bands they may transmit on. Useful when your visitor's licence class differs from yours, or when you simply want to keep one band to yourself.
New in v1.3.4Plus the usual round of under-the-hood fixes to keep the Compactor running for weeks on end without attention.
Improved in v1.3.4Now restores the current state of your Thetis after the last station has disconnected from the compactor (RN user, TX user, Master User).
New in v1.3.2Main tunnel is now renegotiated every 72 hours automatically to enhance the Make-Before-Break system, as the tunnel provider automatically disables tunnels up more than 96 hours.
Improved in v1.3.2Fixed a license issue when moving the TCI Remote compactor from one machine to another, including updates to the abuse tracker and hash tracking.
Fixed in v1.3.2Radio Network users will now see if the TX or Master user is online from the Radio Network station list.
Fixed in v1.3.2Added tunnel self-test functionality for the secure web shortcuts.
New in v1.3.2Resolved an issue with the Who is Connected feature.
Fixed in v1.3.2Many under-the-hood bug fixes to make the compactor even more stable and reliable.
Improved in v1.3.2We take security seriously. Because TCI Remote Compactor is compiled with Nuitka, some aggressive antivirus engines may occasionally throw a "heuristic" false positive. Rest assured, the software is completely safe and actively verified by major security vendors.
v1.4.2 is on VirusTotal, scanned by 67 engines. One of them flags it: DeepInstinct, a pure machine-learning engine that gives no name for what it thinks it found — the same engine that flagged v1.4.1. The other 66 see nothing. We are telling you that rather than rounding it down, because you can see it on the report in one look anyway. It is the same thing earlier builds were flagged for — packed Python, which ESET names "Python/Packed.Nuitka" — and that is exactly what the Compactor is and is not a virus. It can move in both directions, because engines update their heuristics daily. Read the report yourself rather than take our word for it; it is filed under the same SHA-256 hash shown below, so you can confirm it is the exact file you downloaded.
View VirusTotal Report (v1.4.2) →Earlier builds were flagged by Defender, submitted to Microsoft's Security Intelligence team for deep analysis, and cleared. Defender has not flagged the Compactor since v1.4.0, so there was nothing to submit for v1.4.1 or v1.4.2 and we did not. The report below is the one for v1.4.0; if Defender ever flags a build again, it goes in the same day and the new report replaces it here.
View Microsoft Report (v1.4.0) →If your antivirus blocks the app (like Windows Defender displaying "Wacatac" or "Sabsik"), it's a known "false positive" common with compiled Python apps. Defender has not flagged the Compactor since v1.4.0, which was submitted to Microsoft Security Intelligence and cleared. One engine on VirusTotal does still flag it, as the card above says plainly. If a vendor flags it, you can add an exception or whitelist the installation folder in your antivirus settings — and if you would rather not, that is a fair call to make; the hash below lets you check the file first.
b4746c192fd73c9994dee6ac9b3da777537a036a25105e22a90af1c6469c7348
Check it yourself — open a Command Prompt in your Downloads folder and run:certutil -hashfile TCI_Remote_Compactor_v1.4.2_Simplified_Setup.exe SHA256
Everything you need to get the most out of TCI Remote Compactor — a complete user manual covering every feature, setting, and troubleshooting scenario, plus an open protocol reference for developers building TCI-compatible SDR software.
Everything from first-time installation to advanced configuration — all settings explained, trial and licensing, every feature tab described in detail, and a full troubleshooting section for common issues.
Complete command reference for the TCI WebSocket protocol — server handshake sequence, all commands with parameter descriptions and direction, IQ and audio binary frame formats, a full annotated connection example, and a compatibility checklist.
ready
Protocol reference covers TCI as implemented by Expert Electronics ExpertSDR2 and OpenHPSDR Thetis — the two primary reference implementations.