Portsdown 4 Pluto

From BATC Wiki
Jump to navigation Jump to search

Evariste, F5OEO has produced firmware for the Pluto SDR which enables it to be a very capable DATV modulator. This firmware has 2 modes.

  • RTMP stream Input
  • Webpage Control with UDP stream input.

The RTMP stream input mode is very suitable for use in small systems and this is what is used by the Portsdown.

The Webpage control mode is ideal for desktop computers and is continually being developed. It is not suitable for use with the Portsdown.

Mode of Operation

The existing Portsdown software has had additional commands added to enable it to generate an RTMP stream (using ffmpeg) and send it to the Pluto. RTMP will only handle H264 encoding, so MPEG-2 (and H265) modes are not available.

Suitable Pluto Firmware

All testing has been done using F5OEO's "for the brave" Pluto firmware (FIRM2101RC of 5 February 2020). Extract the firmware from this zip file File:FIRM2101RC.zip and follow the instructions on this web page VERY CAREFULLY Analog Devices Firmware Upgrade Instructions. The Pluto must already have been modified for extended frequency range, and it is worth enabling the second processor.

Note that the more recent Revision C (outside label) (marked as Revision D on the PCB) Plutos need an extra environment variable setting for the frequency extension. In addition to the other commands, at the command line of the Pluto enter

fw_setenv compatible ad9364

You can check that you have the correct Firmware loaded from the "Pluto Configuration Menu" (reached from Menu 3). It should report Firmware version v0.31-4-g9ceb-dirty.

Powering the Pluto

The Raspberry Pi 4 has increased power capabilities on its USB ports, and the Pluto does not work well with USB Hubs, so it is recommended that you connect the Pluto directly to a USB3 port (the blue ones) on the Raspberry Pi 4. Do not use a USB hub or power the Pluto from its USB power port.

The Pluto will sometimes refuse to connect to the Portsdown 4 if the voltage on the Raspberry Pi's USB port is above 5.0v. In contrast to the advice for the LimeSDR (where the Raspberry Pi should be supplied with 5.2 v), it is recommended that for Pluto operation the Raspberry Pi is run from 5.0 v. An alternative is to modify a USB lead for the Pluto with a Schottky rectifier diode in the positive supply line to drop about 0.25 v.

Current Functionality

  • H264 only. No MPEG-2 or H265 (even when using IPTS In)
  • 4:3 SD, 16:9 or 720p. No 1080p
  • You can set and store (for each band) Pluto relative power on a range of 0 to -71. This approximates to dBm, but is plus or minus 10 dB.
  • Maximum frequency 4.1 GHz (so no 6 cm band).
  • I have seen it work well on symbol rates between 125 and 1000 kS.
  • DVB-S or DVB-S2
  • DVB-T from 150 kHz to 1 MHz bandwidth
  • Video source Pi Cam (must have USB audio dongle connected as well), Comp Video, old-style C920, Test card, Contest or LKV373A HDMI.
  • Pluto and RPi GPIO PTT switching implemented.
  • H264 IPTS In for both DVB-S/S2 output and DVB-T output


  • In DVB-S mode, a bug prevents transmissions at FECs of 5/6 and 7/8. All other FECs are OK. There is no plan to fix this.
  • In DVB-S and DVB-S2 modes, if a callsign with a / is used (like G8GKQ/P), the Pluto will transmit "Service01" as the Provider ID.
  • The maximum supported symbol rate for DVB-S or DVB-S2 with the Pluto is 1 MS. If you want higher SRs it is recommended that you use a LimeSDR Mini with the LimeDVB firmware.
  • An audio source (such as a webcam microphone or USB dongle) must be present and selected for DVB-S/S2 transmissions, otherwise the transmitter will not operate.
  • Transmitting only a carrier is not supported by the Pluto firmware

Pluto Output Level

Thanks to DC1OP for this plot of Pluto output level

Pluto output.jpg