Git Product home page Git Product logo

dvbsdr's Introduction

DVBSDR VK5QI Fork

This fork of dvbsdr exists so I can configuration-manage the changes I have made to dvbsdr for Project Horus flights.

To those arriving at this repository from various blog/news articles - please go check out the work by F5OEO and natsfr - without them this project would not be possible. What I've done is add some control around the edges, and package it up in a form suitable for use on a high-altitude balloon.

Additions by VK5QI:

  • scripts/rpi_tx.sh - Essentially the same as the encode_modulate.sh script mentioned below, with customizations for our flight.
  • dvbsdr systemd service file (dvbsdr.service). Allows dvbsdr to be started and stopped using sytemd.
    • Note: not everything stops cleanly using sytemctl stop. Suggest using systemctl kill, followed by a systemctl stop to properly kill the software.
  • dvb_watchdog.py, intended to be run on startup from /etc/rc.local. This script monitors a few temperature sensors, some IO pins, and (eventually) GPS descent/altitude data to determine when the DVB-S modulator and Power Amplifier should be enabled. Currently the following IO Connections are used:
    • GPIO 21 - DVB-S Enable. Short pin to ground to enable DVB-S transmissions. Disconnect to stop transmissions.
    • GPIO 13 - PA Enable. This used to drive a Panasonic AQZ102 Solid State Relay, with the relay's LED driven via a 180-oh resistor.
    • GPIO 4 - 1Wire Interface, to a DS18B20, glued to the heat spreader plate.

As I have had issues reliably getting full power out of the LimeSDR Mini when using a stored limemini.cal file, I've taken the approach of calibrating at each startup. As I have control over the PA, I disable power to the PA prior to starting DVB-S modulation, then enable the PA 30 seconds later.

TODO:

  • Monitor modulator output, and try and detect there are issues with the PiCam. (Maybe monitor running processes?)
  • Add GPS input, with descent rate detection. Aim here is to cut power to the PA when the payload is in descent, and is about to land. Will need to use some non-volatile storage (save a file?) to ensure this persists across reboots.
    • Maybe use another GPIO line to override these checks, for testing on ground?

Flight History

  • Horus 55 - 2021-03-07
    • Frequency: 445 MHz
    • TX Power: 800mW
    • Modulation: 1Msps QPSK, DVB-S with r=1/2 FEC.
    • Video Resolution: 704x400 (SD, ~600kbit/s)
    • Temperature cutout used: 63หšC (never reached this)
    • Longest range received: 200km (Eudunda, SA, to Whyalla, SA)
    • Video Link: https://www.youtube.com/watch?v=5vYcVRWrdhs
    • Writeup: TBD

Video Flipping

avc2ts doesn't have a command-line option to flip the video, which might be required if the camera is mounted upside-down (as it is in my case). To get around this, this line needs to be uncommented in avc2ts.cpp (which will be located in ~/dvbsdr/build/avc2ts/ after running the install script), and changed to read

setMirror(OPORT_VIDEO,OMX_MirrorBoth);

Then, re-compile (run make in the avc2ts directory) and copy the avc2ts binary into ~/dvbsdr/bin/.

About dvbsdr

dvbsdr is an integration of several projects around Digital Amator TeleVision using SDR technics.

LimeSDRMini is the main supported SDR hardware for now.

This project is less user friendly than BATC Portsdown also based on similar components.

This project help people who want to use latest developments and more in depeth experts parameters.

It should run on

  • Raspberry Pi
  • Nvidia Jetson Nano
  • Some parts works on regular X86 Debian based

Installation

Be sure to have git package installed :

sudo apt-get update
sudo apt-get install git

You can now clone the repository. A script (install.sh) is there for easy installation. You could inspect it and make steps manualy in case of any doubt.

git clone https://github.com/F5OEO/dvbsdr
cd dvbsdr
./install.sh

Running

Scripts are located under dvbsdr/scripts

  • Pi : Encode from Picamera or USB Webcam
./encode_modulate.sh
  • Jetson nano : Encode from Picamera V2 or transmodulate from an incoming IP transport stream
./jetson_nano.sh
  • All : Modulate from an incoming IP transport stream
./encode_modulate.sh

Please inspect each script, parameters are mainly self documented.

Special firmware

In order to decrease USB bandwidth and have better signal quality, a special Firmware is available.

In order to use this mode you should prior flash it,

./install_fpga_mapping.sh

If you like to reverse back to regular firmware

./restore_original_firmware.sh

Notes

Some components are installed but not used right now (csdr,leandvb,KisSpectrum...) which will be integrated in the future (or not) to extend DATV only transmission feature.

dvbsdr's People

Contributors

darksidelemm avatar f5oeo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.