Repository navigation
HADESx Decoder 1.1.0
HADESx Decoder 1.1.0
HADESx Decoder 1.1.0 (the project was called UNNE-1B Decoder) decodes the amateur-radio satellites of AMSAT-EA's HADES family: UNNE-1B (HADES-E2), HADES-SA and HADES-L. The rename, WAV recordings at any sample rate, native HADES-SA and HADES-L decoders checked against AMSAT-EA's own decoders, the per-type folder and its report, and tools to inspect recordings are the main changes. The old command and module names keep working.
Install: see the README, or docs/windows.md (also in the zip as START-HERE-WINDOWS.txt).
Changes
HADESx Decoder 1.1.0 (the project was called UNNE-1B Decoder) decodes the amateur-radio satellites of AMSAT-EA's HADES family: UNNE-1B (HADES-E2), HADES-SA and HADES-L. The rename, WAV recordings at any sample rate, native HADES-SA and HADES-L decoders checked against AMSAT-EA's own decoders, the per-type folder and its report, and tools to inspect recordings are the main changes. The old command and module names keep working.
- README rewritten for the three satellites: the HADES family opening, a comparison table, a Quick start that decodes the two-satellite SDR Console example, one section per satellite, updated status notes.
- Renamed to HADESx Decoder (it covers UNNE-1B / HADES-E2, HADES-SA and HADES-L): package
hadesx, commandshadesx-decode,hadesx-voice,hadesx-report,grc/hadesx_decoder.grc,dist/hadesx_standalone.py. The oldunne1b-*commands,import unne1bandpython3 -m unne1bkeep working (deprecated), and folders made before the rename keep their.unne1b_ingested.jsonmemory. - Documentation brought up to date (layout and tests, limitations and roadmap, the signal chain at any sample rate, README introduction) and
tests/test_docs.py, which keeps every option, tool, module and link documented. unne1b-report FOLDER: print the telemetry of a per-type output folder on the console, oldest first (--summary,--brief,--sat,--type,--since,--until;--dllrenders UNNE-1B packets with all their fields from the saved data).- Example:
examples/iq/sdrconsole_two_satellites.wav, an excerpt of an SDR Console recording of UNNE-1B and HADES-L shared by José Elías Díaz, EB1AO (WAV, two satellites, two baud rates), with a test. tools/cut_excerpt.py: cut a small excerpt (segments, filtering to a lower rate, frequency shift for two distant satellites) out of a big recording as a labelled I/Q WAV;unne1b.iqfile.write_iq_wav.- File names of SDR Console, SDR# and HDSDR give the start time and frequency; a WAV with a zero rate field is read from its byte rate; SDR Console's own
auxichunk is ignored;--guess-samples;tools/wav_probe.pyand a separatetools/README.mddocumenting the recording survey and probe. - WAV I/Q recordings (sample rate, format, centre frequency and start time from the header), any sample rate from 48 kHz to several MHz,
--swap-iq, rate and frequency from a raw file's name,tools/iq_survey.py; the single-file build includes all modules again. - Console output shows the decoded fields of HADES-SA and HADES-L frames; PN9 packets are labelled "no CRC in this packet type" instead of "CRC FAIL - unverified".
- HADES-L: Lofith (type 7) and ICM message (type 15) decoders, HADES-L status and time-series variants, per-Lofith-frame files; HADES-SA and HADES-L decoders verified against each package's own decoder DLL (golden data,
tools/dll_oracle.py,tools/compare_with_dll.py); times are 32-bit and NaN prints asnan, like the Windows tool; docs distinguish the three packages. - Voice WAVs are identified by satellite (file name and tags inside the file) and never mix satellites;
unne1b-voice FOLDERbuilds the WAV from a per-type output folder (best pass,--list-passes,--pass,--combine,--pick); isolated corrupted frame numbers are dropped;--voice-wavoutput names now end in the satellite name. - First real HADES-L and HADES-SA recordings: PN9 (and SSDV) packets are taken as received, not descrambled (verified on HADES-L); frames that failed their CRC are never written to the
--outdirfolder; tests with real HADES-L frames. - Documentation updated after AMSAT-EA's reply (October 2026): attribution and the UNNE-1B document's CC BY 4.0 licence confirmed; the 1125 Hz tone spacing in document v1.01 was an error (about 1.64 kHz is right).
- Per-type output folder (
--outdir, flowgraph variableout_dir): the files of AMSAT-EA's Windows tool, updated in place with unique additions; HADES-SA decoders ported from AMSAT-EA's source and checked on about 7 800 frames against the compiled original; SSDV image packets (CRC-32 checked) and PN9 link tests are recognised. - HADES-SA / HADES-L frame support: length-byte layout, automatic 200 + 800 baud detection (
--baud), per-satellite packet type names,--emit-unverified; frames of satellites the DLL does not know are shown as raw bytes. Tested with AMSAT-EA's sample frames and synthetic signals only. - Optional time stamp on the deframer's
hexport (hex_time: none, utc, local, unix, stream;rec_startfor recordings). - New
hexmessage port on the deframer block: one hex string per decoded frame (the same bytes as theframesPDU payload). - Notes on the origin of
hadesr.dll(AMSAT-EA's, not Andy UZ7HO's; SoundModem is his) and the tested DLL version (1.08, compiled 5 January 2025). - Authorship statement added (developed by N6RFM with the help of Claude); copyright holder in LICENSE set to N6RFM.