Skip to content

Instantly share code, notes, and snippets.

@darksidelemm
Last active December 31, 2023 16:57
Show Gist options
  • Save darksidelemm/b84278fdef628304282d69ed02eb30a4 to your computer and use it in GitHub Desktop.
Save darksidelemm/b84278fdef628304282d69ed02eb30a4 to your computer and use it in GitHub Desktop.
Decoding FSK9k6 telemetry from SatNOGS observations.

Decoding FSK9k6 transmissions from SatNOGS observations using Direwolf

Dependencies

Setup

Create a file called ax25_9600.conf with the following contents

# Cut-down Direwolf config for 9600 baud FSK decoding
ADEVICE - null
ACHANNELS 1
CHANNEL 0
MODEM 9600
MYCALL N0CALL

Create demod_ax25_9k6.sh with the following contents:

#!/bin/bash
# Demodulate 9600 baud FSK (FM demodulator) using direwolf
# Thanks to cshields and csete :-)
sox -t ogg $1 -esigned-integer -b 16 -r 48000 -t raw - | direwolf -B 9600 -b 16 -n 1 -r 48000 -q hd -t 0 -q h -q d -d p -d t -a 0 -c ax25_9600.conf -

Set this file to be executable using:

$ chmod +x demod_ax25_9k6.sh

Usage

Download the OGG file from the observation page using wget or otherwise. For example, for observation https://network.satnogs.org/observations/781981/ the ogg file can be downloaded using the link at the bottom of the sidebar (look for the download section)

$ wget https://network.satnogs.org/media/data_obs/781981/satnogs_781981_2019-06-29T07-37-48.ogg

The file can then be decoded by running:

$ ./demod_ax25_9k6.sh satnogs_781981_2019-06-29T07-37-48.ogg

Which produces the output:

Dire Wolf version 1.3
Includes optional support for:  gpsd
Setting such a small audio statistics interval will produce inaccurate sample rate display.

Reading config file ax25_9600.conf
Audio input device for receive: stdin  (channel 0)
Audio out device for transmit: null  (channel 0)
Channel 0: 9600 baud, K9NG/G3RUH, , 48000 sample rate x 2.
Note: PTT not configured for channel 0. (Ignore this if using VOX.)
Ready to accept AGW client application 0 on port 8000 ...
Ready to accept KISS client application on port 8001 ...
Use -p command line option to enable KISS pseudo terminal.

Audio input level is too high.  Reduce so most stations are around 50.
[0] CQCQCQ>ACRUX1:<0x05>
------
U frame UI: p/f=0, No layer 3 protocol implemented., length = 271
 dest    ACRUX1  0 c/r=0 res=3 last=0
 source  CQCQCQ  0 c/r=1 res=3 last=1
  000:  82 86 a4 aa b0 62 60 86 a2 86 a2 86 a2 e1 03 f0  .....b`.........
  010:  05 00 00 05 1e 00 e5 33 03 00 a5 33 50 0c 00 80  .......3...3P...
  020:  00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80  ................
  030:  00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80  ................
  040:  00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80  ................
  050:  00 80 90 5f 7e 00 00 00 00 00 e9 1e 00 00 00 00  ..._~...........
  060:  00 00 00 00 54 4f 44 4f 3a 20 50 6c 65 61 73 65  ....TODO: Please
  070:  20 74 65 6c 6c 20 4d 53 50 20 74 68 61 74 20 74   tell MSP that t
  080:  68 65 69 72 20 73 61 74 65 6c 6c 69 74 65 20 77  heir satellite w
  090:  6f 72 6b 73 00 00 00 00 00 00 00 00 00 00 00 00  orks............
  0a0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  0b0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  0c0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  0d0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  0e0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15  ................
  0f0:  0e f0 f8 18 10 f3 1a 23 c5 86 10 44 19 81 6e 94  .......#...D..n.
  100:  ff e5 f2 ed e5 0f c3 df 58 d3 b0 ba 66 85 7e     ........X...f.~
------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment