Postmortem decoding of SSTV/APRS

This years holiday I took my ICOM ID-51 for some portable activities in D-Star. Luckily there also were some announcements of SSTV acitiviy as well as school contacts from the ISS and also a weather balloon start from Minden Germany. As space was limited I had to deal with the radio and my mobile.

SSTV decoding went quite fine using the Android app Robot36. Audio was loosely coupled to the built-in microphone of the mobile. Basically it was just standing a few centimeters besides the mobile.

Mobile SSTV setup for ISS reception
Mobile SSTV setup for ISS reception

This resulted in very nice received images though it sometimes suffered from wind noise. Peter M0IEI came up with a nice trick: Activate the recording function of the ICOM ID-51, record the pass and decode it later with SSTV software. And that it was I tried. In fact I did both: Recording the audio while also decoding live. The result in the following pic. On the left side is the picture live decoded with Robot36. The right side shows the picture decoded with qsstv from the audio recording afterwards.

Comparison of live recorded SSTV with postmortem audio recording decode
Comparison of live recorded SSTV with postmortem audio recording decode

In order to feed the raw .wav file to qsstv and have it decoded properly it has to be resampled to the sample rate that qsstv uses. In my case it was 48kHz while the raw audio file had only 8kHz. This can easily be achied using sox:

$ sox input.wav -r 48000 output.wav

All pics decoded with this portable setup can be found on [1] and with others I decoded on [2].

APRS with Weather Balloon

A day later there was a weather ballon launch from the area around my home QTH. I was about 350km away from there. I tried to feed the audio to aprsdroid app on my mobile but wasn’t succesful decoding even a single packet. So why not try the trick with audio recording for APRS as well? Turned out: It works! Here is what I did:

I could hear the APRS packets clearly from the speaker and it could have been those from the ballon because from the time it started I had APRS bursts in regular intervals where the frequency has been more or less quiet before (and after landing). So I again acitvated the audio recording function and put the radio on a table outside and let it record the APRS activity to the SD card.

Afterwards I copied the file to the computer and re-sampled it as I did for the SSTV recordings. Then I used direwolf as soft modem to decode the packets.

Direwolf decoding recorded APRS packets from a file
Direwolf decoding recorded APRS packets from a file

Direwolf was started to read from STDIN and the input file cat-ted to STDOUT:

$ cat aprs.wav | direwolf -c /etc/direwolf.conf -q h -

Ok so if that works why not having it display on a map what and where it has been decoded. So I attached xastir to the AGWPE port to read what direwolf decoded from the file. Only difficultiy is to more or less start the interface in xastir simulataniously to starting direwolf in order to not loose the first packets. On the other hand the socket is not available before direwolf runds. So it is a bit of a klick klick at the same time. That resulted in drawing the APRS track of DL0MI-11 on an openstreetmap.

APRS Track of Data Decoded from Audio Recording
APRS Track of Data Decoded from Audio Recording

At the time of recording the balloon was about 350km away and 20 to 30km altitude. So nice reception of th 300mW APRS transmitter onboard to the simple rubber antenna of my ICOM ID-51 in JO54mk.

Displaying decoded APRS Trafic in Xastir
Displaying decoded APRS Trafic in Xastir

References

[1] https://twitter.com/flo_0_/status/1013543500061782017
[2] http://www.spaceflightsoftware.com/ARISS_SSTV/bycallsign.php