[V4L-DVB] Add support for vendor specific DiSEqC switch
"MAXIMUM DiSEqC 4/1 switch"
Hans Petter Selasky
hselasky at c2i.net
Wed Mar 16 08:14:02 UTC 2011
On Tuesday 15 March 2011 23:19:02 handygewinnspiel at gmx.de wrote:
> Hi Hans Petter,
>
> thank you for the patch, but i do have severe problems with it..
>
Hi!
> First of all, i have to explain that i dont have any access to sat
> equipment at all - so i've to rely on understanding whats going on in even
> small patches or pieces of w_scan as good as i can. What i don't
> understand, i will not apply.
Probably the patches needs to be applied by hand.
> I cannot test anything sat related, i use terrestric and cable only.
> I was trying to translate your settings for vdr diseqc.conf into human
> readable things.. <snip>
> LNB.A 11700 V 9750 t F W45 v W15 W45 F W45 v W15 W45 t W45
> </snap>
The switch works like this that when the power is toggled, LNB.A is selected
by default.
> define command chain for 'LNB.A' && frequencies below 11700MHz (=lowband)
> polarization vertical as follows
>
> 1) '9750' use LNB LO 9750MHz // OK, translate lowband
> 10700MHz..11700MHz to 950MHz..1950MHz) 2) 't' 22kHz tone off //
> this will select lowband on a multiband LNB. correct. 3) 'F' lnb
> voltage off // why switching *off*, if we want to program the LNB?
> wrong. 4) 'W45' wait 45msec //
> 5) 'v' lnb voltage 13volts // vertival = 13V, correct.
> 6) 'W15' wait 15msec // hmm..
> 7) 'W45' wait 45msec // ? wait again? and 45msec? 15 should
> be enough by spec. 8) 'F' lnb voltage off // why again switching
> LNB *off*? 9) 'W45' wait 45msec // wait again
> 10) 'v' lnb voltage 13volts // vertival = 13V, correct. But that was
> set before..? I'm confused. You lost me here completely.. 11) 'W15'
> wait 15msec // hmm..
> 12) 'W45' wait 45msec // ? wait again?
These commands where just a textual dump from the w_scan patches. I did not
optimise anything. It is critical that the delay is in the range 45-50ms, else
the programming does not work.
> 13) 't' 22kHz tone off // if we hadnt switch off the LNB, we
> wouldnt have to set it again to low band. 14) 'W45' wait 45msec
>
> I cannot find any diseqc switch related command here; so that means
> something is intrinsic wrong on this line. As soon as a diseqc switch is
> inside your equipment, it *has* to be controlled *every time* you change
> satellite, low/high band or polarization. And it should be a 0x2X command
> if i read the diseqc spec.
That is the issue. The switch implements the diseqc signalling, but not the
protocol. I did a complete protocol scan, testing all commands, and it only
responded to 0x26 and 0x27.
> If i compare to w_scan's patch it does..
>
> 2) 22kHz tone off tone off
> 3) lnb voltage off
> 4) wait 45msec
> 5) lnb voltage 13volts
> 6) wait 15msec
> 7) wait 45msec // that doesnt make sense to me.
Right, this can be optimised.
> 8) lnb voltage off
> 9) wait 45msec
> 10) lnb voltage 13volts
> 11) wait 15msec
> 12) wait 45msec
> 13) 22kHz tone off
> 14) <missing> // the wait 45msec is missing compared
> to above.
>
> If i compare to the other switch positions, i can find two diseqc commands:
>
> MASTER_CMD_NO_RESPONSE, ADDR_ANY_LNB, 0x26, 0x00, 0x00, 0x00 // 0x26 ->
> Select Satellite position B (or position D) MASTER_CMD_NO_RESPONSE,
> ADDR_ANY_LNB, 0x27, 0x00, 0x00, 0x00 // 0x27 -> Select Switch Option B
> (e.g. positions C/D)
>
> But what i'm actually missing is switching back to 'Option A', once you
> switched to 'Option B'; in the same way i miss selecting position A/B:
>
> MASTER_CMD_NO_RESPONSE, ADDR_ANY_LNB, 0x22, 0x00, 0x00, 0x00 // 0x22 ->
> Select Satellite position A (or position C) MASTER_CMD_NO_RESPONSE,
> ADDR_ANY_LNB, 0x23, 0x00, 0x00, 0x00 // 0x23 -> Select Switch Option A
> (e.g. positions A/B)
The switch does not support these commands :-( Tested this pretty hard.
> For me it looks like, that you try to circumvent in a wrong way using the
> missing diseqc commands. If (only if..) i understand your coding
> correctly, your switch looks like a 2x2 matrix. The first one selecting
> A/B vs C/D, the second choosing the first or second of those preselected.
>
> >From a more general point of view..
>
> - function name 'setup_kjaerulff1_switch' << i dislike naming which is not
> self explaining. Naming should be consequently english. - a new command
> line switch. I tend to remove command line switches rather than adding new
> ones. Less is more. And even if a new is really necessary it should be '-D
> Nx', with x a new character and N = 0..3 - the patch doesnt include the
> new command line switch in the man page - function setup_switch should
> handle this new kind of switch, but setup_kjaerulff1_switch should not be
> called directly. - the '0x26' and '0x27' should use their already defined
> macros: CMD_SET_POS_B and CMD_SET_SOB. Using this macros already gives me
> hint, that you need CMD_SET_POS_A and CMD_SET_SOA also if you need the
> others.
Ok, should I generate a new patch for this? I'm not sure what class of switch
I've got. Do you recognize the command set used?
> at this point, i think i cannot integrate your current patch as it is.
> Too many open questions, no datasheet and i cannot figure out by myself.
Which sources must I generate a patch against?
> If you could find out and answer the open questions, i would look again at
> this topic.
>
> Thanks a lot for forwarding @ Juergen.
>
--HPS
More information about the freebsd-multimedia
mailing list