Hi all,
A question I hear often is "why use SkyRoof's built-in telemetry decoder when I already have UZ7HO SoundModem, Direwolf, or gr-satellites?" I'd like to explain how the built-in decoder is designed, and — more importantly — show you how to compare it against those other programs on your own station, so you can see for yourself whether it decodes more of the frames you care about.
How the built-in decoder is designedA few choices set it apart from the audio-based decoders:
It decodes straight from the radio. The other programs work on audio: SkyRoof (or another SDR program) turns the satellite signal into sound, passes it through a virtual audio cable, and the modem decodes that sound. SkyRoof's built-in decoder skips those steps and works directly on the signal coming from the SDR. Fewer conversions means less of the original signal is lost along the way.
It's built for short signal bursts. Satellite telemetry usually comes in short bursts with quiet gaps in between. SkyRoof looks at each whole burst at once and measures the signal's characteristics across the entire burst before it decodes. Audio modems demodulate continuously and need a short run-up to lock on at the start of every burst — time during which the first data can be missed. SkyRoof doesn't need that run-up.
It's tailored to the type of signal. Different satellites use different kinds of signals (GMSK, GFSK, and wide FSK). SkyRoof uses a decoding method matched to each type, rather than one general-purpose method for all of them.
It sets itself up automatically. SkyRoof looks up each satellite's signal settings from the database, so there's nothing to configure by hand. While building it I've also corrected many wrong entries in that shared database, which sometimes makes the difference between decoding and not.
Whether these design choices actually give you more decoded frames depends on your antenna, your radio, and the passes you catch — so the best thing to do is test it side by side.
How to compare it yourself, using a Virtual Audio Cable (VAC)The idea is simple: let SkyRoof and another decoder listen to the exact same signal at the same time, and compare how many good frames each one gets.
- Install a Virtual Audio Cable — VB-Audio CABLE (get the 2024 version), then reboot.
- In SkyRoof, select the satellite and its data transmitter. Many satellites have more than one transmitter on the same frequency. If you do not have any decoding, try a transmitter with a different Baud rate or mode.
- open View / Telemetry to run the built-in decoder.
- Go to Tools / Settings → Output Stream, choose I/Q to VAC (best for gr-satellites) or Audio to VAC (for UZ7HO or Direwolf), set Gain to 0, and pick the CABLE device. Then click the Output Stream label on the status bar to turn it on.
- Point the other decoder at the CABLE output:
- gr-satellites: gr_satellites <NORAD> --audio "CABLE Output (VB-Audio Virtual Cable)" --samp_rate 48000 --iq
- UZ7HO SoundModem / Direwolf: set the program's input device to the CABLE output and pick the matching mode (for example, FSK G3RUH 9600).
- Run the same pass through both and compare the number of good frames.
Satellites I've decoded with SkyRoof so far(mostly limited by the available antenna).
NORAD number in parentheses.
- SAKHACUBE-CHOLB (67290)
- UNISAT-7 (47945)
- NIGHTJAR (60535)
- Suomi 100 (43804)
- GALAPAGOS-UTE-SW (67279)
- CAS-3H (40908)
- CubeSX-HSE-3 (57178)
- TEVEL2-7 (63238)
- Svyatobor-1 (57187)
- KuzGTU-1 (57217)
- NUSHSat1 (63211)
- TEVEL2-4 (63213)
- Luca (98449)
- TEVEL2-2 (63219)
- AISTECHSAT-2 (43768)
- TEVEL2-5 (63214)
- UmKA-1 (57172)
- Monitor-4 (57182)
- CUTE (49263)
- AEPEX (68506)
- UND ROADS 2 (64549)
- HADES-SA (68446)
- BISONSAT (40974)
- TIGRISAT (40043)
- RANDEV (52898)
- TECHSAT 1B (25397)
- ROBUSTA-3A (60243)
- NETSAT 1 (46506)
- LASARsat (62391)
- CatSat (60246)
The list keeps growing. If you decode a satellite that isn't here, or you try a side-by-side comparison, please share your results — including any case where another decoder does better, since those are the ones that help me improve SkyRoof.
It will help me if you record the I/Q stream to a .WAV file and send it to me for analysis in addition to the decoded data.
73,
Alex VE3NEA