Custom DATV Firmware for the Pluto

From BATC Wiki
Revision as of 09:46, 16 October 2019 by G8GKQ (talk | contribs)
Jump to navigation Jump to search

Forward

This is a preview of an article due for publication in CQ-TV 266, published here to promote early experimentation. Thanks to Paul M0EYT for writing it.

Before loading the custom firmware, it may be necessary to extend the frequency range of the Pluto. The instructions for this can be found on this web page: https://wiki.analog.com/university/tools/pluto/users/customizing. Scroll down to the bottom section "Updating to the AD9364".

You may also wish to enable the second CPU core as described here: https://www.ph4x.com/pluto-sdr-hack-2nd-cpu-core/

Introduction

Firstly, I'm not a DATV expert but have played with a number of SDR's over the years since my first SDR-14 back in 2005. I dabble in GHz stuff so have a rough idea what I'm doing but that’s about it! I like to make sure I learn something new related to technology every day, so both DATV and the PLUTO SDR fulfil this.I got the PLUTO after borrowing one from Jules, G0NZO and being super impressed by it, for the price you really cannot go wrong. It works out of the box, has TX+RX and with a few minutes work, can have its frequency range extended to cover 70MHz to 6GHz, not bad at all, plus it runs Linux internally (Linux pluto 4.14.0-g387d584d434e). The receiver is great and I used the loan unit to listen to all Bell Hill beacons up to 5.7GHz with something akin to a paperclip pushed into the RX port.

Pluto.png

This is the unit in question, shown to the left, it’s very compact at 5"X3"X1" with separate transmit and receive SMA sockets and a pair of micro USB sockets for I/O and power. It draws 400-420mA when idle or transmitting. When the QO100 narrow band transponder was used with PLUTO SDR's for TX, some frequency drift was apparent. It turns out that the integral TCXO wasn’t particularly good, so it's worth replacing it with a decent TCXO such as the ASTX-13-C-40.000MHz-I05-T which you can get from Mouser. This solves all frequency stability issues (well most...). For the ultimate stability, external GPSDO reference is still recommended.

First Steps

I've built the Portsdown filter/modulator unit for DVBS which performs really well, but was looking for a non-Lime-SDR method (it’s a long story) of generating DVBS28PSK and 16/32APSK DATV. I saw on Twitter that OM EvaristeF5OEO(@F5OEOEvariste) of rpitx fame was developing replacement firmware for the PLUTO that would provide DATV capabilities as well as some other goodies, so I pinged him a message and asked if I could beta-test the firmware. The firmware arrived quickly.The 'pluto.frm' file is copied into the root directory of the PLUTO mass storage memory, where the configuration files exist. Once copied up, 'eject' the device, don’t unplug the USB but use the software eject. The blue LED1 in the PLUTO will rapidly flash for 3 or 4 minutes then reboot and the mass storage device will reappear. Full details on this process are at https://wiki.analog.com/university/tools/pluto/users/firmware - don't unplug it during the flash process for obvious reasons; you might brick it. With the SDR still plugged into your PC, you can browse to the internal web-server by pointing a browser at http://192.168.2.1with all being well you should see something similar to the next screenshot:

Screenshot.png

Having updated the firmware and confirmed that it was working, next was the start of a massive learning curve…What would I need to use to generate some 'digital stream' with video in it? What software should be used?How does the stream get from the PC to the SDR? How do you set all the parameters needed to generate DATV? How do I get video from my phone camera into the PC? The list of questions was growing the more I looked into this stuff....

Digital Video Source

I know John GI7UGV as we work in the same industry and know that he's really into DATV, so had a chat with him and within minutes had VMIX (https://www.vmix.com/) installed – this looked like the easiest initial method of doing what I needed; make a PC generate some stream to control the PLUTO. This was pretty intuitive and within half an hour I had a test card source, spitting out the relevant data to the PLUTO. This was done by setting an external RTMP stream target with the following parameters:

URL : rtmp://192.168.2.1:7272/,437,DVBS2,QPSK,333,23,Pass : ,M0EYT,

The above parameters form part of the URL and are parsed by the F5OEO firmware to set the various DATV transmission parameters:

Frequency in MHz: 437 Mode (DVBS/DVBS2): DVBS2 Constellation (QPSK,8PSK,16APSK): QPSK (only QPSK in valid in DVBS) SymbolRate in KS (33-2000): 333 FEC (12,23,34,67,78...): 23 CALLSIGN: M0EYT

It's particularly important to look at the RTMP stream definition syntax, probably best to cut & paste the above URL / pass text and then modify to suite your own requirements. With the PLUTO SDR plugged into the USB port of the PC running VMIX, it worked right away and a QPSK carrier was being generated at 437MHz, receivable on the Minituner. I had noted that VMIX was not free, so rather than spending hours with IDA, and having noted with John UGV had said, I decided to uninstall VMIX and give OBS (Open Broadcaster Software https://obsproject.com/download) a try.Since this is open source, there are no licensing 'difficulties' and although it's not as polished as VMIX, it's fully functional and just works.