Skip to content
Ohan Smit edited this page Nov 25, 2024 · 81 revisions

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 :)

If there is a problem

Please raise an issue and include a copy of device.json and settings.json from the settings directory in the project.

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

    Constellation v3