Transmitting DATV over the air with LimeSDR-Mini
Transmitting voice is something every ham operator must be doing regularly. There is a breed of hams which only stick to digital modes, while some prefer morse. Some ham operators go above and beyond to transmit real-time video stream over the air. Back in the day, ATV (amateur TV) was quite popular. Some still use ATV to transmit video but with software defined radios becoming more and more popular, DATV (digital amateur TV) has become very possible.
I came across LimeSDR a couple of years ago and decided to purchase the mini version of it. I truly enjoyed the massive 40MHz sampling frequency which allows you to observe the entire 40MHz span around the center frequency you choose. A few days ago I came across this video on YouTube which made me try transmitting DATV signals using my LimeSDR-mini.
Basically, this post is a text version of what the video shows. Correspondingly, this post is divided in two sections, the transmitter setup and the receiver setup. As you should have figured, we will use LimeSDR-mini for transmitting the DVB signal. Whereas, RTL-SDR would be the receiver on the other end.
The transmitter setup
There is one per-requisite before you jump in. You must make sure you install LimeSDR-mini drivers and have it working by following the information given on the official website. Moreover, you should also read my LimeSDR post explaining the setup.
Once you are ready with the LimeSDR-mini go and download DATV Express.
Once you have downloaded DATV Express open it up and it should appear something like this.
- Go to "Capture" and select "Video". There, make sure you select proper video source. Usually, it would be your webcam. For someone like me, I have used the camera on my android through an app called "IP Camera". Make sure you select the video size to whatever suits you. Full HD video will definitely require more bandwidth to push the large number of bits. So, select something in between. Even 480p video looks good and that's what I have selected here.
- Now, go to "Codec" menu and select "Video". There, you can select the codec you prefer. If you don't really know what it is, simply select H.264 or H.265 and keep the performance to "fast".
- Let us move to the "SI Tables settings". You do not really need to change anything here except a few things at the bottom. For example, Provider name setting should be filled with your call sign and so on.
- Moving on to the "On Air Format" under Options menu. Choose the aspect ratio of your video and the size of the video signal you would wish to stream. The Video size should be set to "Input format". For some reason, selecting anything else caused my program to crash.
- In the "Modulator" menu, select "Common" and start configuring the things there. "Tx Frequency" will be the frequency on which you will put out your signal. This setting has to be entered in Hertz. In my case, 436MHz will be written as 436000000. Symbol rate needs to be sufficiently high to not cause your Tx buffer to overflow. I kept my symbol rate near 950000 and this causes approximately 1MHz spectrum occupancy. Keep your TX level to high and Tx Mode as DVB-S. You can always select some other mode but the receiver tool we are using comes with DVB-S decoder by default and I haven't yet figured a way to decode the others. Oh and of course, the SDR HW will obviously be "Lime".
- Finally, in the Modulator settings, DVB-S will become clickable and we need to go in there and set FEC to something. For me, 7/8 works just as good but anything else should work fine too.
We are now ready with your transmitter setup. If all goes well, you should be able to click the "PTT" button and within a few seconds you would be transmitting live video on air.
The Receiver setup
As mentioned previously, we will be using RTL SDR as a receiver on the other end to capture our DATV signals. Make sure you have the drivers correctly installed or you won't be able to proceed.
SDR Angel tool is something I learnt about from the video I mentioned above. It is a nice little tool which comes with many great features. The DATV Demodulator in the SDR Angel is what we are interested in. Get yourself a copy of SDR Angel and have it installed.
Select RTL SDR source in SDR Angel the way you see in the image. Now, you can set your receiving frequency to whatever you have set in the modulator. In my case it is going to be 436MHz and I will be setting the sample rate to 2.4MSPS. You will also need to set "decimation" to 1 since, the DATV demodulator requires raw data to do what it does.
As you can see, we are already receiving the video signals here. The bright band in the middle of the screen is our DATV signal coming from the LimeSDR Mini. Like I said, 950k symbols per second on QPSK occupies a little more than 1MHz bandwidth. You can always try tweaking the settings on the transmitter and see how it affects the spectrum occupancy. It is all about trying out new things.
Now, we need to enable the DATV demodulator and set correct parameters for it to work.
You need to set everything according to the transmitters settings. To remind ourself of the settings, the signal is QPSK modulated with a symbol rate of 950K symbols per second. Likewise, the FEC rate needs to be 7/8 because that's what we set at the transmitter end. Furthermore, set the bandwidth to approximately 1MHz otherwise you won't receive anything.
If all goes well, you should see a constellation as seen in the image above. Correspondingly, the frame buffer will start filling up and you will finally be able to see the video in the video tab.
Finally, we are now on AIR with our little DATV setup. Unfortunately, the LimeSDR Mini does not pump out too much power to be able to transmit over long distances. Surely, you will require an amplifier to raise the signal power and go long distance.