Repository navigation
Releases: CasualArclamp/DecSAT
Release list
DecSAT 0.10.16 (Windows portable)
What's new in 0.10.16
DNS, and a much faster FEC.
- DNS window. A 🔍 DNS button on the IP card opens a window, like the TS analyser, with every name the link's DNS asks for: its type, the answers (addresses, CNAMEs, MX…), the servers and clients, how often it was asked and answered, and how long ago. Errors such as NXDOMAIN show in red, and the list has a filter and a Copy list button. It reads plain DNS over UDP, mDNS and LLMNR; datagrams on port 53 that do not read as DNS (a scrambled link) are counted and flagged, since DNS over TCP, TLS or HTTPS cannot be read. The test scene's GSE carrier now carries a few DNS exchanges, so there is something to look at.
- FEC decoding spreads over the machine. A backlog of DVB-S2 frames now decodes on one work-stealing pool shared by every VFO (two threads fewer than the machine has), instead of up to four threads started for each batch: one VFO with a backlog can use them all, several share them. The LDPC decoder has an AVX-512 copy chosen at run time on CPUs that have it (a normal frame went from 11.7 ms to 2.8 ms on a Zen 5; other CPUs run as before), and the soft-bit demapper works 16 symbols at a time (32APSK 1.4 → 0.6 ms a frame). Results are bit-for-bit the same.
Inroutes of a GSE-signalling hub. A hub whose outbound carries its own signalling in non-IP GSE (a clock, an inroute table, burst configurations and a burst time plan every 125 ms) now has its plans read; the Return pool puts the inroutes on its spectrum, finds the frames and the lead, and demodulates every planned burst (8PSK) with a per-terminal MER, offsets and C/N. Record writes .ibursts.
GUI.
- The DVB card's title bar shows the carrier's space-segment frequency: the VFO's RF centre (tuning, LNB LO and trim) plus the demodulator's offset once locked; grey while it is the VFO's centre alone.
- TV player: interlaced pictures are deinterlaced to one picture per field (50i plays at 50 pictures a second); a Bob x2 checkbox in the player window switches back to one per frame.
Docs: more notes on what is known about one hub's return-link FEC.
Portable Windows executables for 64-bit Windows 10/11, nothing to install (static C runtime).
| File | What |
|---|---|
decsat-gui.exe |
Desktop app: wideband waterfall with VFOs (DVB-S2/S2X → GSE/IP or MPEG-TS, DVB-S, satellite modems, DVB-CID, generic PSK/QAM, IQ record), IQ files or a HackRF One; a DVB-S2/S2X transmitter (MPEG-TS to the HackRF or a file) |
decsat.exe |
Command line: decsat scan, decsat decode, decsat analyse, decsat scene, decsat cid, decsat test-signals, decsat tx, decsat record, decsat modcods |
decsat-scene_8Msps.cs8 |
Test signal, 8 MS/s, 4 s: DVB-S2 (IP over GSE, and an S2X ACM carrier with MPEG-TS), DVB-S, a TPC 2964 modem carrier and a CW tone |
decsat-cid_3360000sps.cs8 |
Test signal, 3.36 MS/s, 30 s: DVB-S2 QPSK 1/2 at +700 kHz with a DVB-CID under it (identifier and position decode) |
Open a test signal in the GUI (Open IQ…; the sample rate is in the file name) and click a carrier, or run decsat test-signals to make them yourself (tests/README.md).
A HackRF One needs no DLLs (it transmits only when armed: see the README); on Windows it must use the WinUSB driver (Zadig, or the one the official HackRF tools install). IQ files need nothing.
Windows SmartScreen may warn on first start because the files are unsigned ("More info" → "Run anyway").
Built from 680aa40 by GitHub Actions.
SHA-256:
4b4b17e94df74de64a09f1169a4f3dfaef4d26d8cbec88ad55f3b5e8e4426b0d decsat-gui.exe
7a0c09b61291c268ef81668b651a9d4aaa734fa8db4bb2ed3b89f0cd85955eb2 decsat.exe
81491d2ab66896a378df1cd642bc49793ffbf45bfcadfe6e09fd3f18fed30184 decsat-scene_8Msps.cs8
d1d2850158b9fd2f78e91c49043413c83942652a2faa551ccac161a4241f0dfb decsat-cid_3360000sps.cs8
DecSAT 0.10.15 (Windows portable)
What's new in 0.10.15
A VSAT network's forward and return links, read from a live Newtec hub on Eutelsat 172B.
- S2X baseband. Roll-off read the S2X way (the outbound is 0.05, not the 0.20 reported before); every input stream of a multistream carrier goes to its own stage by what it carries — MPEG-TS, transport packets in a generic stream, GSE, GSE-HEM (packets sliced across BBFRAMEs put back together) — with a TS per ISI; the IP card lists the terminals a hub serves, each by the MODCOD of its frames and its IP addresses.
- S2X super-frames (Annex E). Found by their SOSF, read (format, SF-pilots) and stripped between symbol timing and PL framing, so super-framed carriers decode; plain carriers pay almost nothing for the search. This was the last "to do" in the feature table.
- DVB-RCS signalling card. A hub's forward-link signalling out of the transport stream: the RCS content descriptors, the RMT, SCT/FCT/TCT, TBTP and CMT, the TIM, the NCR clock and every table's period, vendor tables included; the TS analyser names the RCS PIDs.
- Return pool. A TDMA VFO run as a return pool: the carriers' layout over time, the slot and frame grid from the bursts' guard times, tied to the outbound whose clock it runs on. The hub's private table D1h turns out to be the burst plan — every terminal's bursts by slot, code and frequency, every 40.2 ms — and DecSAT reads it, lines it up on the pool and draws the latest frame on the pool's band.
- Return bursts demodulated live. The plan is fed from the outbound's VFO to the pool's; each scheduled burst is cut from the pool's baseband and demodulated on worker threads (preamble by differential correlation, matched filter, equaliser trained on the known symbols, per-terminal carrier and timing), with the hub's 5 ms slots, the frame length tracked against the HackRF's clock, and each code's rate searched once. The Return pool card shows the bursts a second, per-terminal MER, C/N and offsets and a constellation; Record writes each terminal's symbols and soft bits. Live from the HackRF: 340–430 bursts a second, 94–97 % demodulated, MER 11–12.5 dB. The bursts' FEC is not yet known; what three passes of analysis established and ruled out is in STATUS.
- Live DVB-S2 on the ACM outbound. A slip repair that spoiled a stretch after every slip is fixed, the LDPC gives a hopeless frame up early when the live queue is deep, and a backlog is decoded on up to four lanes at once: BBC News datagrams live went from 35 % to 78 %.
- Multicast TV plays in the app. A transport stream found inside an IP VFO's UDP datagrams (bare, RTP or behind a sender's own header) feeds a TS stage of its own — analyser, BISS, the player, a
.tsbeside the PCAP — and the player starts from the last keyframe, so a picture is up in seconds instead of a GOP later.
GUI. A menu bar (File, View, Satellite, Tools, Audio) with a top row holding a HackRF Start/Stop button, the input level with USB drops, the frequency, the satellite, LO trim and volume; the README's screenshot is new. All beacons marks every 110–180°E Ku beacon on the waterfall, lit where the spectrum shows a line, and names the satellite whose beacons are lit. The in-app player has a volume slider of its own, remembered between runs.
Portable Windows executables for 64-bit Windows 10/11, nothing to install (static C runtime).
| File | What |
|---|---|
decsat-gui.exe |
Desktop app: wideband waterfall with VFOs (DVB-S2/S2X → GSE/IP or MPEG-TS, DVB-S, satellite modems, DVB-CID, generic PSK/QAM, IQ record), IQ files or a HackRF One; a DVB-S2/S2X transmitter (MPEG-TS to the HackRF or a file) |
decsat.exe |
Command line: decsat scan, decsat decode, decsat analyse, decsat scene, decsat cid, decsat test-signals, decsat tx, decsat record, decsat modcods |
decsat-scene_8Msps.cs8 |
Test signal, 8 MS/s, 4 s: DVB-S2 (IP over GSE, and an S2X ACM carrier with MPEG-TS), DVB-S, a TPC 2964 modem carrier and a CW tone |
decsat-cid_3360000sps.cs8 |
Test signal, 3.36 MS/s, 30 s: DVB-S2 QPSK 1/2 at +700 kHz with a DVB-CID under it (identifier and position decode) |
Open a test signal in the GUI (Open IQ…; the sample rate is in the file name) and click a carrier, or run decsat test-signals to make them yourself (tests/README.md).
A HackRF One needs no DLLs (it transmits only when armed: see the README); on Windows it must use the WinUSB driver (Zadig, or the one the official HackRF tools install). IQ files need nothing.
Windows SmartScreen may warn on first start because the files are unsigned ("More info" → "Run anyway").
Built from 80f5908 by GitHub Actions.
SHA-256:
3a21ea33e27aa95048bdc0df314b4a0f9e08386e7a84a9d9778e8914917d483a decsat-gui.exe
be4a760ae915818115f660c6145610fa6b83e5cf0ee2eeb9ca07636f8636d4b2 decsat.exe
e4ef316d5919dbc12343e642cad54902a70c0f9aef1bef6b44f3970006c7a624 decsat-scene_8Msps.cs8
d1d2850158b9fd2f78e91c49043413c83942652a2faa551ccac161a4241f0dfb decsat-cid_3360000sps.cs8
DecSAT 0.10.14 (Windows portable)
What's new in 0.10.14
BISS descrambling. A transport stream scrambled under BISS mode 1 is descrambled with its key: type the 12-digit key (checksums added) or all 16 digits in the TS analyser, the VFO panel or the player, and the stream is descrambled in the TS stage ahead of everything — the analyser, MPE, the .ts file, UDP, HTTP and the player all see it in clear. The key's fit is judged from the PES start codes that appear once it is right, keys are remembered per satellite and carrier and offered again when a scrambled carrier comes back, and the PID flags say what each PID is now. DVB-CSA is implemented in DecSAT (tables and round structure after VLC's csa.c and libdvbcsa, both GPL-2.0-or-later; bit-exact against VLC both ways, about 140 Mbit/s of TS a core). Confirmed live on a scrambled feed. Nothing here attacks keys: a stream is descrambled only with a key you hold, and the design notes say so.
An in-app TV player. ▶ In app on a service plays it inside DecSAT, pictures in sync with sound, with the service and sound track to choose and ffmpeg's own stream lines shown. It runs FFmpeg as a separate program when it is installed (DecSAT does not include it): the programme's PIDs go to its standard input through a bounded tap that never blocks the FEC thread, it writes raw pictures and PCM back, the pictures follow the audio clock, and it is restarted if it stops.
Command line and unattended runs: decsat biss KEY in.ts out.ts descrambles a recording (or --scrambles one); decsat-gui … --biss-key KEY and --watch start a descrambled, playing VFO unattended.
Docs: the README covers BISS and the player and credits the CSA sources; DESIGN's non-goal now reads "breaking conditional access" rather than any descrambling.
Portable Windows executables for 64-bit Windows 10/11, nothing to install (static C runtime).
| File | What |
|---|---|
decsat-gui.exe |
Desktop app: wideband waterfall with VFOs (DVB-S2/S2X → GSE/IP or MPEG-TS, DVB-S, satellite modems, DVB-CID, generic PSK/QAM, IQ record), IQ files or a HackRF One; a DVB-S2/S2X transmitter (MPEG-TS to the HackRF or a file) |
decsat.exe |
Command line: decsat scan, decsat decode, decsat analyse, decsat scene, decsat cid, decsat test-signals, decsat tx, decsat record, decsat modcods |
decsat-scene_8Msps.cs8 |
Test signal, 8 MS/s, 4 s: DVB-S2 (IP over GSE, and an S2X ACM carrier with MPEG-TS), DVB-S, a TPC 2964 modem carrier and a CW tone |
decsat-cid_3360000sps.cs8 |
Test signal, 3.36 MS/s, 30 s: DVB-S2 QPSK 1/2 at +700 kHz with a DVB-CID under it (identifier and position decode) |
Open a test signal in the GUI (Open IQ…; the sample rate is in the file name) and click a carrier, or run decsat test-signals to make them yourself (tests/README.md).
A HackRF One needs no DLLs (it transmits only when armed: see the README); on Windows it must use the WinUSB driver (Zadig, or the one the official HackRF tools install). IQ files need nothing.
Windows SmartScreen may warn on first start because the files are unsigned ("More info" → "Run anyway").
Built from d1d623c by GitHub Actions.
SHA-256:
b2feccc9c871a398951234619377602d553c17b8021feda3b40e5285baab8122 decsat-gui.exe
259222568b975ee4e755e2ec8760c4ea99bac2c909d9e5f4a232986960d7bb07 decsat.exe
e4ef316d5919dbc12343e642cad54902a70c0f9aef1bef6b44f3970006c7a624 decsat-scene_8Msps.cs8
d1d2850158b9fd2f78e91c49043413c83942652a2faa551ccac161a4241f0dfb decsat-cid_3360000sps.cs8
DecSAT 0.10.13 (Windows portable)
What's new in 0.10.13
Satellite beacons. A new Satellite beacon decoder reads a beacon blind: the carrier found and tracked (frequency and drift, level, C/N0, for pointing and rain-fade logging), the telemetry on it — phase modulation by a data subcarrier or by the data itself, or a suppressed-carrier BPSK/QPSK — through a subcarrier loop and bit synchroniser, and the frames: PCM minor and major frames found by their sync words (IRIG 106's and CCSDS's) or blind, the counter, a check byte, a spacecraft clock, and CCSDS coding (Reed–Solomon, the randomiser, TM and AOS transfer frames, the K = 7 convolutional code when the bits carry one), all written from the standards. Worked out on Intelsat 19's beacon (4800 bit/s bi-phase on a 48 kHz subcarrier) and Eutelsat 172B's (9600 symbol/s, K = 7 coded CCSDS, one TM frame a second). The card shows the carrier, charts of C/N0 and frequency, the major frame as a map of which bytes change — click a cell to plot that word across minor frames, pin plots — and the latest frame in hex; Record writes the frames and a level log. The telemetry can be placed by hand (subcarrier offset, reach and bit rate, with draggable marks on the waterfall) for beacons whose data sit beside strong lines. ♪ Pointing tone turns C/N0 into a pitch for aligning a dish by ear.
Beacons window. The Ku-band beacons of the satellites from 110°E to 180°E (54 satellites, 87 beacons: operator documents and FCC grants first, community lists flagged as unconfirmed, satellites with none published listed as such). Pick the satellite, see its beacons marked on the waterfall, and Tune puts a beacon-decoder VFO on one, retuning a live radio to suit. --beacons opens it unattended.
The DVB card. Every DVB-S, S2 or S2X VFO opens with one card in the standard's colour: the standard, CCM or ACM and the symbol rate in its title bar; the MODCOD being received, large, with its margin over the quasi-error-free Es/N0 of the standards' tables and an Es/N0 bar; then the receive chain stage by stage with health dots — demodulator, PL frames, LDPC and BCH with an ACM carrier's MODCODs inside (share, frames good, margin), FEC thread load, baseband. It replaces the physical-layer, FEC and DVB-S grids and the MODCOD table.
Live DVB-S2 at 20 MS/s keeps real time. A 6.75 MBd carrier in an 8 MHz VFO cannot decimate, and the worker needed two cores and dropped half its blocks live. A register-blocked FIR, a PLHEADER correlator built from two real-tap block filters, a cheaper carrier loop and other trims bring it to three-quarters of a core: 483 of 519 datagrams live-equivalent where 305 came through before.
Also:
- Identify names the Intelsat 19 DAMA network's wide call channels (25.6 and 51.2 kBd), and IBS links are no longer offered as CDM-600L voice.
- The TDMA frame finder tries every fraction of the best lag and counts only peaks, so a far multiple no longer passes for the frame (12 wrong frames in 60 seeds before, none now).
- The README describes the DVB card.
Portable Windows executables for 64-bit Windows 10/11, nothing to install (static C runtime).
| File | What |
|---|---|
decsat-gui.exe |
Desktop app: wideband waterfall with VFOs (DVB-S2/S2X → GSE/IP or MPEG-TS, DVB-S, satellite modems, DVB-CID, generic PSK/QAM, IQ record), IQ files or a HackRF One; a DVB-S2/S2X transmitter (MPEG-TS to the HackRF or a file) |
decsat.exe |
Command line: decsat scan, decsat decode, decsat analyse, decsat scene, decsat cid, decsat test-signals, decsat tx, decsat record, decsat modcods |
decsat-scene_8Msps.cs8 |
Test signal, 8 MS/s, 4 s: DVB-S2 (IP over GSE, and an S2X ACM carrier with MPEG-TS), DVB-S, a TPC 2964 modem carrier and a CW tone |
decsat-cid_3360000sps.cs8 |
Test signal, 3.36 MS/s, 30 s: DVB-S2 QPSK 1/2 at +700 kHz with a DVB-CID under it (identifier and position decode) |
Open a test signal in the GUI (Open IQ…; the sample rate is in the file name) and click a carrier, or run decsat test-signals to make them yourself (tests/README.md).
A HackRF One needs no DLLs (it transmits only when armed: see the README); on Windows it must use the WinUSB driver (Zadig, or the one the official HackRF tools install). IQ files need nothing.
Windows SmartScreen may warn on first start because the files are unsigned ("More info" → "Run anyway").
Built from 0cb4fad by GitHub Actions.
SHA-256:
bdae5f634a5b4e6951a949266fe6b15c0fc123d016c17e9044a43840f3e18d9e decsat-gui.exe
ecd626c5e075a7436fb64687207819b8932de72af3096f7823abc332437de661 decsat.exe
e4ef316d5919dbc12343e642cad54902a70c0f9aef1bef6b44f3970006c7a624 decsat-scene_8Msps.cs8
d1d2850158b9fd2f78e91c49043413c83942652a2faa551ccac161a4241f0dfb decsat-cid_3360000sps.cs8
DecSAT 0.10.12 (Windows portable)
What's new in 0.10.12
TDMA. A new VFO decoder takes a burst carrier, or a whole MF-TDMA group in one VFO: the carriers in it are found, each burst is found by its envelope and demodulated on its own, the bursts' common layout (preamble, pilots, fixed fields) is read blind and each burst fitted through it, and the slot grid, the frame and the terminals sending come out — terminals by their preamble field where there is one, the header fields read out per carrier. Slow TDMA that bursts every few seconds is waited for and its carriers looked for again as they start, at 3 % CPU where the first version took two cores. The waterfall marks bursty bands with violet brackets (grey for Bluetooth leaking into the HackRF's IF), a click on one makes a TDMA VFO, and each VFO has a signal mode, SCPC or TDMA. Record writes every burst's symbols for working out the coding offline; the analyser looks for a rate-1/2 convolutional code in them itself.
Intelsat 19 DAMA outbounds. The 102.4 kBd QPSK outbounds of a DAMA telephony network are decoded: 40 112-symbol frames found by their sync word, pilots every 16 symbols, the additive scrambler, the packet stream and, from it, the call signalling — request acknowledgements and channel assignments matched into calls, each naming its terminal, the call reference and the call carriers assigned. Identify names the outbounds and the call channels; the survey and scan --decode run the decoder on an outbound by themselves.
Comtech TPC 7/8. Worked out from a live 171.43 kS/s carrier: 16 320-bit frames with their own unique word and a (128,120) × (128,120) extended-Hamming product code. The TPC decoder looks for both unique words and keeps to the one it finds; the card and the report name the code.
Programme audio. A Comtech IBS carrier's frames under the IESS-309 synchronous scrambler turned out to carry stereo Standard apt-X, now found and decoded (a port of FFmpeg's aptX decoder, with the broadcast stream's own field layout and its AutoSync word; the upper bands fitted to the carrier until Standard apt-X's tables are known), and a 256 kbit/s TPC carrier carries MPEG-1 Layer II. Both play in the app and record (.wav / .mp2), with a programme card and --programme-record.
Convolutional codes found blind. Any rate-1/2 convolutional code up to K = 10 is found from the parity check its coded stream satisfies, decoded with a generic soft Viterbi, and followed through 90° turns. The Viterbi chain runs this beside the K = 7 search, Generic PSK looks for one and says when a carrier has none, and Identify names the code it finds.
Receiver and GUI.
- The generic PSK demodulator coasts through short interference bursts (Bluetooth adverts in the HackRF's IF made 10 kBd carriers slip every few seconds; now one or two slips in two minutes). The README says how to tune away from the leak.
- Plans and carrier labels are kept per satellite: a satellite list in the toolbar says which one the dish is on.
- The README links a new signal gallery,
docs/signal-gallery.html: an animated page showing what each kind of carrier looks like and what DecSAT does with it. - The README credits FFmpeg's aptX decoder (LGPL-2.1-or-later).
Portable Windows executables for 64-bit Windows 10/11, nothing to install (static C runtime).
| File | What |
|---|---|
decsat-gui.exe |
Desktop app: wideband waterfall with VFOs (DVB-S2/S2X → GSE/IP or MPEG-TS, DVB-S, satellite modems, DVB-CID, generic PSK/QAM, IQ record), IQ files or a HackRF One; a DVB-S2/S2X transmitter (MPEG-TS to the HackRF or a file) |
decsat.exe |
Command line: decsat scan, decsat decode, decsat analyse, decsat scene, decsat cid, decsat test-signals, decsat tx, decsat record, decsat modcods |
decsat-scene_8Msps.cs8 |
Test signal, 8 MS/s, 4 s: DVB-S2 (IP over GSE, and an S2X ACM carrier with MPEG-TS), DVB-S, a TPC 2964 modem carrier and a CW tone |
decsat-cid_3360000sps.cs8 |
Test signal, 3.36 MS/s, 30 s: DVB-S2 QPSK 1/2 at +700 kHz with a DVB-CID under it (identifier and position decode) |
Open a test signal in the GUI (Open IQ…; the sample rate is in the file name) and click a carrier, or run decsat test-signals to make them yourself (tests/README.md).
A HackRF One needs no DLLs (it transmits only when armed: see the README); on Windows it must use the WinUSB driver (Zadig, or the one the official HackRF tools install). IQ files need nothing.
Windows SmartScreen may warn on first start because the files are unsigned ("More info" → "Run anyway").
Built from 7ef9c8d by GitHub Actions.
SHA-256:
49217aa382ad03b757f529d78e7e04c7ed059f908d826bce115ce39bce10a154 decsat-gui.exe
38fa0be3da862fcea8d253863da92a3573bba5ec1388176bb4d6831b4b5305b9 decsat.exe
e4ef316d5919dbc12343e642cad54902a70c0f9aef1bef6b44f3970006c7a624 decsat-scene_8Msps.cs8
c17c9b2c73c85b31240384698800863473517f641c5ba3afe2add47f0c6715b3 decsat-cid_3360000sps.cs8
DecSAT 0.10.11 (Windows portable)
What's new in 0.10.11
VFOs stay on their carriers when the radio retunes. Dragging the band past its edge, the frequency bar or the HackRF panel used to move the radio and leave every VFO at its offset from the centre, so the VFOs swept across the band with the screen — and, as they went, each one's findings were learnt onto every carrier it crossed, leaving "CDM-570L TPC" and "RADAR" tags where they did not belong. Now a retune moves every VFO by its opposite, as SDR++ does, and its decoder carries on rather than starting afresh (a VFO you move yourself still starts afresh). A VFO carried out of the span idles, marked out of the span, and Tune to it in its settings brings the radio back far enough to take it in. Carrier labels are learnt only from what a VFO found on the carrier it is on now, which also stops a dragged VFO stamping its last carrier on the ones it crosses. A file's centre only labels the axis, so nothing moves there.
Three tooltips whose line continuations had become runs of spaces read properly again, and the README says what the drag does.
Portable Windows executables for 64-bit Windows 10/11, nothing to install (static C runtime).
| File | What |
|---|---|
decsat-gui.exe |
Desktop app: wideband waterfall with VFOs (DVB-S2/S2X → GSE/IP or MPEG-TS, DVB-S, satellite modems, DVB-CID, generic PSK/QAM, IQ record), IQ files or a HackRF One; a DVB-S2/S2X transmitter (MPEG-TS to the HackRF or a file) |
decsat.exe |
Command line: decsat scan, decsat decode, decsat analyse, decsat scene, decsat cid, decsat test-signals, decsat tx, decsat record, decsat modcods |
decsat-scene_8Msps.cs8 |
Test signal, 8 MS/s, 4 s: DVB-S2 (IP over GSE, and an S2X ACM carrier with MPEG-TS), DVB-S, a TPC 2964 modem carrier and a CW tone |
decsat-cid_3360000sps.cs8 |
Test signal, 3.36 MS/s, 30 s: DVB-S2 QPSK 1/2 at +700 kHz with a DVB-CID under it (identifier and position decode) |
Open a test signal in the GUI (Open IQ…; the sample rate is in the file name) and click a carrier, or run decsat test-signals to make them yourself (tests/README.md).
A HackRF One needs no DLLs (it transmits only when armed: see the README); on Windows it must use the WinUSB driver (Zadig, or the one the official HackRF tools install). IQ files need nothing.
Windows SmartScreen may warn on first start because the files are unsigned ("More info" → "Run anyway").
Built from 3ef8d74 by GitHub Actions.
SHA-256:
1bec435c1d919c1a119028dcbf42fde7c6c73a446e495b0f5dfdd4d842a0cfec decsat-gui.exe
d161f007ee15b02a9f9fd991c5f0f4ad16566a00db5f4051585523e4283b5987 decsat.exe
e4ef316d5919dbc12343e642cad54902a70c0f9aef1bef6b44f3970006c7a624 decsat-scene_8Msps.cs8
c17c9b2c73c85b31240384698800863473517f641c5ba3afe2add47f0c6715b3 decsat-cid_3360000sps.cs8
DecSAT 0.10.10 (Windows portable)
What's new in 0.10.10
ED-137 radio over IP. Air traffic control radio carried as VoIP is read in the IP stage: the signalling in ED-137 RTP header extensions (PTT type, squelch, PTT id, the feature fields such as signal quality and CLIMAX delay, in the first edition's and ED-137A's profiles), each stream's state with a log of its changes, and the SIP dialogs that set the streams up. The G.711 sound of packets whose PTT or squelch is on is decoded and played through the call-voice path — one stream at a time, under the voice floor, with ▶ and ● as for the other voice — and the IP card shows it as Radio voice (ED-137). decsat pcap --radio-csv writes the signalling packet by packet.
Comtech EDMAC with bridged Ethernet. A TPC 2964 carrier whose data are V.35-scrambled EDMAC frames (1008 bits, 21/20, with its M&C channel) around 258-byte packet blocks of Ethernet frames now goes to the IP stage: header-compressed UDP packets are rebuilt from their context and kept only when their checksum checks. On the live 8PSK carrier that is SNMP, BGP, SMB, SIP and ED-137-style RTP, every IP header checksum good.
Live IP into Wireshark. The PCAP has its own switch now, on every decoder that carries IP, and ▶ Live beside it starts Wireshark capturing from its standard input and feeds it the packets as they come (a thread of its own behind a bounded queue, so a slow Wireshark costs packets, never the decoder's time; its RTP heuristic on, so ED-137 streams are dissected mid-session). Closing Wireshark ends the feed. decsat decode … --wireshark does the same, and ends the run when Wireshark closes; decsat-gui … --vfo-at … --wireshark starts one unattended.
Carriers that know their decoder. A VFO made on a carrier the waterfall knows — from a survey or an earlier decode — starts with the decoder it needs; DVB-S2 and DVB-S carriers are learnt and tagged too. A click on an unknown carrier's bracket now does what the Survey does, but keeps the VFO: Identify, then the decoder for what it saw (DVB-S2 to GSE/IP or MPEG-TS, the modem carriers through the Comtech type found), on the centre and rate it measured; shift-click gives exactly the decoder chosen for new VFOs. --claim-auto for unattended runs.
GSE outbounds that bend the standard. One network's four ACM outbounds end every data field with a CRC-32 over the BBHEADER and field, count the header in GSE_LENGTH and use split fragment ids; the trailer is checked and stripped, fragmented PDUs reassembled by that network's own rule, and with no IP the variant that fits best is reported. Non-IP PDUs that are random bytes are reported as encrypted rather than "no IP found yet".
Smaller things:
- The carrier loop is no wider than 1 kHz, so the 477.9 kS/s Comtech 8PSK carrier stops slipping (135 slips in 6 s before, none after).
- The radar scope draws the other radars decoded on other VFOs too, each at its place with its tracks in this scope's frame (an Other radars switch).
- Reset labels in the toolbar forgets every carrier known, and the Survey window can forget those in the span or all of them.
--ampturns the HackRF's RF amplifier on for unattended runs; VFOs placed from the command line make a one-off run that leaves the saved session alone.- The README's survey section no longer says 8PSK carriers have no decoder.
Portable Windows executables for 64-bit Windows 10/11, nothing to install (static C runtime).
| File | What |
|---|---|
decsat-gui.exe |
Desktop app: wideband waterfall with VFOs (DVB-S2/S2X → GSE/IP or MPEG-TS, DVB-S, satellite modems, DVB-CID, generic PSK/QAM, IQ record), IQ files or a HackRF One; a DVB-S2/S2X transmitter (MPEG-TS to the HackRF or a file) |
decsat.exe |
Command line: decsat scan, decsat decode, decsat analyse, decsat scene, decsat cid, decsat test-signals, decsat tx, decsat record, decsat modcods |
decsat-scene_8Msps.cs8 |
Test signal, 8 MS/s, 4 s: DVB-S2 (IP over GSE, and an S2X ACM carrier with MPEG-TS), DVB-S, a TPC 2964 modem carrier and a CW tone |
decsat-cid_3360000sps.cs8 |
Test signal, 3.36 MS/s, 30 s: DVB-S2 QPSK 1/2 at +700 kHz with a DVB-CID under it (identifier and position decode) |
Open a test signal in the GUI (Open IQ…; the sample rate is in the file name) and click a carrier, or run decsat test-signals to make them yourself (tests/README.md).
A HackRF One needs no DLLs (it transmits only when armed: see the README); on Windows it must use the WinUSB driver (Zadig, or the one the official HackRF tools install). IQ files need nothing.
Windows SmartScreen may warn on first start because the files are unsigned ("More info" → "Run anyway").
Built from 27cb8d1 by GitHub Actions.
SHA-256:
408dbdcdfdddfe2fe07dd874de2f51ca3d038c7a9979de5346d88103fce8893e decsat-gui.exe
c4b79bd1b3099593e47c59ab61aa8fa330660992c10284b085267ae44910d2a8 decsat.exe
e4ef316d5919dbc12343e642cad54902a70c0f9aef1bef6b44f3970006c7a624 decsat-scene_8Msps.cs8
c17c9b2c73c85b31240384698800863473517f641c5ba3afe2add47f0c6715b3 decsat-cid_3360000sps.cs8
DecSAT 0.10.9 (Windows portable)
What's new in 0.10.9
TPC 2964 on 8PSK. The Comtech 8PSK carriers that read "8PSK, no DVB-S2 PLHEADER" can now be decoded as tpc_2964. Identify names them, and the TPC decoder and the Comtech type-found model pick up 8PSK by themselves. The bits are Gray-mapped as the RCV-20x manual's Figure 3.1 shows, and a frame (988 symbols) may start mid-symbol. A live 238.96 kS/s carrier decodes 3557 of 3800 frames in 15 s. Its payload (Comtech EDMAC framing, 512 kbit/s, bridged Ethernet) is not decoded yet.
The BSC feed's ping in the radar scope. A PH-ML (BSC) track's details box now shows its ping:
- Ping: where the beam was when it saw the plot, from the time after north.
- Seen by: what saw it, read from the plot's flags: primary only, a secondary (SSR) reply, or probably both.
- Strength?: a value that falls with range, probably the plot's amplitude.
These are read off a recording rather than taken from a published format, and the box says so.
Portable Windows executables for 64-bit Windows 10/11, nothing to install (static C runtime).
| File | What |
|---|---|
decsat-gui.exe |
Desktop app: wideband waterfall with VFOs (DVB-S2/S2X → GSE/IP or MPEG-TS, DVB-S, satellite modems, DVB-CID, generic PSK/QAM, IQ record), IQ files or a HackRF One; a DVB-S2/S2X transmitter (MPEG-TS to the HackRF or a file) |
decsat.exe |
Command line: decsat scan, decsat decode, decsat analyse, decsat scene, decsat cid, decsat test-signals, decsat tx, decsat record, decsat modcods |
decsat-scene_8Msps.cs8 |
Test signal, 8 MS/s, 4 s: DVB-S2 (IP over GSE, and an S2X ACM carrier with MPEG-TS), DVB-S, a TPC 2964 modem carrier and a CW tone |
decsat-cid_3360000sps.cs8 |
Test signal, 3.36 MS/s, 30 s: DVB-S2 QPSK 1/2 at +700 kHz with a DVB-CID under it (identifier and position decode) |
Open a test signal in the GUI (Open IQ…; the sample rate is in the file name) and click a carrier, or run decsat test-signals to make them yourself (tests/README.md).
A HackRF One needs no DLLs (it transmits only when armed: see the README); on Windows it must use the WinUSB driver (Zadig, or the one the official HackRF tools install). IQ files need nothing.
Windows SmartScreen may warn on first start because the files are unsigned ("More info" → "Run anyway").
Built from f11c56e by GitHub Actions.
SHA-256:
dcc7b07a85d8f328f742ca8a03d2e82b814729d3075210388139d0e6f610e3e0 decsat-gui.exe
edd31346e7359215447389bc4cbefbd93d09580477afc4fc327a779ee5b1cede decsat.exe
e4ef316d5919dbc12343e642cad54902a70c0f9aef1bef6b44f3970006c7a624 decsat-scene_8Msps.cs8
c17c9b2c73c85b31240384698800863473517f641c5ba3afe2add47f0c6715b3 decsat-cid_3360000sps.cs8
DecSAT 0.10.8 (Windows portable)
What's new in 0.10.8
Survey. A new Survey… button in the toolbar tries every carrier the receiver sees, in frequency order, a few at a time (1–4, default 2). Each carrier gets a temporary VFO of its own. Voice isn't played, nothing is recorded, and the VFO is never saved with your session.
- Identify runs first.
- Then the decoder for what it found: DVB-S2 goes to GSE/IP, the modem carriers to the Comtech CDM auto-detect model.
- That decoder gets a set time to lock its code (default 40 s). A carrier that doesn't lock in time is left as "no lock".
- A carrier that locks is watched a few seconds more for what it carries.
The window lists each carrier's frequency, SNR, symbol rate, outcome, what it decoded as (the CDM model, Q-Flex or DVB-S2), what it carries (ADS-B, radar, voice) and its payload. VFO puts a lasting VFO on any decoded carrier, and Save CSV writes the table to the output folder. The waterfall's carrier tags fill in as the survey goes. Retuning the radio stops it. --survey starts it in unattended runs. On an 8 MS/s HackRF capture it decoded 26 of 29 carriers in under three minutes.
Portable Windows executables for 64-bit Windows 10/11, nothing to install (static C runtime).
| File | What |
|---|---|
decsat-gui.exe |
Desktop app: wideband waterfall with VFOs (DVB-S2/S2X → GSE/IP or MPEG-TS, DVB-S, satellite modems, DVB-CID, generic PSK/QAM, IQ record), IQ files or a HackRF One; a DVB-S2/S2X transmitter (MPEG-TS to the HackRF or a file) |
decsat.exe |
Command line: decsat scan, decsat decode, decsat analyse, decsat scene, decsat cid, decsat test-signals, decsat tx, decsat record, decsat modcods |
decsat-scene_8Msps.cs8 |
Test signal, 8 MS/s, 4 s: DVB-S2 (IP over GSE, and an S2X ACM carrier with MPEG-TS), DVB-S, a TPC 2964 modem carrier and a CW tone |
decsat-cid_3360000sps.cs8 |
Test signal, 3.36 MS/s, 30 s: DVB-S2 QPSK 1/2 at +700 kHz with a DVB-CID under it (identifier and position decode) |
Open a test signal in the GUI (Open IQ…; the sample rate is in the file name) and click a carrier, or run decsat test-signals to make them yourself (tests/README.md).
A HackRF One needs no DLLs (it transmits only when armed: see the README); on Windows it must use the WinUSB driver (Zadig, or the one the official HackRF tools install). IQ files need nothing.
Windows SmartScreen may warn on first start because the files are unsigned ("More info" → "Run anyway").
Built from 08e788f by GitHub Actions.
SHA-256:
9219febf28d10d5ae464941a75eab99e3bf815cf17a59b739db45b7f9682eb93 decsat-gui.exe
c23428d2fafc36d38a736f7a3a316ead57259d6cc587fec499918741e9b190f3 decsat.exe
e4ef316d5919dbc12343e642cad54902a70c0f9aef1bef6b44f3970006c7a624 decsat-scene_8Msps.cs8
c17c9b2c73c85b31240384698800863473517f641c5ba3afe2add47f0c6715b3 decsat-cid_3360000sps.cs8
DecSAT 0.10.7 (Windows portable)
What's new in 0.10.7
The CDM type in the VFO list. Each VFO in the side panel's list ends with the same light-blue tag as the waterfall's carrier tags: CDM-570L trunk, Viterbi or TPC; CDM-600L voice; or Q-Flex. The tag shows the modem the decoder found once its code locked, else the one kept for that carrier. A VFO set by hand to "CDM-570L TPC" on a trunk reads "CDM-570L trunk", because that is what its data turned out to be.
Portable Windows executables for 64-bit Windows 10/11, nothing to install (static C runtime).
| File | What |
|---|---|
decsat-gui.exe |
Desktop app: wideband waterfall with VFOs (DVB-S2/S2X → GSE/IP or MPEG-TS, DVB-S, satellite modems, DVB-CID, generic PSK/QAM, IQ record), IQ files or a HackRF One; a DVB-S2/S2X transmitter (MPEG-TS to the HackRF or a file) |
decsat.exe |
Command line: decsat scan, decsat decode, decsat analyse, decsat scene, decsat cid, decsat test-signals, decsat tx, decsat record, decsat modcods |
decsat-scene_8Msps.cs8 |
Test signal, 8 MS/s, 4 s: DVB-S2 (IP over GSE, and an S2X ACM carrier with MPEG-TS), DVB-S, a TPC 2964 modem carrier and a CW tone |
decsat-cid_3360000sps.cs8 |
Test signal, 3.36 MS/s, 30 s: DVB-S2 QPSK 1/2 at +700 kHz with a DVB-CID under it (identifier and position decode) |
Open a test signal in the GUI (Open IQ…; the sample rate is in the file name) and click a carrier, or run decsat test-signals to make them yourself (tests/README.md).
A HackRF One needs no DLLs (it transmits only when armed: see the README); on Windows it must use the WinUSB driver (Zadig, or the one the official HackRF tools install). IQ files need nothing.
Windows SmartScreen may warn on first start because the files are unsigned ("More info" → "Run anyway").
Built from 57506a2 by GitHub Actions.
SHA-256:
9b32a7675f4da3323b333f12c1f27e3fa08ce01006a002b5b2e4beed309d2072 decsat-gui.exe
f220b3c2d4661838559badaffc8a3464445bdd1a94fdc0c573c7c52bfb20ba9f decsat.exe
e4ef316d5919dbc12343e642cad54902a70c0f9aef1bef6b44f3970006c7a624 decsat-scene_8Msps.cs8
c17c9b2c73c85b31240384698800863473517f641c5ba3afe2add47f0c6715b3 decsat-cid_3360000sps.cs8