[linux-dvb] How do I use FE_DISEQC_SEND_MASTER_CMD and FE_SET_FRONTEND correctly?

Reinhard Nissl rnissl at gmx.de
Sat Dec 10 01:41:08 CET 2005


when VDR switches to a different transponder the device driver is sent 
the above two ioctl()s with appropriate data.

Just in case the multiswitch get's a damaged DiSEqC message, it won't 
choose for example a different polarisation and VDR won't ever get the 
expected signal without tuning again.

I've patched VDR to repeat the DiSEqC message every 500 ms after 
FE_SET_FRONTEND until the device's tuner reports LOCKED. An oszilloscope 
shows me that the message get's sent on the cable about every 568 ms so 
the code seems to be correct.

But for any reason, the tuning doesn't succeed. I've further added a 
timeout of 3000 ms after which FE_SET_FRONTEND is issued again, which 
typically tunes successfully then.

So, it seems that I'm wrong with my assumption that the device keeps on 
tuning for at least 2000 ms (BTW: I've never seen the flag TIMEOUT while 
tuning) and that repeating the DiSEqC messages should lead to successful 

Is it therefore necessary to repeat FE_SET_FRONTEND too at an interval 
of 500 ms?

Would it be ok to shorten the time further (e. g. 300 ms) without 
messing up FE_SET_FRONTEND's design (i. e. the current tuning operation 
is aborted and a new one is triggered)?

Is it likely that retuning that fast turns out to be bad on DVB-T or 
DVB-C systems?

BTW: I'm using DVB-S (NOVA-S), dvb-kernel CVS snapshot of March 2005.

Dipl.-Inform. (FH) Reinhard Nissl
mailto:rnissl at gmx.de

More information about the linux-dvb mailing list