[linux-dvb] how to exactly tune a carrier

Jeremy Hall jhall at maoz.com
Fri Oct 5 15:18:08 CEST 2007

Sorry for the duplicate, I had some smtp problems and thought the first message was "gone" instead it was hiding.


>>> Jeremy Hall<jhall at maoz.com> 10/4/2007 9:50:41 AM >>>

I am trying to write an application that attempts to find the symbol rate of a QPSK carrier by making an intelligent guess as to the likely symbol rate, followed by a brute-force method of starting at the suggested value and incrementing or decrementing from that value by 1000, gradually making the distance from the starting point larger and larger in both directions.

the problem

I have set inversion to auto, FEC to auto, and the frequency to the correct value for the carrier.  I want the driver to scan the values I provide within a 1khz tolerence for all FEC choices and both spectral inversions. I don't know how long that takes but I'd like it for obvious reasons to go as quickly as possible.  Since I don't know how long this takes, I decided to sleep for a few seconds then read status to determine if FE_HAS_LOCK so I can stop.

To my horror, I discovered, by running dvbsnoop -s feinfo in another window, that not only were my symbol rates different than my suggested values, but the frequency was different as well.  In fact, I noticed that if you wait long enough, you can lock onto a neighbouring signal that isn't even the one you wanted, and the frequency reported is something in the middle but closer to what you want, yet clearly it is the other signal, for example, two DSNG carriers are located at 12116 and 12121 respectively, with a symbol rate of 3979.  At first I thought my LO was wrong, but try to lock the first one, wait about 8 seconds and then the second one magically locks even though I didn't want that one.

I think it's reasonable to say your frequency could be off as much as 1khz in either direction, or at least a module parameter should be enstantiated so you can tell the driver you were to cheap to buy a decent LNB.  So how do I get what I want? I think the driver probably could do what I want in under a second as long as te symbol rate is not super low like 1000.  I am using the stv0299 frontend.


linux-dvb mailing list
linux-dvb at linuxtv.org 

More information about the linux-dvb mailing list