dtvtune
Jump to navigation
Jump to search
NOTE: THIS IS A TEST PAGE ONLY. / DIGITAL PLAYGROUND FOR A NON-EXISTING TOOL.
Introduction
dtvtune is small utility to tune and debug digital tv cards.
It complements the w_scan command line channel scanner and helps debugging DTV cards and tv software related problems.
dtvtune requires DVB API v5.
If just tune is wanted, this tool behaves like femon and reports signal/lock.
Purpose
- check dtv card tuning with given set of parameters
- do roughly estimates of real life demod bit error rates by monitoring CRC32 of SI tables received in application.
- check tuning implementations and unknown devices/delsys for w_scan
- tool for playing with api v5.
- report dtv cards properties.
- do not rely on external libs.
Documentation
dtvtune does not have a man page.
However if you run it with parameter -H, a summary of it's command options is displayed.
usage: ./dtvtune [options...] -a N, --adapter N use device /dev/dvb/adapterN/ [default: /dev/dvb/adapter0/] (also allowed: -a /dev/dvb/adapterN/frontendM) -b N, --bandwidth_hz N, (default: 0 for 'AUTO') bandwidth in Hz, N = {1720000 .. 10000000} DVB-T/T2, ISDB-T, ISDB-Tsb -c s, --code_rate s inner fec (cable/sat) / coderate high priority (terr) s = (FEC_NONE, FEC_1_2, FEC_2_3, FEC_3_4, FEC_4_5, FEC_5_6, FEC_6_7, FEC_7_8, FEC_8_9, FEC_AUTO, FEC_3_5, FEC_9_10, FEC_2_5) -d s, --delivery_system s (default: not defined) sets the delivery system. s = (SYS_DVBC_ANNEX_A, SYS_DVBC_ANNEX_B, SYS_DVBC_ANNEX_C SYS_DVBT, SYS_DVBT2 SYS_DVBS, SYS_DVBS2, SYS_DSS, SYS_TURBO SYS_DVBH, SYS_DAB, SYS_DTMB, SYS_CMMB SYS_ISDBT, SYS_ISDBS, SYS_ISDBC, SYS_ATSC, SYS_ATSCMH) -f N, --frequency N, (default: 0) center frequency in Hz, except satellite: kHz -g s, --guard_interval s sets the DVB-T/T2 guard interval s = (GUARD_INTERVAL_1_32, GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_8, GUARD_INTERVAL_1_4, GUARD_INTERVAL_AUTO, GUARD_INTERVAL_1_128, GUARD_INTERVAL_19_128, GUARD_INTERVAL_19_256, GUARD_INTERVAL_PN420, GUARD_INTERVAL_PN595, GUARD_INTERVAL_PN945) -h s, --hierarchy s set DVB-T/T2 hierachy. Usually HIERARCHY_NONE s = (HIERARCHY_NONE, HIERARCHY_1, HIERARCHY_2, HIERARCHY_4, HIERARCHY_AUTO) -i s, --inversion s specify spectral inversion (default: INVERSION_AUTO) s = (INVERSION_OFF, INVERSION_ON, INVERSION_AUTO) -l s, --lna s low noise amp for terr devices (default: LNA_AUTO) s = (LNA_OFF, LNA_ON, LNA_AUTO) -m s, --modulation s s = (QPSK, QAM_16, QAM_32, QAM_64, QAM_128, QAM_256, QAM_AUTO, VSB_8, VSB_16, PSK_8, APSK_16, APSK_32, DQPSK, QAM_4_NR) -p s, --pilot s DVB-S2 pilot tone: on/off/auto s = (PILOT_ON, PILOT_OFF, PILOT_AUTO) -r s, --rolloff s DVB-S2 rolloff: 0.35/0.20/0.25/auto s = (ROLLOFF_35, ROLLOFF_20, ROLLOFF_25, ROLLOFF_AUTO) -s N, --symbol_rate N cable symbol rate in symbols per second suggestion: 6900000 or 6875000 for DVB-C annex A -t s, --transmission_mode s set transmission mode for DVB-T/T2, ISDB-T, DTMB s = (TRANSMISSION_MODE_2K, TRANSMISSION_MODE_8K, TRANSMISSION_MODE_AUTO, TRANSMISSION_MODE_4K, TRANSMISSION_MODE_1K, TRANSMISSION_MODE_16K, TRANSMISSION_MODE_32K, TRANSMISSION_MODE_C1, TRANSMISSION_MODE_C3780) -u <slot:user_frequency:sat_pos(:user_pin)> --scr <slot:user_frequency:sat_pos(:user_pin)> Satellite Channel Routing a) use EN50494: slot : slot number for user frequency, 0..7 user_frequency: receiver user frequency for slot in MHz, i.e. 1400 sat_pos : satellite position (upper case), 'A' or 'B' user_pin : optional user pin, normally not used (0..255) i.e. -u 0:1400:A for EN50494, slot 0 at 1400 MHz, Satellite Pos 'A' b) use advanced SCR EN50607/JESS: slot : slot number for user frequency, 0..31 user_frequency: receiver user frequency for slot in MHz, i.e. 1400 sat_pos : satellite position (lower case), 'a' .. 'p' user_pin : optional user pin, normally not used (0..255) i.e. -u 0:1400:a for EN50607 slot 0 at 1400 MHz, Satellite Pos 'a' sat| committed switch | uncommitted switch pos| option | position | option | position 'a' 0 | 0 | 0 | 0 'b' 0 | 1 | 0 | 0 'c' 1 | 0 | 0 | 0 'd' 1 | 1 | 0 | 0 'e' 0 | 0 | 0 | 1 'f' 0 | 1 | 0 | 1 'g' 1 | 0 | 0 | 1 'h' 1 | 1 | 0 | 1 'i' 0 | 0 | 1 | 0 'j' 0 | 1 | 1 | 0 'k' 1 | 0 | 1 | 0 'l' 1 | 1 | 1 | 0 'm' 0 | 0 | 1 | 1 'n' 0 | 1 | 1 | 1 'o' 1 | 0 | 1 | 1 'p' 1 | 1 | 1 | 1 -v, --verbosity increase verbosity by one. -v N, --verbosity N set verbosity to N -C s, --code_rate_lp s set code rate low priority stream for DVB-T, ignored if hierarchy is not set. s = see '-c' -D Nc, --diseqc-switch Nc use DiSEqC committed switch position N -D Nu, --diseqc-switch Nu use DiSEqC uncommitted switch position N -L N:N:N, --lnb N:N:N set SAT LNB in MHz lowfreq:highfreq:switchfreq default: 9750:10600:11700 -P s, --polarization s satellite polarization s = (HORIZONTAL, VERTICAL, CIRCULAR_LEFT, CIRCULAR_RIGHT) -S N, --stream_id N (default: OFF) set stream_id (PLP_ID, ISI) DVB-S2: 0..255 DVB-T2: 0..255 ISDB: 0..65535 values from 65536..4294967295 set stream_id = OFF --isdbt_partial_reception N N = (0, 1, AUTO) --isdbt_sound_broadcasting N N = (0, 1, AUTO) --isdbt_sb_subchannel_id N N = (0 .. 41, AUTO) --isdbt_sb_segment_count N N = (1 .. 13) --isdbt_sb_segment_idx N N = (0 .. 12, AUTO) --isdbt_layerL_enabled N L = (a, b, c) N = (0, 1) --isdbt_layerL_fec s L = (a, b, c) s = see '-c' --isdbt_layerL_modulation s L = (a, b, c) s = see '-m' --isdbt_layerL_segment_count N L = (a, b, c) N = (1 .. 13, AUTO) --isdbt_layerL_time_interleaving N L = (a, b, c) N = (0, 1, 2, 4, AUTO) -H --help show this help text
compiling dtvtune
make clean all
dtvtune doesnt have a make install target.
usage examples
tune digital cable TV Europe (DVB-C annex A)
./dtvtune -d SYS_DVBC_ANNEX_A -f402000000 -m QAM_256 -s 69000000
tune digital terrestrial TV Europe (DVB-T)
./dtvtune -d SYS_DVBT -f 618000000 -b 8000000 -c FEC_2_3 -C FEC_NONE -h HIERARCHY_NONE -m QAM_64 -t TRANSMISSION_MODE_8K -g GUARD_INTERVAL_1_8
tune digital terrestrial TV Europe, 2nd gen delsys (DVB-T2)
./dtvtune -d SYS_DVBT2 -f 642000000 -b 8000000 -m QAM_AUTO -t TRANSMISSION_MODE_32K -g GUARD_INTERVAL_1_16 -S0
tune satellite, 2nd gen delsys (DVB-S2)
NOTE: diseqc switch pos 1.
./dtvtune -d SYS_DVBS2 -f 11053000 -i INVERSION_AUTO -P HORIZONTAL -s 22000000 -m PSK_8 -c FEC_2_3 -p PILOT_AUTO -r ROLLOFF_AUTO -D1c
NOTE: SCR tuning EN50494, userfreq 1210MHz@slot3 (Inverto Unicable Black LNB), satellite position A
./dtvtune -d SYS_DVBS2 -f 11053000 -i INVERSION_AUTO -P HORIZONTAL -s 22000000 -m PSK_8 -c FEC_2_3 -p PILOT_AUTO -r ROLLOFF_AUTO -u 3:1210:A
delivery systems
Delivery System | Implemented (y/n) | Status |
SYS_DVBC_ANNEX_A | y | works. |
SYS_DVBC_ANNEX_C | y | works. |
SYS_DVBC_ANNEX_B | y | implemented, UNTESTED. expected to work. |
SYS_DVBT | y | works. |
SYS_DVBT2 | y | works. |
SYS_DVBS | y | implemented, UNTESTED. expected to work. diseqc switch (committed/uncommitted), EN50494, EN50607/JESS support implemented. waiting for bug reports. |
SYS_DVBS2 | y | implemented, UNTESTED. expected to work. diseqc switch(committed/uncommitted), EN50494, EN50607/JESS support implemented. waiting for bug reports. |
SYS_DSS | y | implemented, UNTESTED. not expected to work, waiting for bug reports. |
SYS_TURBO | y | implemented, UNTESTED. not expected to work, waiting for bug reports. |
SYS_DVBH | n | not implemented. |
SYS_DAB | n | not implemented. |
SYS_DTMB | n | not implemented. |
SYS_CMMB | n | not implemented. |
SYS_ISDBT | y | implemented, UNTESTED. not expected to work, waiting for bug reports. |
SYS_ISDBS | n | not implemented. |
SYS_ISDBC | n | not implemented. |
SYS_ATSC | y | implemented, UNTESTED. expected to work. |
SYS_ATSCMH | n | not implemented. |
Status
WORK IN PROGRESS - 2015/01/04