Decodium 4.0 Core Shannon e' un programma per radioamatori dedicato ai modi digitali weak-signal. Nasce dalla linea WSJT-X / Decodium e porta una interfaccia moderna Qt/QML, decoder e modulatori progressivamente migrati in C++, gestione CAT integrata, waterfall/panadapter evoluti, Live Map, DX Cluster, PSK Reporter, log QSO e strumenti per operare FT8, FT4, FT2 e altri modi a bassa intensita di segnale.
Questa README e' bilingue:
Decodium 4.0 Core Shannon e' una stazione digitale completa per modi weak-signal. L'obiettivo e' offrire un ambiente operativo unico per:
- ricevere e trasmettere in
FT8,FT4,FT2e altri modi digitali supportati; - controllare la radio tramite CAT;
- visualizzare waterfall, panadapter, segnali decodificati, mappa live e storico;
- gestire QSO manuali, Auto Sequence, Auto CQ e Multi Answer Mode;
- inviare spot e log verso servizi esterni;
- ridurre blocchi UI/audio su macchine moderne e su PC piu datati.
Il nome "Core Shannon" richiama Claude Shannon e l'idea centrale del progetto: trattare la comunicazione digitale debole come un problema di informazione, sincronizzazione, robustezza e affidabilita operativa.
Decodium include supporto operativo per:
FT8FT4FT2Q65MSK144JT65JT9JT4FST4FST4WWSPR
La disponibilita effettiva di alcune funzioni puo dipendere dal backend di decode usato, dalla piattaforma e dalla configurazione di build.
FT2 e' uno dei focus principali del progetto. Decodium 4 include:
- decode FT2 asincrono;
- scheduler TX rapido con guard per evitare TX troppo tardive nello slot;
- gestione QSO FT2 con stati TX1/TX2/TX3/TX4/TX5/TX6;
- opzioni conservative per segnali deboli e QSB;
- protezioni contro ghost call e payload non risolti;
- retry e pulizia dello stato QSO dopo halt o limite retry;
- supporto a QSO manuali e Auto CQ.
L'interfaccia QML e' pensata per uso reale in stazione:
- header con frequenza, modo, stato CAT, RX/TX e controlli rapidi;
- waterfall e panadapter ad alta leggibilita;
- Full Spectrum per vedere tutta l'attivita decodificata;
- Signal RX per seguire le stazioni rilevanti per il QSO;
- pannello TX con messaggi, stato QSO, Auto, Call, Hold, Tune e Halt;
- finestre pop-out/dock per Full Spectrum, Signal RX, Live Map, Log, Cluster e strumenti;
- persistenza layout tra chiusura e riapertura;
- reset layout;
- modalita compatta per vedere piu righe decode;
- supporto tema scuro e stili Qt.
Decodium usa Qt Quick/RHI e, quando disponibile, accelerazione GPU per:
- waterfall;
- panadapter;
- Live Map;
- texture e shader;
- rendering fluido dei pannelli.
Sono presenti fallback per sistemi problematici:
- fallback persistente D3D11 su Windows quando D3D12 crea instabilita;
- opzioni safe graphics;
- percorsi CPU/fallback quando GPU o shader non sono disponibili;
- modalita PC lento per ridurre carico grafico e UI.
Decodium supporta piu strade per il controllo radio:
- Hamlib;
- backend nativi per alcune radio;
- Ham Radio Deluxe;
- OmniRig su Windows;
- TCI;
- seriale locale;
- controllo di frequenza, modo, split e PTT.
Il programma e' stato adattato per preservare correttamente le modalita data/packet dove possibile, in particolare con radio Icom, Yaesu e Kenwood usate via Hamlib, Ham Radio Deluxe o OmniRig.
Decodium gestisce audio RX e TX con attenzione a latenze, buffer e clipping:
- selezione device audio input/output;
- canale audio RX/TX;
- livello RX e TX;
- livellamento automatico RX opzionale e attivo di default;
- guard contro clipping RX;
- restart audio post-TX piu aggressivo su Windows;
- watchdog audio TX per evitare portanti bloccate o buffer non drenati;
- supporto ai classici codec USB delle radio.
La Live Map mostra stazioni, percorsi e attivita rilevante:
- contatti in banda;
- percorsi tra la propria stazione e le stazioni decodificate;
- marker colore per direzione e stato;
- reset automatico su cambio banda, cambio modo e clear decode;
- pulizia quando Full Spectrum o Signal RX vengono svuotati;
- throttling durante TX per evitare stalli del main thread.
Il programma integra:
- DX Cluster;
- ricerca PSK Reporter;
- invio spot PSK Reporter;
- QRZ Logbook;
- Cloudlog;
- supporto ADIF;
- storico decode SQLite;
- esportazione ADIF dallo storico.
Decodium mantiene uno storico dei decode in SQLite:
- ricerca per callsign;
- filtro banda;
- filtro modo;
- intervallo date UTC;
- limite risultati;
- esportazione ADIF;
- persistenza multi-sessione.
Lo storico e' pensato per analisi post-operativa, verifica propagazione e controllo attivita in banda.
Per modi come FT8/FT4, la sincronizzazione tempo e' critica. Decodium include:
- pannello DecoSyncTime;
- NTP interno;
- monitor DT;
- gestione offset;
- integrazione con i decode per stimare lo stato della sincronizzazione.
Il repository contiene codice e workflow per:
- Windows 64 bit;
- macOS Apple Silicon;
- macOS Intel dove supportato dalla build;
- Linux x86_64 AppImage;
- build Linux Qt 6.11;
- ambienti di sviluppo locali con CMake.
Gli artifact pubblici vengono distribuiti nella sezione Releases quando disponibili.
- Aprire la pagina Releases.
- Scaricare il pacchetto adatto al proprio sistema:
- Windows: installer o eseguibile
x64; - macOS Apple Silicon:
dmg; - Linux:
AppImage.
- Windows: installer o eseguibile
- Avviare Decodium.
- Configurare callsign, locator, radio, audio e modo operativo.
Se macOS blocca l'app per quarantena, e' possibile rimuovere l'attributo dalla app installata:
sudo xattr -r -d com.apple.quarantine /Applications/Decodium.appIl nome esatto della app puo variare in base al pacchetto generato.
Rendere eseguibile l'AppImage:
chmod +x Decodium*.AppImage
./Decodium*.AppImageSu alcune distribuzioni puo essere necessario installare libfuse2 o usare l'estrazione manuale:
./Decodium*.AppImage --appimage-extract
cd squashfs-root
./AppRunSu sistemi Linux con sessione Wayland e GPU/driver NVIDIA — in particolare CachyOS — alcuni stack Qt 6 possono presentare stalli di circa un secondo nella sincronizzazione Qt Quick. Il sintomo e' un waterfall apparentemente attivo ma decode FT8 intermittente o bloccato.
Se si verifica questo problema, avviare l'AppImage con VSync disabilitato:
QSG_NO_VSYNC=1 ./Decodium*.AppImageIl workaround e' stato verificato con Decodium 1.0.517 su CachyOS, NVIDIA e Wayland: mantiene attivi il waterfall GPU, la Live Map e il decode FT8 evitando gli stalli QSG. Non e' necessario su sistemi che funzionano normalmente e non si applica a Windows o macOS. La disabilitazione del VSync puo causare tearing o aumentare l'uso della GPU.
Impostare:
- callsign;
- grid locator;
- regione/banda;
- modo di emissione iniziale.
Selezionare:
- input audio dalla radio o interfaccia USB;
- output audio verso la radio;
- canale corretto se il dispositivo e' stereo;
- livello RX e TX.
Il livello RX automatico puo ridurre il rischio di clipping senza costringere l'operatore a correggere continuamente lo slider.
Selezionare il backend piu adatto:
- Hamlib per controllo diretto;
- Ham Radio Deluxe se la radio e' gia gestita da HRD;
- OmniRig per configurazioni Windows con software esterni;
- TCI se la radio o il software SDR espone TCI.
Verificare:
- frequenza letta correttamente;
- cambio banda;
- cambio modo;
- PTT;
- modalita data/packet quando richiesta.
Scegliere il modo dal selettore principale. Per FT8/FT4 controllare che l'orologio sia sincronizzato. Per FT2 valutare le opzioni conservative solo quando servono per segnali molto deboli o QSB.
Configurare, se necessari:
- ADIF locale;
- PSK Reporter;
- QRZ Logbook;
- Cloudlog;
- DX Cluster;
- QSO forwarding esterno.
- Fare doppio click su una riga decode valida.
- Controllare TX/RX audio frequency.
- Verificare i messaggi TX generati.
- Avviare TX.
- Lasciare Auto Sequence attivo se si vuole completare il QSO automaticamente.
- Impostare TX6/CQ.
- Attivare TX o Auto CQ.
- Monitorare Signal RX per le risposte dirette.
- Lasciare Decodium proseguire nel QSO o intervenire manualmente.
Multi Answer Mode consente di gestire piu chiamanti. La coda puo essere usata per organizzare le priorita operative, ma l'operatore mantiene il controllo manuale.
Decodium usa cartelle di sistema standard Qt per:
- impostazioni;
- cache QML;
- database SQLite;
- CTY.DAT;
- log;
- storico decode.
Le posizioni esatte dipendono dalla piattaforma. Nei log di avvio Decodium stampa i percorsi principali, per esempio AppDataLocation, CacheLocation e il database db.sqlite.
Sono richiesti, a seconda della piattaforma:
- CMake;
- compilatore C/C++;
- Qt 6 con moduli
Quick,Qml,QuickControls2,Widgets,Multimedia,Network,SerialPort,Sql,WebSockets; - Hamlib;
- FFTW3 single precision e threads;
- Boost log;
- libusb;
- OpenMP dove disponibile;
- Qt ShaderTools per il percorso shader GPU, se disponibile.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallelIl target QML principale e':
cmake --build build --target decodium_qml --parallelSu macOS con Homebrew e Qt recente potrebbe essere necessario specificare CMAKE_PREFIX_PATH:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/homebrew
cmake --build build --target decodium_qml --parallelIl repository include workflow per:
- build Windows x64;
- release macOS Apple Silicon;
- release macOS Intel;
- release Linux AppImage Qt 6.11 x86_64;
- release Linux AppImage Qt 6.11 aarch64;
- test runner.
I workflow si trovano in .github/workflows.
La versione viene letta esclusivamente da fork_release_version.txt. Tag,
input manuale del runner e release notes devono corrispondere; il controllo
locale e CI si esegue con:
scripts/ci/validate-repository-layout.shControllare:
- input audio corretto;
- livello RX non clippato;
- modo corretto;
- frequenza radio corretta;
- DT vicino allo zero per FT8/FT4;
- filtri CQ/MyCall non troppo restrittivi;
- radio in modalita data/packet.
Controllare:
- backend CAT selezionato;
- porta seriale o endpoint rete;
- baud rate;
- permessi porta seriale;
- HRD/OmniRig gia aperti e configurati;
- conflitti con altri software che controllano la radio.
Decodium puo usare D3D12, D3D11 o safe graphics. Se l'avvio grafico fallisce, il programma puo mantenere un fallback persistente a D3D11 per evitare cicli di crash o GPU instabile.
Controllare:
- device output;
- livello TX;
- PTT;
- buffer audio;
- modalita data/packet della radio;
- eventuali stalli CPU durante TX.
Ridurre il carico:
- abbassare FPS waterfall;
- disattivare Live Map o usare fallback piu leggero;
- disattivare Cluster durante TX;
- evitare effetti UI non necessari;
- usare impostazioni conservative per macchine vecchie.
Decodium 4 e' un progetto attivo. Il codice include componenti storici della famiglia WSJT-X/Decodium e componenti nuovi in C++/Qt/QML. Alcune parti sono in migrazione o in consolidamento, soprattutto nel percorso decoder/modulatore nativo e nelle integrazioni multipiattaforma.
Contributi utili:
- log diagnostici riproducibili;
- bug report con modo, radio, backend CAT, OS e versione Decodium;
- test su Windows, macOS e Linux;
- patch C++/QML mirate;
- miglioramenti documentazione;
- traduzioni.
Quando si segnala un problema, includere:
- versione Decodium;
- sistema operativo;
- radio e interfaccia;
- backend CAT;
- modo digitale;
- estratto log;
- passi per riprodurre il problema.
Il progetto e' distribuito sotto GNU General Public License v3. Vedere COPYING.
Decodium deriva da una lunga storia di software weak-signal per radioamatori, inclusa la linea WSJT-X e il lavoro di molti sviluppatori, tester e operatori. Questo fork raccoglie contributi e test sul campo orientati all'uso quotidiano in stazione.
Decodium 4.0 Core Shannon is a weak-signal digital-mode application for amateur radio. It builds on the WSJT-X / Decodium lineage and combines a modern Qt/QML interface, progressively migrated native C++ decode and transmit paths, integrated CAT control, advanced waterfall and panadapter views, Live Map, DX Cluster, PSK Reporter, QSO logging and operating tools for FT8, FT4, FT2 and other weak-signal modes.
The "Core Shannon" name refers to Claude Shannon and to the core idea behind the project: weak-signal digital radio is a practical information, synchronisation and reliability problem.
Decodium provides operating support for:
FT8FT4FT2Q65MSK144JT65JT9JT4FST4FST4WWSPR
The exact runtime availability of some features can depend on platform, decoder backend and build configuration.
FT2 is one of the main focuses of this fork. Decodium 4 includes:
- asynchronous FT2 decoding;
- fast TX scheduling with guards against starting too late in the slot;
- TX1/TX2/TX3/TX4/TX5/TX6 QSO state handling;
- conservative options for weak signals and QSB;
- protection against ghost calls and unresolved payloads;
- retry handling and QSO state clean-up after halt or retry limits;
- support for manual QSOs and Auto CQ.
The QML interface is designed for real station use:
- main header with frequency, mode, CAT state, RX/TX state and quick controls;
- readable waterfall and panadapter;
- Full Spectrum pane for full-band decode activity;
- Signal RX pane for QSO-relevant decodes;
- TX panel with generated messages and QSO state;
- pop-out/dock windows for Full Spectrum, Signal RX, Live Map, Log, Cluster and tools;
- persistent layout state;
- layout reset;
- compact decode rows;
- dark UI and Qt style support.
Decodium uses Qt Quick/RHI and, when available, GPU acceleration for:
- waterfall;
- panadapter;
- Live Map;
- textures and shaders;
- smooth rendering.
Fallbacks are available for difficult systems:
- persistent D3D11 fallback on Windows when D3D12 is unstable;
- safe graphics options;
- CPU fallback paths where GPU or shaders are unavailable;
- low-performance PC settings to reduce UI and graphics load.
Decodium supports several radio-control paths:
- Hamlib;
- native backends for selected radios;
- Ham Radio Deluxe;
- OmniRig on Windows;
- TCI;
- local serial control;
- frequency, mode, split and PTT handling.
The application includes work to preserve data/packet modes where possible, especially with Icom, Yaesu and Kenwood radios used through Hamlib, Ham Radio Deluxe or OmniRig.
Decodium manages audio with attention to latency, buffering and clipping:
- audio input and output device selection;
- RX/TX channel selection;
- RX and TX level controls;
- optional automatic RX level control, enabled by default;
- RX clipping guards;
- more aggressive post-TX audio restart on Windows;
- TX audio watchdogs;
- support for common USB audio codec interfaces.
Live Map shows stations, paths and relevant activity:
- band contacts;
- paths between the operator and decoded stations;
- colour-coded markers;
- automatic reset on band change, mode change and clear actions;
- throttling during TX to avoid blocking the main UI thread.
Integrated services include:
- DX Cluster;
- PSK Reporter search;
- PSK Reporter spot upload;
- QRZ Logbook;
- Cloudlog;
- ADIF support;
- SQLite decode history;
- ADIF export from decode history.
Decodium stores decode history in SQLite:
- callsign search;
- band filter;
- mode filter;
- UTC date range;
- result limit;
- ADIF export;
- multi-session persistence.
This is intended for post-operation analysis, propagation checks and review of band activity.
Accurate time matters for FT8 and FT4. Decodium includes:
- DecoSyncTime panel;
- internal NTP client;
- DT monitor;
- offset handling;
- decode-based feedback for time alignment.
This repository contains code and workflows for:
- Windows 64-bit;
- macOS Apple Silicon;
- macOS Intel where supported by the build;
- Linux x86_64 AppImage;
- Linux Qt 6.11 builds;
- local CMake development builds.
Public artefacts are published on the Releases page when available.
- Open Releases.
- Download the package for your platform:
- Windows:
x64installer or executable; - macOS Apple Silicon:
dmg; - Linux:
AppImage.
- Windows:
- Start Decodium.
- Configure callsign, locator, radio, audio and operating mode.
If macOS quarantines the app, remove the quarantine attribute from the installed application:
sudo xattr -r -d com.apple.quarantine /Applications/Decodium.appThe exact application name can vary depending on the generated package.
Make the AppImage executable:
chmod +x Decodium*.AppImage
./Decodium*.AppImageSome distributions require libfuse2, or manual extraction:
./Decodium*.AppImage --appimage-extract
cd squashfs-root
./AppRunOn Linux systems running a Wayland session with an NVIDIA GPU/driver — especially CachyOS — some Qt 6 graphics stacks can exhibit approximately one-second Qt Quick synchronisation stalls. The waterfall may appear active while FT8 decoding becomes intermittent or stops.
If this occurs, start the AppImage with VSync disabled:
QSG_NO_VSYNC=1 ./Decodium*.AppImageThis workaround was verified with Decodium 1.0.517 on CachyOS, NVIDIA and Wayland: it keeps the GPU waterfall, Live Map and FT8 decoding active while avoiding the QSG stalls. It is not needed on systems that work normally and does not apply to Windows or macOS. Disabling VSync can cause screen tearing or increase GPU usage.
Set:
- callsign;
- grid locator;
- region/band;
- initial digital mode.
Select:
- audio input from the radio or USB interface;
- audio output to the radio;
- correct channel if the device is stereo;
- RX and TX levels.
Automatic RX level control can reduce clipping without requiring the operator to keep adjusting the input slider.
Choose the most suitable backend:
- Hamlib for direct radio control;
- Ham Radio Deluxe if HRD already controls the radio;
- OmniRig for Windows stations using external radio software;
- TCI where the SDR or radio exposes a TCI endpoint.
Check:
- frequency readback;
- band changes;
- mode changes;
- PTT;
- data/packet mode where required.
Choose the mode from the main selector. For FT8/FT4, verify that the clock is synchronised. For FT2, use conservative options only when they are useful for very weak signals or QSB.
Configure, as needed:
- local ADIF;
- PSK Reporter;
- QRZ Logbook;
- Cloudlog;
- DX Cluster;
- external QSO forwarding.
- Double-click a valid decode row.
- Check TX/RX audio frequency.
- Verify the generated TX messages.
- Start TX.
- Leave Auto Sequence enabled if you want Decodium to complete the QSO automatically.
- Set TX6/CQ.
- Enable TX or Auto CQ.
- Watch Signal RX for direct replies.
- Let Decodium continue the QSO or intervene manually.
Multi Answer Mode helps manage several callers. The queue can be used to organise operating priority while the operator keeps manual control.
Decodium uses standard Qt system locations for:
- settings;
- QML cache;
- SQLite database;
- CTY.DAT;
- logs;
- decode history.
The exact paths depend on the platform. Decodium prints the main locations during startup, including AppDataLocation, CacheLocation and the db.sqlite path.
Depending on the platform, the build requires:
- CMake;
- C/C++ compiler;
- Qt 6 modules:
Quick,Qml,QuickControls2,Widgets,Multimedia,Network,SerialPort,Sql,WebSockets; - Hamlib;
- FFTW3 single precision and threads;
- Boost log;
- libusb;
- OpenMP where available;
- Qt ShaderTools for the GPU shader path, where available.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallelThe main QML target is:
cmake --build build --target decodium_qml --parallelOn macOS with Homebrew and a recent Qt, CMAKE_PREFIX_PATH may be needed:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/homebrew
cmake --build build --target decodium_qml --parallelThe repository includes workflows for:
- Windows x64 builds;
- macOS Apple Silicon releases;
- macOS Intel releases;
- Linux AppImage Qt 6.11 x86_64 releases;
- Linux AppImage Qt 6.11 aarch64 releases;
- test runner.
Workflow files are in .github/workflows.
The version is read exclusively from fork_release_version.txt. Tags, manual
runner input, and release notes must match. Run the local and CI contract check
with:
scripts/ci/validate-repository-layout.shCheck:
- correct audio input;
- RX level not clipping;
- correct mode;
- correct radio frequency;
- DT close to zero for FT8/FT4;
- CQ/MyCall filters not too restrictive;
- radio in data/packet mode.
Check:
- selected CAT backend;
- serial port or network endpoint;
- baud rate;
- serial-port permissions;
- HRD/OmniRig already open and configured;
- conflicts with other software controlling the radio.
Decodium can use D3D12, D3D11 or safe graphics. If graphics startup fails, it can keep a persistent D3D11 fallback to avoid repeated crashes or unstable GPU start-up loops.
Check:
- output device;
- TX level;
- PTT;
- audio buffer behaviour;
- radio data/packet mode;
- CPU stalls during TX.
Reduce load by:
- lowering waterfall FPS;
- disabling Live Map or using a lighter fallback;
- disabling Cluster updates during TX;
- avoiding unnecessary UI effects;
- using conservative settings on old hardware.
Decodium 4 is an active project. The codebase contains historical WSJT-X/Decodium components and newer C++/Qt/QML components. Some areas are still being consolidated, especially the native decoder/modulator path and cross-platform integrations.
Useful contributions include:
- reproducible diagnostic logs;
- bug reports with mode, radio, CAT backend, OS and Decodium version;
- testing on Windows, macOS and Linux;
- focused C++/QML patches;
- documentation improvements;
- translations.
When reporting an issue, include:
- Decodium version;
- operating system;
- radio and interface;
- CAT backend;
- digital mode;
- log excerpt;
- reproduction steps.
This project is distributed under the GNU General Public License v3. See COPYING.
Decodium comes from a long history of weak-signal amateur-radio software, including the WSJT-X line and the work of many developers, testers and operators. This fork collects practical field testing and implementation work aimed at daily station operation.