A state of tuners
A state of tuners
PCI tuners, SDR, SAT>IP, IPTV and open source software.
Covering digital modes of satellite, terrestrial and amateur TV.
Software
The following software is useful for testing.
Modes
Digital
- DVB-T
- DVB-T2
- DVB-S
- DVB-S2
- DVB-C
Analog
- PAL-I
Adapters and accessories
You will need a range of adapters if you wish to use RTL devices.
- 75 Ohm coax.
- Bias Tee for LNB power.
- LNB DC power blocker. Used for connecting a passive device like a Yagi to a tuner which supplies LNB power. Do not trust the LNB power option inside the set top box settings. Sometimes there isn’t even a option. See eBay listing: F Screw Type DC Power Blocking Blocker Inline In Line Connector Coupler 100994
Polarisation
Yagi
- Horizontal
- Vertical
Special
- Circular
Universal LNBs
This is specific to europe.
Ref: wiki/Low-noise_block
Voltage | Tone | Polarization | Frequency band |
---|---|---|---|
13 V | 0 kHz | Vertical | 10.70–11.70 GHz, low |
18 V | 0 kHz | Horizontal | 10.70–11.70 GHz, low |
13 V | 22 kHz | Vertical | 11.70–12.75 GHz, high |
18 V | 22 kHz | Horizontal | 11.70–12.75 GHz, high |
Antenna systems
- UHF Yagi. Most common for modern terrestrial DVB-T, DVB-T2 Freeview. If doing DATV DVB-S you must use a LNB DC power blocker.
- VHF Yagi. Old analog TV.
- Universal LNB + dish. Most common for satellite DVB-S, DVB-S2 Freesat. Also can be used for: QO-100/Es’hail-2
Test signals
Station | Type | GHz | MHz | KHz | Hz | Polarity | Megasymbols/s | Kilosymbols/s | Symbols/s | FEC |
---|---|---|---|---|---|---|---|---|---|---|
GB3ZZ | DVB-S | 1.316 | 1316 | 1316000 | 1316000000 | Horizonal | 4 | 4000 | 4000000 | 1/2 |
Broadcast Freeview ITV | DVB-T | 0.578 | 578 | 578000 | 578000000 | Horizonal | ||||
Broadcast Freesat Channel 4 | DVB-S | 10.714 | 10714 | 10714000 | 10714000000 | Low Horizonal | 22 | 22000 | 22000000 | 5/6 |
Bus speeds for tuner devices
Important to ensure we have the bandwidth for video.
- USB 2.0 revised = 60 MBps
- PCI standard 32 bit = 133 MBps
- PCI-E x4 = 800 MBps (am I using PCI 3.0?)
Linux paths
- Analog video sources:
/dev/video0
- Digital TV sources:
/dev/dvb/adapter0
- Useful Linux command to list DVB devices:
dmesg | grep adapter
Other experiments
- Using a TV antenna for ham radio band reception.
- DAB decoding using RTL dongle and FOSS software using: welle.io
Device table
Type | Brand | Model | Chipset | Frequency range | Modes | Inputs | OS | Driver | Software support | Docs | Notes |
---|---|---|---|---|---|---|---|---|---|---|---|
PCI-E | Hauppauge | WinTV-HVR-1200 | NXP TDA10048HN | DVB-T | Belling-Lee, F-type, RCA, 3.5 mm jack and S-Video DIN | Linux | V4L2 | Kaffeine, Tvheadend | linuxtv | ||
PCI universal 32 bit | AsusTek | LNA Tiger Hybrid | Philips TDA10046H | 51 - 858 MHz | DVB-T, Analog | Belling-Lee | Windows, Linux | DirectShow, V4L2 | VLC, Tvheadend | Firmware required for Linux. | |
USB 2 | EasyCAP Somagic | SMI-2021CBE | Analog | RCA | linuxtv | Designed for CCTV DVR. | |||||
USB 2 | NewGen | RTL2832 | 25 - 1760 MHz | DVB-T | SMA | Linux | V4L2 | VLC, Tvheadend | linuxtv | ||
USB 2 | DVB-T+FM+DAB | 820T2 | DVB-T | MCX | Linux | V4L2 | VLC, Tvheadend | ||||
USB 2 | Dual | RTL | DVB-T | SMA, SMA | Linux | V4L2 | VLC, Tvheadend | ||||
USB 2 | Xbox One | Digital TV Tuner | Panasonic MN88472 | DVB-T, DVB-T2, DVB-C | Belling-Lee | Linux | V4L2 | Kaffeine, Tvheadend | linuxtv | Firmware required for Linux. | |
PCI universal 32 bit | Pinnacle PCTV Systems | 4000i | DVB-S | F-type | Windows | linuxtv | No Linux support as of yet. | ||||
PCI-E | TBS | TBS-6980 | DVB-S, DVB-S2 | F-type, F-type | Linux | V4L2 | VLC, Tvheadend | linuxtv | Firmware required for Linux. |
Note: Generic RTL devices may require a PPM offset outside their intended use center frequency. For example the 820T2 mentioned above requires a PPM offset of 0.5 for UHF amateur bands.
VLC DVB-T
- ITV:
vlc dvb-t://frequency=578000000:bandwidth=0
- The docs state it should be in KHz but I get:
dtv stream error: 578000 Hz carrier frequency is too low.
so it looks like it’s actually using Hz. - Record
cvlc
transport stream headless:cvlc dvb-t://frequency=578000000:bandwidth=0 :program=8384 --sout "#file{dst=/home/peter/recording.ts,no-overwrite}"
- There must be a space before
:program
- There is a number of ways of formatting flags.
- There must be a space before
VLC DVB-S
- I found I had to specify polarity voltage and FEC.
- Channel 4:
vlc dvb-s://frequency=10714000000:srate=22000000:dvb-fec=5:voltage=18
- ITV:
vlc dvb-s://frequency=10758000000:srate=22000000:dvb-fec=5:voltage=13
- The docs state it should be in KHz but I get:
dtv stream error: 10714000 Hz carrier frequency is too low.
so it looks like it’s actually using Hz. - GB3ZZ:
vlc dvb-s://frequency=1316000000:srate=4000000:dvb-fec=1:voltage=0 :program=1 :dvb-adapter=1
- There must be a space before
:program
- I am using the second tuner on my card so
:dvb-adapter=1
instead of:dvb-adapter=0
which is the default. Ensure a space before this flag.
- There must be a space before
AsusTek - LNA Tiger Hybrid signal issues
- Windows VLC: Not good signal at all. Very blocky. For some reason will decode in DVB-T2 but I don’t believe it really is doing V2. See screenshots of VLC codec info.
- Linux VLC: No decode as of yet. Sometimes syncs but never a image or error under
-vvv
console output.
Firmware
AsusTek - LNA Tiger Hybrid
wget https://github.com/OpenELEC/dvb-firmware/blob/master/firmware/dvb-fe-tda10046.fw?raw=true -O dvb-fe-tda10046.fw
sudo cp dvb-fe-tda10046.fw /lib/firmware
sudo reboot
Xbox One - Digital TV Tuner
wget http://palosaari.fi/linux/v4l-dvb/firmware/MN88472/02/latest/dvb-demod-mn88472-02.fw
sudo cp dvb-demod-mn88472-02.fw /lib/firmware
sudo reboot
TBS - TBS-6980
Ref: github.com/ljalves/linux_media
wget http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130901.zip
unzip -p tbs-linux-drivers_v130901.zip linux-tbs-drivers.tar.bz2 | tar jxOf - linux-tbs-drivers/v4l/tbs6981fe_driver.o.x86_64 | dd bs=1 skip=10144 count=55486 of=dvb-fe-cx24117.fw
sudo cp dvb-fe-cx24117.fw /lib/firmware
sudo reboot
Tvheadend installation
- I noticed it’s easier to setup tuners if the tuner is already present with required firmware before starting Tvheadend for the first time. This is because the wizard guides you through based on the type of tuner.
- Install Tvheadend on Ubuntu 18.04 server
Tvheadend found services test
Tests are carried out using the following two “Pre-defined muxes”:
--Generic--: auto-With167kHzOffsets
adds 155 muxes
United Kingdom: uk-Mendip
brings us up to 157 muxes total to scan
My adapters listed.
Comparison of networks found by each with the same test muxes to scan.
Freeview DVB-T HD channels
To get HD services I had to manually add the mux. For some reason the predefined muxes don’t include HD.
Scanning the custom mux pulls in the following HD services.
I did find when watching a HD channel it seemed to mess up my EPG. Not sure why.
Tvheadend recordings
Make sure you check and un-check enabled against each Seems you just need to wait for the EPG to update itself and recordings match up again.Autorecs
item after changes to channel mappings for the auto recordings to work properly. Otherwise it seems to miss some with Status:Invalid
.
Make sure you don’t have any Autorecs
with channel specific filters. They will be lost when removing channels for remapping.
“Recording”/”Digital Video Recorder Profiles” sensible format string: $t/%F-%R-$t$-e$n.$x
Example path created: Beat-The-Chasers/2020-04-29-23-45-Beat-The-Chasers.ts
Example duplicate path created: Beat-The-Chasers/2020-04-29-23-45-Beat-The-Chasers-1.ts
It’s a shame it’s not lowercase but it’s as good as I can hope for.
RTSP in Tvheadend
pipe:///usr/bin/ffmpeg -loglevel fatal -i rtsp://admin:password@192.168.1.40:80/stream -vcodec copy -acodec copy -metadata service_provider=cctv -metadata service_name=ch01 -f mpegts -tune zerolatency pipe:1
Here I reference my RTSP blog post but this time im using Tvheadend instead of a desktop running MPV as a client.
SDRangel DATV
Before I bought a set top box I thought I would try decoding GB3ZZ using SDRagels built in DVB-S decoder along with my HackRF. No LNB DC power blocker required here as the SDR doesn’t output any bias normally.
Overview with the wideband reception so you can see how the signal looks.
It proved very CPU intensive and I only just about got data decoded when I turned off spectrum waterfalls and reduced my bandwidth to only that of what I need to decode to save on CPU.
You can see the QSPK constellation is aligning up nicely.
This is the best decode I could get so far. I need to try a very fast clock for single thread performance.
Blazer set top box DATV
I bought a cheap set top box from Amazon (Blazer HD4000). Most of the cheap chinese made ones allow you to set custom LNB settings.
Overview of the setup with Yagi and LNB DC power blocking.
LNB frequency and blind scans
Initial LNB settings.
Performing a blind scan it finds GB3ZZ.
After completion it finds GB3ZZ on both horizontal and vertical which is to be expected given we are using a Yagi with no LNB polarization switching.
11916 MHz is the frequency the blind scan found GB3ZZ on. 1316 MHz is the actual TX frequency of GB3ZZ.
11916 MHz - 1316 MHz = 10600 MHz
Which corresponds with high band universal LNB local oscillator frequency on Wikipedia: 10.60 GHz.
So it looks like the set top box frequency display takes into account LNB local oscillator frequency.
We can if we want change our software LNB frequency to make the actual frequency calculation easier - 10000
10 GHz.
GB3ZZ reception
The channel list shows the two services (GB3ZZ Ch1, GB3ZZ Ch2) within the one mux along with frequency and symbol rate.
GB3ZZ displays images when there are no active repeater users.
Tvheadend DATV
After playing with Freeview and Freesat on Tvheadend and DATV on the set top box I thought it’s time to combine the two and have DATV in Tvheadend.
TBS-6980 + LNB DC power blocker.
Creating a custom mux for GB3ZZ.
I did a test and noticed we need to account for the assumed 10.60 GHz universal LNB frequency.
Scanning that mux we find our two services (GB3ZZ Ch1, GB3ZZ Ch2).
Mapping those to channel list.
Signal strength isn’t bad for my indoor antenna.
There are several benefits. I can see both channels at once unlike with most set top boxes. I can stream the DATV over IPTV to anywhere on my network.
Useful links
- en.SatExpat.com - List of Television Channels on Satellites Astra 2E/2F/2G 28.2° East
- TP 10714 H — Satellite Astra 2E 28.2° East
- VLC Documentation - Streaming a DVB Channel
- dream Player for TVHeadend
- Freesat spoken audio
- G8YMM/Severnside group 1.3 GHz Yagi antenna
TODO
- Include VLC codec screenshots, separate blog post.
- DVBlast, separate blog post.
- DATV QO-100/Es’hail-2, separate blog post.
- More tuners blog post.
Let me know what you think of this article on twitter @M3PGS or leave a comment below!