Skip to contentSkip to conversation

STV0299: reading property DTV_FREQUENCY -- what am I expected to get?

DISCUSSION Reinhard Nissl 4 participants 7 messages Aug 14, 2012 – Aug 18, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi,

it seems that my 9 years old LNBs got some drift over time, as tuning takes quite a while until I get a lock. So I thought I could compensate this offset by adjusting VDR's diseqc.conf.

Therefore I first hacked some logging into VDR's tuner code to read and output the above mentioned property once it got a lock after tuning. As VDR's EPG scanner travels over all transponders when idle, I get offset values for all transponders and can then try to find some average offset to put into diseqc.conf.

So here are several "travel" results for a single transponder ordered by Delta:

Sat. Pol. Band Freq (MHz) Set Freq (MHz) Get Delta (MHz)
S13,0E H H 11938 11930,528 -7,472
S13,0E H H 11938 11936,294 -1,706
S13,0E H H 11938 11938,917 0,917
S13,0E H H 11938 11939,158 1,158
S13,0E H H 11938 11939,906 1,906
S13,0E H H 11938 11939,965 1,965
S13,0E H H 11938 11940,029 2,029
S13,0E H H 11938 11940,032 2,032
S13,0E H H 11938 11940,103 2,103
S13,0E H H 11938 11940,112 2,112
S13,0E H H 11938 11940,167 2,167
S13,0E H H 11938 11941,736 3,736
S13,0E H H 11938 11941,736 3,736
S13,0E H H 11938 11941,736 3,736
S13,0E H H 11938 11942,412 4,412
S13,0E H H 11938 11943,604 5,604
S13,0E H H 11938 11943,604 5,604
S13,0E H H 11938 11943,604 5,604
S13,0E H H 11938 11945,472 7,472
S13,0E H H 11938 11945,472 7,472
S13,0E H H 11938 11945,472 7,472
S13,0E H H 11938 11945,472 7,472
S13,0E H H 11938 11945,472 7,472
S13,0E H H 11938 11945,472 7,472
S13,0E H H 11938 11945,472 7,472
S13,0E H H 11938 11945,777 7,777
S13,0E H H 11938 11945,777 7,777
S13,0E H H 11938 11945,777 7,777
S13,0E H H 11938 11945,777 7,777

I really wonder why Delta varies that much, and there are other transponders in the same band which have no larger deltas then 3 MHz.

So is it at all possible to determine LNB drift in that way?

My other device, a STB0899, always reports the set frequency. So it seems driver dependent whether it reports the actually locked frequency found by the zig-zag-algorithm or just the set frequency to tune to.

Thanks in advance for any replies.

Bye.

Signature · 2 lines
Dipl.-Inform. (FH) Reinhard Nissl
mailto:[email protected]
#1 lore raw
Quoted 46 lines · Reinhard Nissl

Hi,

it seems that my 9 years old LNBs got some drift over time, as tuning takes quite a while until I get a lock. So I thought I could compensate this offset by adjusting VDR's diseqc.conf.

Therefore I first hacked some logging into VDR's tuner code to read and output the above mentioned property once it got a lock after tuning. As VDR's EPG scanner travels over all transponders when idle, I get offset values for all transponders and can then try to find some average offset to put into diseqc.conf.

So here are several "travel" results for a single transponder ordered by Delta:

Sat.    Pol.    Band    Freq (MHz) Set    Freq (MHz) Get    Delta (MHz)
S13,0E    H    H    11938    11930,528    -7,472
S13,0E    H    H    11938    11936,294    -1,706
S13,0E    H    H    11938    11938,917    0,917
S13,0E    H    H    11938    11939,158    1,158
S13,0E    H    H    11938    11939,906    1,906
S13,0E    H    H    11938    11939,965    1,965
S13,0E    H    H    11938    11940,029    2,029
S13,0E    H    H    11938    11940,032    2,032
S13,0E    H    H    11938    11940,103    2,103
S13,0E    H    H    11938    11940,112    2,112
S13,0E    H    H    11938    11940,167    2,167
S13,0E    H    H    11938    11941,736    3,736
S13,0E    H    H    11938    11941,736    3,736
S13,0E    H    H    11938    11941,736    3,736
S13,0E    H    H    11938    11942,412    4,412
S13,0E    H    H    11938    11943,604    5,604
S13,0E    H    H    11938    11943,604    5,604
S13,0E    H    H    11938    11943,604    5,604
S13,0E    H    H    11938    11945,472    7,472
S13,0E    H    H    11938    11945,472    7,472
S13,0E    H    H    11938    11945,472    7,472
S13,0E    H    H    11938    11945,472    7,472
S13,0E    H    H    11938    11945,472    7,472
S13,0E    H    H    11938    11945,472    7,472
S13,0E    H    H    11938    11945,472    7,472
S13,0E    H    H    11938    11945,777    7,777
S13,0E    H    H    11938    11945,777    7,777
S13,0E    H    H    11938    11945,777    7,777
S13,0E    H    H    11938    11945,777    7,777
Quoted 8 lines

I really wonder why Delta varies that much, and there are other transponders in the same band which have no larger deltas then 3 MHz.

So is it at all possible to determine LNB drift in that way?

My other device, a STB0899, always reports the set frequency. So it seems driver dependent whether it reports the actually locked frequency found by the zig-zag-algorithm or just the set frequency to tune to.

That is tricky part. I recently explained that too when Mauro added get_afc() callback:
http://www.spinics.net/lists/linux-media/msg51308.html

It should return actual frequency frontend is tuned (I am not sure about DVB-S as there is IF/LNB). But the way DVBv5 API is implemented, using cache, you never know if it is same value you set or some real value tuner is listening. You can never trust APIv5 get values - those are 1) just same you have set or 2) those could be values updated by driver.

Quoted 4 lines

Thanks in advance for any replies.

Bye.

regards
Antti

Signature · 1 line
http://palosaari.fi/
#2 lore raw
In reply to Reinhard Nissl

Hi,

Quoted 46 lines · Reinhard Nissl

Hi,

it seems that my 9 years old LNBs got some drift over time, as tuning takes quite a while until I get a lock. So I thought I could compensate this offset by adjusting VDR's diseqc.conf.

Therefore I first hacked some logging into VDR's tuner code to read and output the above mentioned property once it got a lock after tuning. As VDR's EPG scanner travels over all transponders when idle, I get offset values for all transponders and can then try to find some average offset to put into diseqc.conf.

So here are several "travel" results for a single transponder ordered by Delta:

Sat.    Pol.    Band    Freq (MHz) Set  Freq (MHz) Get  Delta (MHz)
S13,0E  H       H       11938   11930,528       -7,472
S13,0E  H       H       11938   11936,294       -1,706
S13,0E  H       H       11938   11938,917       0,917
S13,0E  H       H       11938   11939,158       1,158
S13,0E  H       H       11938   11939,906       1,906
S13,0E  H       H       11938   11939,965       1,965
S13,0E  H       H       11938   11940,029       2,029
S13,0E  H       H       11938   11940,032       2,032
S13,0E  H       H       11938   11940,103       2,103
S13,0E  H       H       11938   11940,112       2,112
S13,0E  H       H       11938   11940,167       2,167
S13,0E  H       H       11938   11941,736       3,736
S13,0E  H       H       11938   11941,736       3,736
S13,0E  H       H       11938   11941,736       3,736
S13,0E  H       H       11938   11942,412       4,412
S13,0E  H       H       11938   11943,604       5,604
S13,0E  H       H       11938   11943,604       5,604
S13,0E  H       H       11938   11943,604       5,604
S13,0E  H       H       11938   11945,472       7,472
S13,0E  H       H       11938   11945,472       7,472
S13,0E  H       H       11938   11945,472       7,472
S13,0E  H       H       11938   11945,472       7,472
S13,0E  H       H       11938   11945,472       7,472
S13,0E  H       H       11938   11945,472       7,472
S13,0E  H       H       11938   11945,472       7,472
S13,0E  H       H       11938   11945,777       7,777
S13,0E  H       H       11938   11945,777       7,777
S13,0E  H       H       11938   11945,777       7,777
S13,0E  H       H       11938   11945,777       7,777
Quoted 2 lines

I really wonder why Delta varies that much, and there are other transponders in the same band which have no larger deltas then 3 MHz.

The LNB drift is due to the cheap RC oscillator in standard LNB's which are temperature dependant. So, the oscillator frequency that you might experience at mid-day, might not be same as that at midnight. The capacitors are ceramic capacitors, so there isn't likely the chance of the capacitor changing it's value
too much over time, but there exists other issues such as parasitic capacitances
when the LNB shell looses it's hermetic seal.

I have seen the drift overlapping another transponder with the stv0299 in some scenarios, but don't see how this can be fixed reliably.

Quoted 6 lines

So is it at all possible to determine LNB drift in that way?

My other device, a STB0899, always reports the set frequency. So it seems driver dependent whether it reports the actually locked frequency found by the zig-zag-algorithm or just the set frequency to tune to.

The STV0299 blindly sets the value based on a software zigzag (due to simpler hardware), but this might not be accurate enough. On the other hand, the STB0899 internally does zig-zag in hardware for DVB-S2, and partly in software for DVB-S.

In any event, the get_frontend callback should return the value that is read from the demodulator registers, rather than the cached original value that which was requested to be tuned.

The stb0899 returns only the cached value IIRC. Maybe I will fix this soon, or maybe you can send a patch.

Regards,
Manu

#3 lore raw

Hi,

Am 14.08.2012 14:05, schrieb Manu Abraham:

Quoted 9 lines
Quoted 3 lines

My other device, a STB0899, always reports the set frequency. So it seems driver dependent whether it reports the actually locked frequency found by the zig-zag-algorithm or just the set frequency to tune to.

The STV0299 blindly sets the value based on a software zigzag (due to simpler hardware), but this might not be accurate enough. On the other hand, the STB0899 internally does zig-zag in hardware for DVB-S2, and partly in software for DVB-S.

Quoted 6 lines

In any event, the get_frontend callback should return the value that is read from the demodulator registers, rather than the cached original value that which was requested to be tuned.

The stb0899 returns only the cached value IIRC. Maybe I will fix this soon, or maybe you can send a patch.

See the attached patch.

This is what I get after the patch:

Sat. Pol. Band Freq (MHz) Set Freq (MHz) Get Delta (MHz)
S19,2E H L 10744 10748,474 4,474
S19,2E H L 10773 10777,944 4,944
S19,2E H L 10832 10836,953 4,953
S19,2E H L 10861 10868,774 7,774
S19,2E H L 10920 10924,312 4,312
S19,2E H L 11023 11026,827 3,827
S19,2E H L 11170 11175,423 5,423
S19,2E H L 11243 11248,452 5,452
S19,2E H L 11302 11307,371 5,371
S19,2E H L 11361 11366,427 5,427
S19,2E H L 11420 11425,473 5,473
S19,2E H L 11464 11468,876 4,876
S19,2E H L 11493 11498,421 5,421
S19,2E H L 11523 11529,080 6,080
S19,2E H L 11582 11586,942 4,942
S19,2E H L 11611 11618,785 7,785
S19,2E H L 11641 11645,951 4,951
S19,2E H L 11670 11675,450 5,450
S19,2E H H 11719 11724,970 5,970
S19,2E H H 11758 11763,975 5,975
S19,2E H H 11797 11802,978 5,978
S19,2E H H 11836 11841,972 5,972
S19,2E H H 11875 11880,951 5,951

I'll have to let VDR "travel" across the transponders several times to see whether I get similar results for the previously mentioned transponder on the stv0299 device.

Bye.

Signature · 2 lines
Dipl.-Inform. (FH) Reinhard Nissl
mailto:[email protected]
stb0899_drv.c renamed from usr/src/linux-3.1.10-1.16/drivers/media/dvb/frontends/stb0899_drv.c +1 -0
@@ -1596,6 +1596,7 @@ static int stb0899_get_frontend(struct d
 
 	dprintk(state->verbose, FE_DEBUG, 1, "Get params");
 	p->u.qpsk.symbol_rate = internal->srate;
+	p->frequency = internal->freq;
 
 	return 0;
 }
#4 lore raw

Hi,

Am 14.08.2012 22:15, schrieb Reinhard Nissl:

Quoted 58 lines

Hi,

Am 14.08.2012 14:05, schrieb Manu Abraham:

Quoted 20 lines
Quoted 5 lines

My other device, a STB0899, always reports the set frequency. So it seems
driver dependent whether it reports the actually locked frequency found by
the zig-zag-algorithm or just the set frequency to tune to.

The STV0299 blindly sets the value based on a software zigzag (due to simpler
hardware), but this might not be accurate enough. On the other hand, the
STB0899 internally does zig-zag in hardware for DVB-S2, and partly in
software for DVB-S.

In any event, the get_frontend callback should return the value that is read
from the demodulator registers, rather than the cached original value that
which was requested to be tuned.

Quoted 3 lines

The stb0899 returns only the cached value IIRC. Maybe I will fix this soon,
or maybe you can send a patch.

See the attached patch.

This is what I get after the patch:

Sat. Pol. Band Freq (MHz) Set Freq (MHz) Get Delta
(MHz)

S19,2E    H    L    10744    10748,474    4,474
S19,2E    H    L    10773    10777,944    4,944
S19,2E    H    L    10832    10836,953    4,953
S19,2E    H    L    10861    10868,774    7,774
S19,2E    H    L    10920    10924,312    4,312
S19,2E    H    L    11023    11026,827    3,827
S19,2E    H    L    11170    11175,423    5,423
S19,2E    H    L    11243    11248,452    5,452
S19,2E    H    L    11302    11307,371    5,371
S19,2E    H    L    11361    11366,427    5,427
S19,2E    H    L    11420    11425,473    5,473
S19,2E    H    L    11464    11468,876    4,876
S19,2E    H    L    11493    11498,421    5,421
S19,2E    H    L    11523    11529,080    6,080
S19,2E    H    L    11582    11586,942    4,942
S19,2E    H    L    11611    11618,785    7,785
S19,2E    H    L    11641    11645,951    4,951
S19,2E    H    L    11670    11675,450    5,450
S19,2E    H    H    11719    11724,970    5,970
S19,2E    H    H    11758    11763,975    5,975
S19,2E    H    H    11797    11802,978    5,978
S19,2E    H    H    11836    11841,972    5,972
S19,2E    H    H    11875    11880,951    5,951
Quoted 3 lines

I'll have to let VDR "travel" across the transponders several times to see whether I get similar results for the previously mentioned transponder on the stv0299 device.

Please have a look at

	http://home.vrweb.de/~rnissl/test/tune2.pdf

For the topmost samples (S13.0E, Band H, Pol. V) it seems like there is an average offset of 6.7 MHz. One can see the temperature dependent drift of the LNB between night and day (ambient temperature 12.55 °C vs. 28.35 °C) by the "bars" which are created of co-located samples.

BTW: x-axis enumerates transponders (which VDR could get a lock for) in the corresponding band ordered by increasing frequency. To get all bands in one diagram, each band adds an additional offset of 10 MHz, so simply ignore the ten's digit.

While the S13.0E transponders look good besides a single transponder which shows a wider range of frequency offsets, the S19.2E transponders in the high bands show a similar wide range for several "highest" frequency transponders. I have no idea why this also happens for almost any S19.2E low band vertical transponder.

Can anyone explain that for example by driver or device limitations?

I hope the offsets from 4.7 MHz to 6.7 MHz are not an issue of the STB0899 device. If I recall correctly, I had tuning issues also on my 9 year old TechniSat receiver, e. g. Pro7 on S19.2E was working in the morning but not in the evening, and adjusting diseqc settings to compensate for about 5 MHz solved the issue.

Recently I ordered a recent TechniSat receiver and it tunes awfully slow -- I'll now try to tweak diseqc settings and see if things get better ;-)

Bye.

Signature · 2 lines
Dipl.-Inform. (FH) Reinhard Nissl
mailto:[email protected]
#5 lore raw
In reply to Reinhard Nissl

Em 14-08-2012 17:15, Reinhard Nissl escreveu:

Quoted 49 lines

Hi,

Am 14.08.2012 14:05, schrieb Manu Abraham:

Quoted 9 lines
Quoted 3 lines

My other device, a STB0899, always reports the set frequency. So it seems driver dependent whether it reports the actually locked frequency found by the zig-zag-algorithm or just the set frequency to tune to.

The STV0299 blindly sets the value based on a software zigzag (due to simpler hardware), but this might not be accurate enough. On the other hand, the STB0899 internally does zig-zag in hardware for DVB-S2, and partly in software for DVB-S.

Quoted 6 lines

In any event, the get_frontend callback should return the value that is read from the demodulator registers, rather than the cached original value that which was requested to be tuned.

The stb0899 returns only the cached value IIRC. Maybe I will fix this soon, or maybe you can send a patch.

See the attached patch.

This is what I get after the patch:

Sat.    Pol.    Band    Freq (MHz) Set    Freq (MHz) Get    Delta (MHz)
S19,2E    H    L    10744    10748,474    4,474
S19,2E    H    L    10773    10777,944    4,944
S19,2E    H    L    10832    10836,953    4,953
S19,2E    H    L    10861    10868,774    7,774
S19,2E    H    L    10920    10924,312    4,312
S19,2E    H    L    11023    11026,827    3,827
S19,2E    H    L    11170    11175,423    5,423
S19,2E    H    L    11243    11248,452    5,452
S19,2E    H    L    11302    11307,371    5,371
S19,2E    H    L    11361    11366,427    5,427
S19,2E    H    L    11420    11425,473    5,473
S19,2E    H    L    11464    11468,876    4,876
S19,2E    H    L    11493    11498,421    5,421
S19,2E    H    L    11523    11529,080    6,080
S19,2E    H    L    11582    11586,942    4,942
S19,2E    H    L    11611    11618,785    7,785
S19,2E    H    L    11641    11645,951    4,951
S19,2E    H    L    11670    11675,450    5,450
S19,2E    H    H    11719    11724,970    5,970
S19,2E    H    H    11758    11763,975    5,975
S19,2E    H    H    11797    11802,978    5,978
S19,2E    H    H    11836    11841,972    5,972
S19,2E    H    H    11875    11880,951    5,951
Quoted 3 lines

I'll have to let VDR "travel" across the transponders several times to see whether I get similar results for the previously mentioned transponder on the stv0299 device.

Bye.

The patch seems to be working. Anyway, for it to be merged, you'll need to be sending it together with your SOB (Signed-off-by), and using the -p1 format e. g. something like:

--- a/drivers/media/dvb/frontends/stb0899_drv.c 2012-08-14 21:59:59.000000000 +0200
+++ b/drivers/media/dvb/frontends/stb0899_drv.c 2012-08-14 21:29:17.000000000 +0200

as otherwise developer's scripts won't get it right.

Thanks,
Mauro.

#6 lore raw

Hi,

Am 16.08.2012 00:10, schrieb Mauro Carvalho Chehab:

Quoted 8 lines

The patch seems to be working. Anyway, for it to be merged, you'll need to be sending it together with your SOB (Signed-off-by), and using the -p1 format e. g. something like:

drivers/media/dvb/frontends/stb0899_drv.c +0 -0

as otherwise developer's scripts won't get it right.

I hope I got it right this time ;-)

Bye.

Signature · 2 lines
Dipl.-Inform. (FH) Reinhard Nissl
mailto:[email protected]

stb0899: return internally tuned frequency via get_frontend.

drivers/media/dvb-frontends/stb0899_drv.c +1 -0
index 5d7f8a9..79e29de 100644
@@ -1563,6 +1563,7 @@ static int stb0899_get_frontend(struct dvb_frontend *fe)
 
 	dprintk(state->verbose, FE_DEBUG, 1, "Get params");
 	p->symbol_rate = internal->srate;
+	p->frequency = internal->freq;
 
 	return 0;
 }