Home - Psynosaur/DATV-Red GitHub Wiki

Welcome to the DATV-Red wiki!

  • The South African German army knife of all things DATV
  • This project was build out of curiosity and brute force will :)

Prerequisite

Setup and use

  1. Download latest release and extract to folder DATV-Red

  2. Open the DATV-RED.exe on windows or ./DATV-Start-Linux.sh on Linux

  3. Fill in pluto IP and callsign when prompted

    imageimage

    If you missed this prompt or cancelled, please click the setup button again.

    image

    If all went well the mqtt parameters will be set and the pluto will restart, wait about 15s

    image

  4. Please refer to the Wiki for more setup details

  5. You will see the default view, please toggle the radio buttons to enable and disable UI components to your liking.

image

Motivation

DATV transmissions normally have the following programs open:

  1. OBS(Presentation layer)
  2. DATV-Easy/FreeStreamCoder/your own scripts (encoder)
  3. Browser page for PlutoSDR
  4. OpenTuner / Minitioune
  5. QuickTune / Chat

DATV-RED tries to combine most of these functionalities into one interface.

image

Capabilities of DATV-Red

  • Encoding of TS data (Tx)
  • Tuning of onboard longmynd server
    • Requires USB hub or Longmynd mqtt on local network connected to pluto broker.
    • Refer to wiki (Rx)
    • Further eliminates software dependencies
  • Operation of PlutoSDR RF modulator parameters (Tx)
  • DVB-GSE (Tx & Rx)
    • You can view each others dashboard on tunnel IPs
    • AV1 QSO's using SRT
  • (Windows) Sends UDP payload to Minitioune software control address (Rx)
    • Tunes Minitiouner radio using Minitioune software
    • Tunes WinterHill too
    • OpenTuner support pending
  • Optional chat (QoL)
  • Optional SONOFF tasmota support (QoL)
    • HTML and MQTT support
      • Switch must be connected to pluto mqtt broker
  • Cross-platform
  • No internet needed also supports FFT from pluto rx port
    • Use onboard spectrum from pluto to tune to signals
      • Enables simple mobile operation of DATV
    • Supports separate BATC spectrum sources
      • Requires that you have a Raspberry Pi 4 and an Airspy R2
      • Please see Tom ZR6TG's post on setup

DATV-Red visual flow chart

Flow chart

First steps

  • Calibrate the rx table, so that if you click on the spectrum bars it has the right frequencies in modulator channel dropdown
  • image
  • It take about three seconds, stepping through all known frequencies

SSH host key checking

add to .ssh/config the following, my pluto IP is 192.168.1.111

Host 192.168.1.111
  HostName 192.168.1.111
  User root
  StrictHostKeyChecking no
  • Windows
    • ssh -o UserKnownHostsFile=\\.\NUL 192.168.1.111
  • Linux
    • ssh -o UserKnownHostsFile=/dev/null 192.168.1.111

Flashing steps

  • Always find the latest firmware here
  • Use the update script like this using pluto IP Address and path to FW file
.\scripts\update_firmware.cmd 192.168.1.111 '.\pluto.frm'

image

Multicast support for pluto

  • Change config.txt
  • This is so that onboard longmynd can send to 230.0.0.2:1234.

1

  • Add gateway_eth = x.x.x.x with your internet gateway IP
  • Then reboot pluto

DATV Red pages

Transmission and profiles

  • Transmission section
    • All settings related to encoding and transmitting a DATV signal
    • Clicking on signals in the spectrum tunes your setup receivers
    • Bottom signal is longmynd (marked with RX)
    • Top of signals is for setup receivers (marked with CH1)
    • Left in modulator settings(radio)
    • Right is encoder settings(ffmpeg) tx
  • Reception section
    • Signal reports
    • Chat window
    • View constellation of received signal Rx
  • Local spectrum
    • You can manipulate the spectrum with
    • Frequency, span, min/max, gain and averaging
    • Click on signals to tune onboard longmynd
    • Set the Host IP for receiving TS stream from 230.0.0.2:1234 spectrum

Paths and radio settings

  • Signal report suffix
  • Application paths for Windows and Linux
  • Hosting URL(http://zs1sci.com:1880/ui)
    • Please port forward pluto IP address's 9001 and 7681 to this domain(http://zs1sci.com:1880/ui) on your network
    • Our remote browser instance(http://zs1sci.com:1880/ui) must be able to get the MQTT(9001) and FFT(7681) from pluto at this domain
  • Radio miscellaneous
    • Rx offset
    • Tx offset
    • Override pluto TS input IP
    • Calibrate Tx channel frequencies

2

GSE

  • Setting for DVB-GSE operation

GSE

Encoder advanced v4

  • Find Devices button only works on Windows

  • This is all settings relevant to your setup

  • Please change accordingly
    encoders

  • Codec options are available in the terminal with the Encoder options button image

UI-Controls

  • Allowed control of UI elements, so that you can set it up for your needs UI

Receiver setup

  • Receiver channels galore

  • This is a proof of concept, we need to be able to drive as many receivers as possible from a particular spectrum

  • It is driven by clicking on the BATC spectrum RX setup

two_channels

Transport Stream analysis

ts

Dependencies

  • Software used with DATV-Red Dep

FFmpeg debugging

  • ffmpeg command for debugging why it might not work, copy and paste in project root to see ffmpeg error...
  • the command output in GUI clears when you press stop profile button

5

Linux specific

  • run sudo ./scripts/install.sh script
  • run ./DATV-Start.sh
  • Then use RTMP or UDP under ffmpeg settings INPUT CHOICE

Onboard longmynd controls and analysis information

  • Click signal report and CTRL+V paste it in chat
  • SigReport: ZS1SCI/PlutoDVB2-0.3-14 - D3.4 - QPSK 4/5 (8.0 dB) - 499 - 10494.773 1.2m offset
  • Set your PC IP address for receiving the multicast TS from longmynd whilst enabled
  • Audio and video buffer delays for decoded signal 6
  • If singal has pluto sending NTP synced timestamps, we can calculate tx delay

TS analysis

  • We can do this by running this script
.\set_NTP_pluto.cmd 192.168.1.111 192.168.1.127

GPS NTP

Software client

  • You can also set up the longmynd on another local pc and have it connect to pluto broker
  • This way the pluto only has network adapter connected, for remote pluto setups.
  • So the pluto still controls the minitiouner radio since its connected to its mqtt topic and doesn't mind the different IP address
  • Please see mqtt longmynd repo

Hardware

  • USB hub used

USB_HUB_FRONT

USB_HUB_BACK_edit

USB OTG

Static html files

  • web/pluto_spectrum/index.html can be ran locally by adding you pluto address and callsign to the URL

    • index.html?url=192.168.1.111&call_sign=ZS1SCI spek
  • web/internet_spectrum/spectrum.html

    • works separately in a browser
    • If DATV-Red is running it acts as a sperate spectrum for tuning, setting tx etc.,
      • so you may disable the one in DATV-Red if you plan on moving things around. old_spek
  • web/chat.html

    • portable chat file
  • web/constel_v2.html can be ran locally by adding you pluto address and callsign to the URL

    • constel_v2.html?pluto_url=192.168.1.111&call_sign=ZS1SCI

    constel

  • web/constel/constel_v3.html?pluto_url=192.168.1.111&call_sign=ZS1SCI

    • somethings work better when built from scratch

Thanks

Batch files previously used in this project were from DL5OCD Michael and his DATV-NotSoEasy project

Node Red flows inspired by project from PE2JKO from this post