Tutorial: send and receive SSDV over AFSK 1200 via V/U FM Voice satellite transmitter

Who needs this? Those who want to send and receive SSDV through their FM transceiver.

ps. if you have better approach, please share and comment here. thank you

Usually, SSDV is sent using BPSK modulation with special equipment that cannot be transmitted through frequency modulation like handheld FM. This time, I will share a tutorial on how to send SSDV images using just a computer and a regular handheld FM.

The keyword is SSDV. SSDV is a robust version of the JPEG image format, for transmission over an unreliable medium. so this is just an image format. not more, not less.

Install dependencies

sudo apt update
sudo apt install python3 direwolf sox git pavucontrol

Install SSDV app

cd ~
git clone https://github.com/daniestevez/ssdv
cd ssdv
make
sudo make install

Install file2afsk script (main app)

cd ~
git clone https://github.com/hobisatelit/file2afsk.git && cd file2afsk
chmod 755 tx.py rx.py

change your callsigner:
nano tx.py
press ctr+x to save
change SRC_CALL = “ABC” with your actual callsigner

Config Pavucontrol

You only need to set this up once. The goal is for the sox application (audio recorder) and direwolf (KISS server) to be able to listen to the audio output from the speakers or line out of the computer.

Open three terminal

on first terminal run Direwolf KISS server

cd ~/file2afsk 
direwolf -c direwolf.conf

on second terminal run

sox -d -r 44100 -c 1 /tmp/test.wav

on third terminal run

pavucontrol

look at Recording tab, you will see direwolf app and sox there, please change capture to MONITOR mode both of them. and then you can close both app with press Ctrl+C on each terminal.

Optimizing JPEG picure compression

  • Open your jpeg file with GIMP
  • Change the width and height of the image to multiples of 16 pixels! For example, 160x160, or 320x160, or 352x352, etc
  • Click File > Export as .., fill with image name, press Export
  • Copy as shown in this screenshot, until you achieve the smallest file size with the appearance that meets your expectations.

Convert JPEG to SSDV format:

cd ~/file2afsk
ssdv -e -q 1 image.jpg image.bin

How to Convert SSDV image into WAV audio and transmit it?
Open two terminal

at first terminal:
Run Direwolf KISS server

cd ~/file2afsk
direwolf -c direwolf.conf

on another terminal run

cd ~/file2afsk
./tx.py image.bin

you will hear annoying sound , just lets its play until finished, after that you can press ENTER to save the WAV file. you can get at folder audio in same directory

with this WAV file, you can conect your FM transmitter and play the recorded sound. for better quality you can also connect computer and fm transmitter over aux / mic cable.

How to decode signal?
connect your FM transceiver over aux audio into your computer mic/line in.

cd ~/file2afsk
./rx.py

Or if you have the WAV recording file, you can play it back. The script above will automatically decode it.
the decoded file automatically saved in “received” folder at same directory

ADVANCED MODE
For further exploration, you can try various tune-ups. Run -h for help

cd ~/file2afsk
./tx.py -h
./rx.py -h

Tested on LAPAN-A2/IO86 satellite, here the proof observation on satnogs

recorded audio file using handheld fm transceiver from io86 sat

live decoding:

5 Likes

Thanks, this link is getting saved.

I ordered the access panel for my cables this week, but my radio computer bit the dust last week… sigh. It’ll be a minute before I can walk thru this.

Thanks, tho…

C

2 Likes

Very well done, it’s been a fun for the last few days live testing this on a satellite zipping through space!

For context, PRTeksat and AMSAT-ID scheduled a special schedule to test whether an SSDV image can be sent via satellite through its amateur radio repeater payload.

Before, we have very limited knowledge and experience with SSDV beside decoding images sent by another satellite ASRTU-1/AO-123. @bali then steps in making the script to generate SSDV packets and modulation so it can be sent via IO-86 FM repeater. At first we thought it is possible to sent high data rate with FSK modulation up to 9K6 like on AO-123, but finally scaled down to AFSK 1K2 due to the radio and repeater up there being analog limited.

There are two sessions that we managed to test the transmission, day 1 late night on January 8 we tested a low packet count and very compressed image of just 3kB. I sent the image from the tip of Sumatra through the satellite and received in Bali, and it was successful! On second day, I managed to run the tx script made by bali and we sent 3 different images (1 by me and two by bali) to check whether the script can decode the different images in a single recording. What I like for SSDV is that the image is split into packets and instead like most image transmission mode where you need to have perfect transmission and reception to get perfect image, with SSDV you can run the transmission multiple times and if only part of the single transmission get through due QRM, other image transmission cycle can fill the gap.

And by the way, I think you shouldn’t sent any transmission beside FM voice through most amateur satellite, but many thanks for PRTeksat and AMSAT-ID which regularly do scheduled experiments on IO-86 satellite. I’m very open for other operators to give limited schedule on the satellite to have some experiments (SO-124 used to have digital modes every Wednesday :slight_smile:). And also thanks to @bali who made very nice script and tutorials on how to sent/receive SSDV!

Maybe it’s not much but hey, I’m keeping the amateur radio spirit to do experiment :smiley:

73,
Adhito
YG4SLJ

Two partially decoded image and one complete image sent via SSDV through IO-86:



3 Likes