Linux / DVB: Playing with command-line utilities

This post was written by eli on February 9, 2017
Posted Under: Linux

General

Yet another collection of jots as I try out stuff. In this post, I’m playing with a Sin Hon DVB dongle, trying but failing to receive terrestrial TV with it. The OS is Linux Mint 18.1. I had also Kodi and Tvheadend installed on the system, but they aren’t discussed here.

There’s no coherent say here. The dongle I used  was mostly likely defective, and I got myself another model, that worked better. This post repeats some of the stages below, with the new dongle.

Install

# apt-get install dvb-tools dtv-scan-tables
# apt-get install w-scan

Note so self: Turn off tvheadend service before trying command-line utilities, as the former holds the resources, quite naturally.

Immediately after plugging in the DVB stick

Getting some general info:

$ dvb-fe-tool
Device Silicon Labs Si2168 (/dev/dvb/adapter0/frontend0) capabilities:
     CAN_2G_MODULATION
     CAN_FEC_1_2
     CAN_FEC_2_3
     CAN_FEC_3_4
     CAN_FEC_5_6
     CAN_FEC_7_8
     CAN_FEC_AUTO
     CAN_GUARD_INTERVAL_AUTO
     CAN_HIERARCHY_AUTO
     CAN_INVERSION_AUTO
     CAN_MULTISTREAM
     CAN_MUTE_TS
     CAN_QAM_16
     CAN_QAM_32
     CAN_QAM_64
     CAN_QAM_128
     CAN_QAM_256
     CAN_QAM_AUTO
     CAN_QPSK
     CAN_TRANSMISSION_MODE_AUTO
DVB API Version 5.10, Current v5 delivery system: DVBT
Supported delivery systems:
    [DVBT]
     DVBT2
     DVBC/ANNEX_A

What’s the status?

$ dvb-fe-tool -g
FREQUENCY = 0
MODULATION = QAM/AUTO
BANDWIDTH_HZ = 0
INVERSION = OFF
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = AUTO
DELIVERY_SYSTEM = DVBT

Weird fact: dvb-fe-tool shows status output when executed immediately after tvheadend has set up the DVB stick, but not after dvbv5-scan

$ dvb-fe-tool -m
ERROR    FE_READ_STATUS: Resource temporarily unavailable
ERROR    FE_READ_STATUS: Resource temporarily unavailable
ERROR    FE_READ_STATUS: Resource temporarily unavailable

Scanning for channels

$ dvbv5-scan /usr/share/dvb/dvb-t/il-All
Cannot calc frequency shift. Either bandwidth/symbol-rate is unavailable (yet).
Scanning frequency #1 514000000
       (0x00) Signal= -89.00dBm
Scanning frequency #2 538000000
Lock   (0x1f) Signal= -89.00dBm C/N= 18.75dB UCB= 0 postBER= 1.00
Service Ch 1, provider Idan +: digital television
Service Ch 2, provider Idan +: digital television
Service Ch 10, provider Idan +: digital television
Service Ch 33, provider Idan +: digital television
Service Ch 99, provider Idan +: digital television
Service Ch 23, provider Idan +: digital television
Service Idan+test_2, provider Idan+: digital television
WARNING  Channel Idan+test_2 (service ID 7) not found on PMT. Skipping it.
Service Aleph, provider Idan +: digital radio
Service Bet, provider Idan +: digital radio
Service Gimmel, provider Idan +: digital radio
Service Dalet, provider Idan +: digital radio
Service Moreshet, provider Idan +: digital radio
Service 88FM, provider Idan +: digital radio
Service Musica, provider Idan +: digital radio
Service Reka, provider Idan +: digital radio
Service Galatz, provider Idan +: digital radio
Service Galgalatz, provider Idan +: digital radio
Service Radios, provider Idan +: digital radio
Service Kol Barama, provider Idan +: digital radio
Service Lev HaMdina, provider Idan +: digital radio
Service CLASSICAL bu, provider Idan +: digital radio

A dvb_channel.conf file was created, listed at the end of this post.

Don’t get too encouraged by the channel list: It’s detected even if the signal is extremely poor. Or if something is horribly wrong. Don’t know. I never managed to get this working.

Pay more attention to the postBER=1 (or if it says something like UCB= 2686 postBER= 625x10^-3). Even more discouraging is the fact that the signal levels are the same where it locked and where it didn’t. In other words, almost all signal that arrives to the tuner is noise.

After scanning, the frequency is set, but it’s not tuned in yet:

$ dvb-fe-tool -g
FREQUENCY = 538000000
MODULATION = QAM/16
BANDWIDTH_HZ = 8000000
INVERSION = OFF
CODE_RATE_HP = 2/3
CODE_RATE_LP = AUTO
GUARD_INTERVAL = 1/4
TRANSMISSION_MODE = 8K
HIERARCHY = NONE
DELIVERY_SYSTEM = DVBT
$ dvb-fe-tool -m
ERROR    FE_READ_STATUS: Resource temporarily unavailable
ERROR    FE_READ_STATUS: Resource temporarily unavailable

The regional configuration file, /usr/share/dvb/dvb-t/il-All, is part of the dtv-scan-tables:

$ cat /usr/share/dvb/dvb-t/il-All 
# Israel, Israel Broadcasting Authority's transmitters
# Generated from list in http://www.iba.org.il/reception/
[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 514000000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = NONE
	MODULATION = QAM/16
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/4
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 538000000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = NONE
	MODULATION = QAM/16
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/4
	HIERARCHY = NONE
	INVERSION = AUTO

This file represents the two frequencies at which DVB-T is broadcast in Israel (same stream, different frequencies in different regions of Israel).

Watching TV

One day, when I find a proper dongle, this will work. For now, I get this:

$ dvbv5-zap -c dvb_channel.conf -r 'Ch 10'
using demux '/dev/dvb/adapter0/demux0'
reading channels from file 'dvb_channel.conf'
service has pid type 06:  2642 2641 2640
tuning to 538000000 Hz
video pid 2625
  dvb_set_pesfilter 2625
audio pid 2626
  dvb_set_pesfilter 2626
       (0x00)
Lock   (0x1f) C/N= 25.25dB UCB= 0 postBER= 1.00
Lock   (0x1f) C/N= 25.25dB UCB= 0 postBER= 1.00
DVR interface '/dev/dvb/adapter0/dvr0' can now be opened
Lock   (0x1f) C/N= 25.25dB UCB= 0 postBER= 1.00

Some explanations:

  • The ‘Ch 10′ string is the identifier found in dvb_channel.conf for Israeli Channel 10 (see full listing at the end of this post)
  • The (0x00) part says that the demodulator isn’t locked (odds are that the firmware was loaded as a result of running dvbv5-zap, so it took a short while)
  • The (0x1f) part says that all demodulator locks were obtained, and the “Lock” before says it.
  • The PostBER = 1.00 clearly indicates I have a problem, and is there reason I can’t watch anything. And by the way, BER can never exceed 0.5, because if you get more than half the bits wrong, read the NOT of all bits, and the BER will go down. So BER=1 actually means no errors. But not being a schmuck about it, it’s clear that the demodulator wants to say something’s not good.
  • UCB = 0, number of uncorrected data transport blocks so far. Zero isn’t really encouraging, as it’s most likely a result of no data blocks detected at all.

To actually see the channel, go e.g.

$ mplayer -cache 800 /dev/dvb/adapter0/dvr0

Need I say that I got nothing? Mplayer ran nicely, tried to fish some info, but never got as far as opening an image window.

By the way, the BER info capability of the si2168 chip I used was due to a feature that is due for addition in kernel 4.11 (I patched mine manually). So without that, it looks like this:

$ dvbv5-zap -c dvb_channel.conf -r 'Ch 10'
using demux '/dev/dvb/adapter0/demux0'
reading channels from file 'dvb_channel.conf'
service has pid type 06:  2642 2641 2640
tuning to 538000000 Hz
video pid 2625
  dvb_set_pesfilter 2625
audio pid 2626
  dvb_set_pesfilter 2626
       (0x00)
Lock   (0x1f) C/N= 25.50dB
Lock   (0x1f) C/N= 25.50dB
DVR interface '/dev/dvb/adapter0/dvr0' can now be opened
Lock   (0x1f) C/N= 25.50dB

Using w_scan

This is what I got in Haifa with my Sin Hon TDH601 (“HD809″). Note that I didn’t offer any hints on my location, but it managed anyhow.

$ w_scan
w_scan
w_scan version 20141122 (compiled for DVB API 5.10)
WARNING: could not guess your country. Falling back to 'DE'
guessing country 'DE', use -c <country> to override
using settings for GERMANY
DVB aerial
DVB-T Europe
scan type TERRESTRIAL, channellist 4
output format vdr-2.0
WARNING: could not guess your codepage. Falling back to 'UTF-8'
output charset 'UTF-8', use -C <charset> to override
Info: using DVB adapter auto detection.
	/dev/dvb/adapter0/frontend0 -> TERRESTRIAL "Silicon Labs Si2168": very good :-))

Using TERRESTRIAL frontend (adapter /dev/dvb/adapter0/frontend0)
-_-_-_-_ Getting frontend capabilities-_-_-_-_
Using DVB API 5.10
frontend 'Silicon Labs Si2168' supports
DVB-T2
INVERSION_AUTO
QAM_AUTO
TRANSMISSION_MODE_AUTO
GUARD_INTERVAL_AUTO
HIERARCHY_AUTO
FEC_AUTO
FREQ (42.00MHz ... 870.00MHz)
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Scanning DVB-T...
Scanning 7MHz frequencies...
177500: (time: 00:01.719)
184500: (time: 00:03.747)
191500: (time: 00:05.803)
198500: (time: 00:07.811)
205500: (time: 00:09.819)
212500: (time: 00:11.827)
219500: (time: 00:13.831)
226500: (time: 00:15.835)
Scanning 8MHz frequencies...
474000: (time: 00:17.843)
482000: (time: 00:19.847)
490000: (time: 00:21.855)
498000: (time: 00:23.907)
506000: (time: 00:25.911)
514000: (time: 00:27.959)
522000: (time: 00:29.967)
530000: (time: 00:31.970)
538000: (time: 00:34.022)         signal ok:	QAM_AUTO f = 538000 kHz I999B8C999D999T999G999Y999 (0:0:0)
        QAM_AUTO f = 538000 kHz I999B8C999D999T999G999Y999 (0:0:0) : updating transport_stream_id: -> (0:0:2)
        QAM_AUTO f = 538000 kHz I999B8C999D999T999G999Y999 (0:0:2) : updating network_id -> (0:4369:2)
        new transponder: (QPSK     f =      0 kHz I0B999C0D0T2G32Y0 (65314:4369:1)) 0x4000
        QAM_AUTO f = 538000 kHz I999B8C999D999T999G999Y999 (0:4369:2) : updating original_network_id -> (65314:4369:2)
        updating transponder:
           (QAM_AUTO f = 538000 kHz I999B8C999D999T999G999Y999 (65314:4369:2)) 0x0000
        to (QAM_16   f = 538000 kHz I999B8C23D0T8G4Y0 (65314:4369:2)) 0x405A
        new transponder: (QAM_16   f =      0 kHz I999B8C23D0T8G4Y0 (8959:4369:3)) 0x405A
546000: (time: 00:35.198)
554000: (time: 00:37.250)
562000: (time: 00:39.254)
570000: (time: 00:41.306)
578000: (time: 00:43.358)
586000: (time: 00:45.414)
594000: (time: 00:47.462)
602000: (time: 00:49.514)
610000: (time: 00:51.522)
618000: (time: 00:53.574)
626000: (time: 00:55.578)
634000: (time: 00:57.586)
642000: (time: 00:59.638)
650000: (time: 01:01.641)
658000: (time: 01:03.697)
666000: (time: 01:05.701)
674000: (time: 01:07.705)
682000: (time: 01:09.753)
690000: (time: 01:11.801)
698000: (time: 01:13.857)
706000: (time: 01:15.909)
714000: (time: 01:17.913)
722000: (time: 01:19.917)
730000: (time: 01:21.969)
738000: (time: 01:24.025)
746000: (time: 01:26.073)
754000: (time: 01:28.081)
762000: (time: 01:30.085)
770000: (time: 01:32.092)
778000: (time: 01:34.096)
786000: (time: 01:36.104)
794000: (time: 01:38.108)
802000: (time: 01:40.112)
810000: (time: 01:42.164)
818000: (time: 01:44.216)
826000: (time: 01:46.220)
834000: (time: 01:48.276)
842000: (time: 01:50.328)
850000: (time: 01:52.332)
858000: (time: 01:54.384)
Scanning DVB-T2...
Scanning 7MHz frequencies...
177500: (time: 01:56.388)
184500: (time: 01:58.396)
191500: (time: 02:00.400)
198500: (time: 02:02.403)
205500: (time: 02:04.407)
212500: (time: 02:06.455)
219500: (time: 02:08.511)
226500: (time: 02:10.519)
Scanning 8MHz frequencies...
474000: (time: 02:12.571)
482000: (time: 02:14.579)
490000: (time: 02:16.583)
498000: (time: 02:18.587)
506000: (time: 02:20.591)
514000: (time: 02:22.643)
522000: (time: 02:24.695)
530000: (time: 02:26.699)
538000: skipped (already known transponder)
546000: (time: 02:28.751)
554000: (time: 02:30.755)
562000: (time: 02:32.762)
570000: (time: 02:34.766)
578000: (time: 02:36.774)
586000: (time: 02:38.778)
594000: (time: 02:40.782)
602000: (time: 02:42.786)
610000: (time: 02:44.790)
618000: (time: 02:46.842)
626000: (time: 02:48.846)
634000: (time: 02:50.850)
642000: (time: 02:52.858)
650000: (time: 02:54.862)
658000: (time: 02:56.866)
666000: (time: 02:58.874)
674000: (time: 03:00.878)
682000: (time: 03:02.881)
690000: (time: 03:04.889)
698000: (time: 03:06.893)
706000: (time: 03:08.897)
714000: (time: 03:10.901)
722000: (time: 03:12.909)
730000: (time: 03:14.917)
738000: (time: 03:16.921)
746000: (time: 03:18.929)
754000: (time: 03:20.933)
762000: (time: 03:22.937)
770000: (time: 03:24.941)
778000: (time: 03:26.945)
786000: (time: 03:28.949)
794000: (time: 03:30.957)
802000: (time: 03:32.961)
810000: (time: 03:34.964)
818000: (time: 03:36.968)
826000: (time: 03:38.976)
834000: (time: 03:41.028)
842000: (time: 03:43.080)
850000: (time: 03:45.132)
858000: (time: 03:47.184)
tune to: QAM_16   f = 538000 kHz I999B8C23D0T8G4Y0 (65314:4369:2) (time: 03:49.188)
	service = Ch 1 (Idan +)
	service = Ch 2 (Idan +)
	service = Ch 10 (Idan +)
	service = Ch 33 (Idan +)
	service = Ch 99 (Idan +)
	service = Ch 23 (Idan +)
	service = Idan+test_2 (Idan+)
	service = Aleph (Idan +)
	service = Bet (Idan +)
	service = Gimmel (Idan +)
	service = Dalet (Idan +)
	service = Moreshet (Idan +)
	service = 88FM (Idan +)
	service = Musica (Idan +)
	service = Reka (Idan +)
	service = Galatz (Idan +)
	service = Galgalatz (Idan +)
	service = Radios (Idan +)
	service = Kol Barama (Idan +)
	service = Lev HaMdina (Idan +)
	service = CLASSICAL bu (Idan +)
retrying with center_frequency = 514000000
tune to: QAM_16   f = 514000 kHz I999B8C23D0T8G4Y0 (8959:4369:3) (time: 04:02.968)
----------no signal----------
tune to: QAM_AUTO f = 514000 kHz I999B8C999D0T999G999Y0 (8959:4369:3) (time: 04:08.995)  (no signal)
----------no signal----------
(time: 04:15.019) dumping lists (20 services)
..
Ch 1;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:2561=27:2562@17:0;1025:0:1:65314:2:0
Ch 2;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:2593=27:2594@17,2595:0;2608,2609,2610:0:2:65314:2:0
Ch 10;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:2625=27:2626@17,2627:0;2640,2641,2642:0:3:65314:2:0
Ch 33;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:2657=27:2658@17:0:0:4:65314:2:0
Ch 99;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:2689=27:2690@17:0;2704:0:5:65314:2:0
Ch 23;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:3585=27:3586@17:0:0:6:65314:2:0
Aleph;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:2817@17:0:0:21:65314:2:0
Bet;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:2833@17:0:0:22:65314:2:0
Gimmel;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:2849@17:0:0:23:65314:2:0
Dalet;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:2865@17:0:0:24:65314:2:0
Moreshet;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:2881@17:0:0:25:65314:2:0
88FM;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:2897@17:0:0:26:65314:2:0
Musica;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:2913@17:0:0:27:65314:2:0
Reka;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:2929@17:0:0:28:65314:2:0
Galatz;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:2945@17:0:0:29:65314:2:0
Galgalatz;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:2961@17:0:0:30:65314:2:0
Radios;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:3057@17:0:0:36:65314:2:0
Kol Barama;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:3137@17:0:0:41:65314:2:0
Lev HaMdina;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:3153@17:0:0:42:65314:2:0
CLASSICAL bu;Idan +:538000:B8C23D0G4M16T8Y0:T:27500:0:3201@17:0:0:45:65314:2:0
Done, scan time: 04:15.019

The dvb_channel.conf file

As promised above, this is the dvb_channel.conf that was obtained with dvbv5-scan:

[Ch 1]
	SERVICE_ID = 1
	VIDEO_PID = 2561
	AUDIO_PID = 2562
	PID_06 = 1025
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Ch 2]
	SERVICE_ID = 2
	VIDEO_PID = 2593
	AUDIO_PID = 2594 2595
	PID_06 = 2610 2609 2608
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Ch 10]
	SERVICE_ID = 3
	VIDEO_PID = 2625
	AUDIO_PID = 2626 2627
	PID_06 = 2642 2641 2640
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Ch 33]
	SERVICE_ID = 4
	VIDEO_PID = 2657
	AUDIO_PID = 2658
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Ch 99]
	SERVICE_ID = 5
	VIDEO_PID = 2689
	AUDIO_PID = 2690
	PID_06 = 2704
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Ch 23]
	SERVICE_ID = 6
	VIDEO_PID = 3585
	AUDIO_PID = 3586
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Aleph]
	SERVICE_ID = 21
	AUDIO_PID = 2817
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Bet]
	SERVICE_ID = 22
	AUDIO_PID = 2833
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Gimmel]
	SERVICE_ID = 23
	AUDIO_PID = 2849
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Dalet]
	SERVICE_ID = 24
	AUDIO_PID = 2865
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Moreshet]
	SERVICE_ID = 25
	AUDIO_PID = 2881
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[88FM]
	SERVICE_ID = 26
	AUDIO_PID = 2897
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Musica]
	SERVICE_ID = 27
	AUDIO_PID = 2913
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Reka]
	SERVICE_ID = 28
	AUDIO_PID = 2929
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Galatz]
	SERVICE_ID = 29
	AUDIO_PID = 2945
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Galgalatz]
	SERVICE_ID = 30
	AUDIO_PID = 2961
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Radios]
	SERVICE_ID = 36
	AUDIO_PID = 3057
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Kol Barama]
	SERVICE_ID = 41
	AUDIO_PID = 3137
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[Lev HaMdina]
	SERVICE_ID = 42
	AUDIO_PID = 3153
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

[CLASSICAL bu]
	SERVICE_ID = 45
	AUDIO_PID = 3201
	FREQUENCY = 538000000
	MODULATION = QAM/16
	BANDWIDTH_HZ = 8000000
	INVERSION = AUTO
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = AUTO
	GUARD_INTERVAL = 1/4
	TRANSMISSION_MODE = 8K
	HIERARCHY = NONE
	DELIVERY_SYSTEM = DVBT

This was obtained on February 8th, 2017. It’s probably going to change over time.

Reader Comments

For that device you cannot trust much for signal statistics (ucb, ber, strength) because device limitation. LME2510C chip has limitation that it stops data streaming after any I2C operation while stream is running. Due to that LME2510C driver blocks all I2C access to demod and tuner when streaming, which means you cannot get statistics from demod or tuner.

Anyhow, your device seems to be working and operational.

#1 
Written By Antti Palosaari on February 10th, 2017 @ 06:46

Thanks for that input. It’s not every day that I get visited by the chief developer. ;)

The bottom line was that I never managed to get any picture, not using tvheadend (which complained there was no input stream) and not with the command line utilities.

Also, on the few occasions that I got some BER info that seemed meaningful, the figure was around 0.5 (or as it says: 675 * 10^-3 or something).

I’m not an easy quitter, but in this case I gave up. Ultimately, I went for the adventure of trying to fix what I believe were short-circuits on fine-pitch chips, and ended up messing up completely.

So my dongle is dead, and a new HD-901T2 is on its way to me. I suppose it will be easier this time.

#2 
Written By eli on February 10th, 2017 @ 09:04

It just update single time statistics when demodulator locks to channel. When demod locks to channel it starts streaming and driver prevents statistic updates (because any i2c access stops streaming due to some stupid hw limitation). First statistic update just after lock is more or less garbage and it will never update any better. I think it is better to disable statistics totally from the driver…
You could use dvbv5-zap -r to tune some channel and then vlc –dvb-budget-mode dvb://dev/dvb/adapter0/dvr0 to view and test for example.
Those channel names are coming from the stream so it is good indicator it is working.

#3 
Written By Antti Palosaari on February 10th, 2017 @ 19:48

I know that the channel names come from the stream, but I speculate that there was something wrong with the dongle (such as a short-circuit between a couple of pins) that made it perform horribly bad. So the reception quality was good enough to get some metadata, but not good enough to play video.

And that will remain as a speculation. As I mentioned before, my dongle is dead, and I’m buying another one.

And in case someone reads this correspondence and doesn’t know who I’m talking with: Antti is the Linux kernel maintainer of several media drivers, and the author of the driver of the said dongle. Respect. :)

#4 
Written By eli on February 10th, 2017 @ 20:09

Hey Eli
Great blog, Have you managed to view IDAN+ HD with any DVB-T2 stick?
I got the Geniatech 230c which supposedly has DVB-T2 Capabilities but i only get radio channels]’
i have read that it means that the signal is weak but a Set-top-box with the same antenna gets to see the channels.

Thnx in advnace,
eldadh

#5 
Written By eldad hadas on July 27th, 2017 @ 21:44

Hello,

Thanks. I haven’t attempted to tune the HD channels. Can’t see the point at the moment, given what is broadcast there.

Eli

#6 
Written By eli on July 27th, 2017 @ 21:58

Great post and very informative – thank you! I am experimenting with a TVHeadend server in Brazil, using ISDB-T and this was a massive help. Seems like my main issue is C/N values –

iapps@iapps:/usr/share/dvb/isdb-t$ sudo dvbv5-zap -c dvb_channel.conf -r ‘Globo HD’
using demux ‘dvb0.demux0′
reading channels from file ‘dvb_channel.conf’
service has pid type 05: 500
tuning to 497142857 Hz
video pid 273
dvb_set_pesfilter 273
audio pid 274
dvb_set_pesfilter 274
(0x00) Signal= -63.50dBm postBER= 0
Timeout(0x20) Signal= -20.00dBm postBER= 0
Lock (0x1f) Signal= -20.00dBm C/N= 22.80dB postBER= 0
Layer A: Signal= 79.35% C/N= 45.04%
Lock (0x1f) Signal= -20.00dBm C/N= 23.40dB postBER= 0
Layer A: Signal= 79.35% C/N= 46.05%
DVR interface ‘/dev/dvb/adapter0/dvr0′ can now be opened
Lock (0x1f) Signal= -20.40dBm C/N= 23.40dB postBER= 0
Layer A: Signal= 78.95% C/N= 46.05%

Anyway – probably needs a better antenna alignment. Thanks again!

#7 
Written By Alex on September 24th, 2018 @ 23:05

The a.m. “Weird fact:” about dvb-fe-toot is by design. As the man page states:

-m, –femon

Monitors … for a frontend that it is ALREADY BEEING STREAMING via some other application …

#8 
Written By Monika Schilling on March 28th, 2020 @ 18:51

Add a Comment

required, use real name
required, will not be published
optional, your blog address