Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-03 Thread Zoilo Gomez

Hi Manu,

Any chance we can finish this issue soon?

Please let me know how I can help; without proper chip-set documentation 
it seems to me that I can only wait for you to fix it for me ... but I 
can test your patches of course.


Thank you and best regards,

Zoilo.

=

Zoilo Gomez wrote:

Manu Abraham wrote:

Zoilo Gomez wrote:
 

Manu Abraham wrote:
   

Zoilo Gomez wrote:
 
 

Manu Abraham wrote:
  
 
  
sounds like you don't have the tone burst working. Looking in 
there..

Can you please try the modified burst callback ? You may/may not
need to
play a bit with a bit of sleep after the break in each case.


Sorry Manu, but this is not about diseqc-burst either ...



There are 4 things

1) 13v/18v (LNB Polarization control) (vp1034_set_voltage)
2) 22k tone control (it has OFF/ON) (mb86a16_set_tone)
3) burst (A/B unmodulated/modulated) uses 22k modulation
(mb86a16_send_diseqc_burst)
4) diseqc functions (mb86a16_send_diseqc_msg)
  

Exactly.

  

Unless our mutual terminology is inconsistent, diseqc-burst is a
simple enhancement method of controlling an individual 2-state 
switch,

in addition to existing conventional control by 18/13V for pol
selection
and 22kHz for band selection (see:
http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf). 






What I need is DiSEqC 1.0 support, as specified in the above 
document,
where the entire control information (sat,pol,band) is being 
passed by

means of a digital message. No voltages or tones.


that one you are looking at send_diseqc_msg. You just managed to
confuse
me with the additional 22kmodulation in there
  

... sorry ...!

  

IIRC, send_msg had been working. need to see what's wrong. (Maybe
diseqc
bus is busy ?)
Can you add a dumb short sleep (~10 ms) before the for loop and 
try a

larger sleep within the for loop (~100 - 200mS) and see whether any
change in behaviour ?

  

Assuming that you mean the for-loop in send_diseqc_msg: makes no
difference.

Anyway, it would have surprised me if this had any effect, because 
the

loop seems to be merely filling a 4-byte hardware buffer with the
message to be sent, and I assume that only when writing 0x90 + msg
length into MB86A16_DCC1, followed by a writeof DISEN (DiSEqC 
enable?)
to MB86A16_DCCOUT, the hardware is actually being triggered to 
dispatch

the message.


The last part is almost correct except for a slight change. There is a
bug in there from my side, don't understand how it worked

DISEN = DiSEqC (Mode) enable
DISTA = DiSEqC Transaction Activate

 
 

I notice that all other signaling methods are running in parallel
(18/13V, tone bursts etc). Could it be that message dispatch for 
DiSEqC

is being set up correctly, but then accidentally disabled while in
progress, by one of the other functions? Settings are being poked
straight into the registers as constants, instead of reading back the
actual setting and modifying only the appropriate bit(s). Just a
thought.



modified send_msg a bit (didn't compile test yet)


Thank you for your help Manu.

In this form it does not seem to work yet.

Or perhaps one of the other functions (burst, set_tone), that sometimes
use the same registers, is overwriting one of the register settings?

   

static int mb86a16_send_diseqc_msg(struct dvb_frontend *fe,
   struct dvb_diseqc_master_cmd *cmd)
{
struct mb86a16_state *state = fe-demodulator_priv;
int i;
u8 regs = 0x18;

if (cmd-msg_len  6 || cmd-msg_len  3)
return -EINVAL;

// Enable DiSEqC Mode with 50% duty cycle
if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN) 
 0)

goto err;
// Select DiSEqC and Clock
if (mb86a16_write(state, MB86A16_TONEOUT1, 0x5b)  0)
goto err;
if (mb86a16_write(state, MB86A16_TONEOUT2, 0x04)  0)
goto err;
// Write to registers
for (i = 0; i  cmd-msg_len; i++) {
if (mb86a16_write(state, regs, cmd-msg[i])  0)
goto err;

regs++;
}
msleep_interruptible(10);
// Load length and transmit
if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA |
cmd-msg_len))


This OR with 0x80 (DISTA); in the previous version it was 0x90 ?

   

goto err;

return 0;

err:
dprintk(verbose, MB86A16_ERROR, 1, I2C transfer error);
return -EREMOTEIO;
}




May  1 23:42:15 localhost mb86a16_set_tone: SEC TONE OFF
May  1 23:42:15 localhost mb86a16_write: writing to
[0x08],Reg[0x20],Data[0x04]
May  1 23:42:15 localhost mb86a16_write: writing to
[0x08],Reg[0x16],Data[0x80]
May  1 23:42:15 localhost mb86a16_write: writing to
[0x08],Reg[0x1e],Data[0x00]




 

May  1 23:42:15 localhost vp1034_set_voltage (0): Polarization=[18v]
May  1 23:42:15 localhost mb86a16_write: writing to

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-03 Thread Manu Abraham
Zoilo Gomez wrote:
 Hi Manu,
 
 Any chance we can finish this issue soon?
 

What i don't understand is.. Michel has diseqc working. Quite a bit lost.

 Please let me know how I can help; without proper chip-set documentation
 it seems to me that I can only wait for you to fix it for me ... but I
 can test your patches of course.

The doc isn't great either. Just register addresses and bitfield names
and a one line description
with regards to the mantis, there is absolutely no documentation at all.


 
 Thank you and best regards,
 
 Zoilo.
 
 =
 
 Zoilo Gomez wrote:
 Manu Abraham wrote:
 Zoilo Gomez wrote:
  
 Manu Abraham wrote:
   
 Zoilo Gomez wrote:
  
 
 Manu Abraham wrote:
  
  
  
 sounds like you don't have the tone burst working. Looking in
 there..
 Can you please try the modified burst callback ? You may/may not
 need to
 play a bit with a bit of sleep after the break in each case.
 
 Sorry Manu, but this is not about diseqc-burst either ...

 
 There are 4 things

 1) 13v/18v (LNB Polarization control) (vp1034_set_voltage)
 2) 22k tone control (it has OFF/ON) (mb86a16_set_tone)
 3) burst (A/B unmodulated/modulated) uses 22k modulation
 (mb86a16_send_diseqc_burst)
 4) diseqc functions (mb86a16_send_diseqc_msg)
   
 Exactly.

  
 Unless our mutual terminology is inconsistent, diseqc-burst is a
 simple enhancement method of controlling an individual 2-state
 switch,
 in addition to existing conventional control by 18/13V for pol
 selection
 and 22kHz for band selection (see:
 http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf).





 What I need is DiSEqC 1.0 support, as specified in the above
 document,
 where the entire control information (sat,pol,band) is being
 passed by
 means of a digital message. No voltages or tones.
 
 that one you are looking at send_diseqc_msg. You just managed to
 confuse
 me with the additional 22kmodulation in there
   
 ... sorry ...!

  
 IIRC, send_msg had been working. need to see what's wrong. (Maybe
 diseqc
 bus is busy ?)
 Can you add a dumb short sleep (~10 ms) before the for loop and
 try a
 larger sleep within the for loop (~100 - 200mS) and see whether any
 change in behaviour ?

   
 Assuming that you mean the for-loop in send_diseqc_msg: makes no
 difference.

 Anyway, it would have surprised me if this had any effect, because
 the
 loop seems to be merely filling a 4-byte hardware buffer with the
 message to be sent, and I assume that only when writing 0x90 + msg
 length into MB86A16_DCC1, followed by a writeof DISEN (DiSEqC
 enable?)
 to MB86A16_DCCOUT, the hardware is actually being triggered to
 dispatch
 the message.
 
 The last part is almost correct except for a slight change. There is a
 bug in there from my side, don't understand how it worked

 DISEN = DiSEqC (Mode) enable
 DISTA = DiSEqC Transaction Activate

  
 
 I notice that all other signaling methods are running in parallel
 (18/13V, tone bursts etc). Could it be that message dispatch for
 DiSEqC
 is being set up correctly, but then accidentally disabled while in
 progress, by one of the other functions? Settings are being poked
 straight into the registers as constants, instead of reading back the
 actual setting and modifying only the appropriate bit(s). Just a
 thought.

 
 modified send_msg a bit (didn't compile test yet)
 
 Thank you for your help Manu.

 In this form it does not seem to work yet.

 Or perhaps one of the other functions (burst, set_tone), that sometimes
 use the same registers, is overwriting one of the register settings?

   
 static int mb86a16_send_diseqc_msg(struct dvb_frontend *fe,
struct dvb_diseqc_master_cmd *cmd)
 {
 struct mb86a16_state *state = fe-demodulator_priv;
 int i;
 u8 regs = 0x18;

 if (cmd-msg_len  6 || cmd-msg_len  3)
 return -EINVAL;

 // Enable DiSEqC Mode with 50% duty cycle
 if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN)
  0)
 goto err;
 // Select DiSEqC and Clock
 if (mb86a16_write(state, MB86A16_TONEOUT1, 0x5b)  0)
 goto err;
 if (mb86a16_write(state, MB86A16_TONEOUT2, 0x04)  0)
 goto err;
 // Write to registers
 for (i = 0; i  cmd-msg_len; i++) {
 if (mb86a16_write(state, regs, cmd-msg[i])  0)
 goto err;

 regs++;
 }
 msleep_interruptible(10);
 // Load length and transmit
 if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA |
 cmd-msg_len))
 
 This OR with 0x80 (DISTA); in the previous version it was 0x90 ?

   
 goto err;

 return 0;

 err:
 dprintk(verbose, MB86A16_ERROR, 1, I2C transfer error);
 return -EREMOTEIO;
 }


 
 May  1 23:42:15 localhost mb86a16_set_tone: SEC TONE OFF
 May  1 23:42:15 localhost 

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-03 Thread Michel Verbraak

Manu Abraham schreef:

Zoilo Gomez wrote:
  

Hi Manu,

Any chance we can finish this issue soon?




What i don't understand is.. Michel has diseqc working. Quite a bit lost.

  

Please let me know how I can help; without proper chip-set documentation
it seems to me that I can only wait for you to fix it for me ... but I
can test your patches of course.



The doc isn't great either. Just register addresses and bitfield names
and a one line description
with regards to the mantis, there is absolutely no documentation at all.


  

Zoilo,

Which program are you using and does the setting of your switch?
I only have a rotor and not a switch,yet ;) , so I'm not able to test 
this part either. I will ask a friend if I can borrow one of his. This 
can take some time but will let you know.


Regards

Michel

Thank you and best regards,

Zoilo.

=

Zoilo Gomez wrote:

rest removed because of size This my 3rd try but had the to address 
wrong the first two times.



___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-03 Thread Manu Abraham
Zoilo Gomez wrote:
 I am also at loss now 
 
 Michel: can you confirm that DiSEqC is working for you using the Mantis
 driver? Are you 100% that it is DiSEqC that is doing the work, and not
 some conventional compatibility function like 18/13V+22kHz etc (which
 initially fooled me to believe that DiSEqC was working)?
 
 Manu: a couple of emails ago, you wrote that you were puzzled how the
 code could ever have worked, and came up with some changes ... ? What I
 made from this is that you had found some quirks in the register
 settings (but perhaps i completely misunderstood you).
 

Yep. I was really confused 22k modulation got me confused a bit first,
on top of that i thought something was wrong too, but not very sure..
But still, i am a bit confused even now

 Looks like I must go and borrow an oscilloscope somehow, so I can
 measure what is going on at the coax level ...
 

If you can do that would be great

___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-03 Thread Zoilo Gomez

Hi Michel,

Michel Verbraak wrote:

Zoilo Gomez schreef:

I am also at loss now 

Michel: can you confirm that DiSEqC is working for you using the 
Mantis driver? Are you 100% that it is DiSEqC that is doing the work, 
and not some conventional compatibility function like 18/13V+22kHz 
etc (which initially fooled me to believe that DiSEqC was working)?


Manu: a couple of emails ago, you wrote that you were puzzled how the 
code could ever have worked, and came up with some changes ... ? What 
I made from this is that you had found some quirks in the register 
settings (but perhaps i completely misunderstood you).


Looks like I must go and borrow an oscilloscope somehow, so I can 
measure what is going on at the coax level ...



The driver does send diseqc commands. Because I control my rotor with 
DiseqC 1.2 gotox commands. Have a look at my gotox program. I posted a 
bit earlier about it. It uses the dvb api which is in dvb-apps at 
linuxtv.org


So I understand that what you are saying is that your driver is sending 
DiSEqC commands, *but you are not using them, so you cannot sure that 
they work*, correct?


Instead you are controlling your rotor with a separate program, that is 
not using the Mantis driver, correct?


Z.


___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-03 Thread Zoilo Gomez

I am also at loss now 

Michel: can you confirm that DiSEqC is working for you using the Mantis 
driver? Are you 100% that it is DiSEqC that is doing the work, and not 
some conventional compatibility function like 18/13V+22kHz etc (which 
initially fooled me to believe that DiSEqC was working)?


Manu: a couple of emails ago, you wrote that you were puzzled how the 
code could ever have worked, and came up with some changes ... ? What I 
made from this is that you had found some quirks in the register 
settings (but perhaps i completely misunderstood you).


Looks like I must go and borrow an oscilloscope somehow, so I can 
measure what is going on at the coax level ...




Manu Abraham wrote:

Zoilo Gomez wrote:
  

Hi Manu,

Any chance we can finish this issue soon?




What i don't understand is.. Michel has diseqc working. Quite a bit lost.

  

Please let me know how I can help; without proper chip-set documentation
it seems to me that I can only wait for you to fix it for me ... but I
can test your patches of course.



The doc isn't great either. Just register addresses and bitfield names
and a one line description
with regards to the mantis, there is absolutely no documentation at all.


  

Thank you and best regards,

Zoilo.

=

Zoilo Gomez wrote:


Manu Abraham wrote:
  

Zoilo Gomez wrote:
 


Manu Abraham wrote:
  
  

Zoilo Gomez wrote:
 



Manu Abraham wrote:
 
  
 
 


sounds like you don't have the tone burst working. Looking in
there..
Can you please try the modified burst callback ? You may/may not
need to
play a bit with a bit of sleep after the break in each case.



Sorry Manu, but this is not about diseqc-burst either ...


  

There are 4 things

1) 13v/18v (LNB Polarization control) (vp1034_set_voltage)
2) 22k tone control (it has OFF/ON) (mb86a16_set_tone)
3) burst (A/B unmodulated/modulated) uses 22k modulation
(mb86a16_send_diseqc_burst)
4) diseqc functions (mb86a16_send_diseqc_msg)
  


Exactly.

 
  

Unless our mutual terminology is inconsistent, diseqc-burst is a
simple enhancement method of controlling an individual 2-state
switch,
in addition to existing conventional control by 18/13V for pol
selection
and 22kHz for band selection (see:
http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf).





What I need is DiSEqC 1.0 support, as specified in the above
document,
where the entire control information (sat,pol,band) is being
passed by
means of a digital message. No voltages or tones.

  

that one you are looking at send_diseqc_msg. You just managed to
confuse
me with the additional 22kmodulation in there
  


... sorry ...!

 
  

IIRC, send_msg had been working. need to see what's wrong. (Maybe
diseqc
bus is busy ?)
Can you add a dumb short sleep (~10 ms) before the for loop and
try a
larger sleep within the for loop (~100 - 200mS) and see whether any
change in behaviour ?

  


Assuming that you mean the for-loop in send_diseqc_msg: makes no
difference.

Anyway, it would have surprised me if this had any effect, because
the
loop seems to be merely filling a 4-byte hardware buffer with the
message to be sent, and I assume that only when writing 0x90 + msg
length into MB86A16_DCC1, followed by a writeof DISEN (DiSEqC
enable?)
to MB86A16_DCCOUT, the hardware is actually being triggered to
dispatch
the message.

  

The last part is almost correct except for a slight change. There is a
bug in there from my side, don't understand how it worked

DISEN = DiSEqC (Mode) enable
DISTA = DiSEqC Transaction Activate

 



I notice that all other signaling methods are running in parallel
(18/13V, tone bursts etc). Could it be that message dispatch for
DiSEqC
is being set up correctly, but then accidentally disabled while in
progress, by one of the other functions? Settings are being poked
straight into the registers as constants, instead of reading back the
actual setting and modifying only the appropriate bit(s). Just a
thought.


  

modified send_msg a bit (didn't compile test yet)



Thank you for your help Manu.

In this form it does not seem to work yet.

Or perhaps one of the other functions (burst, set_tone), that sometimes
use the same registers, is overwriting one of the register settings?

  
  

static int mb86a16_send_diseqc_msg(struct dvb_frontend *fe,
   struct dvb_diseqc_master_cmd *cmd)
{
struct mb86a16_state *state = fe-demodulator_priv;
int i;
u8 regs = 0x18;

if (cmd-msg_len  6 || cmd-msg_len  3)
return -EINVAL;

// Enable DiSEqC Mode with 

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-03 Thread Zoilo Gomez

Michel Verbraak wrote:

Zoilo,

Which program are you using and does the setting of your switch?


dvbtune (slightly modified because DiSEqC implementation of dvbtune-0.5 
contains a bug, see my emails about this a couple of days ago) and also 
szap.


With KNC1 DVB-S (stv2099 driver) these utils work perfectly, but VP1034 
(mb86a16 driver) does *not* work.


Z.


___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-03 Thread Michel Verbraak

Zoilo Gomez schreef:

Hi Michel,

Michel Verbraak wrote:

Zoilo Gomez schreef:

I am also at loss now 

Michel: can you confirm that DiSEqC is working for you using the 
Mantis driver? Are you 100% that it is DiSEqC that is doing the 
work, and not some conventional compatibility function like 
18/13V+22kHz etc (which initially fooled me to believe that DiSEqC 
was working)?


Manu: a couple of emails ago, you wrote that you were puzzled how 
the code could ever have worked, and came up with some changes ... ? 
What I made from this is that you had found some quirks in the 
register settings (but perhaps i completely misunderstood you).


Looks like I must go and borrow an oscilloscope somehow, so I can 
measure what is going on at the coax level ...



The driver does send diseqc commands. Because I control my rotor with 
DiseqC 1.2 gotox commands. Have a look at my gotox program. I posted 
a bit earlier about it. It uses the dvb api which is in dvb-apps at 
linuxtv.org


So I understand that what you are saying is that your driver is 
sending DiSEqC commands, *but you are not using them, so you cannot 
sure that they work*, correct?


Instead you are controlling your rotor with a separate program, that 
is not using the Mantis driver, correct?


No, my gotox program is using an API and the API is using the Mantis 
driver to send out the DiseqC message. I also have another program which 
does not use the API but talks directly to the Mantis driver. It talks 
to the /dev/dvb/adapter0/frontend0 device with ioctl calls. The 
following is an example:


int TDVBSDevice::SendRotorMoveCommand(float angle)
{
   int ret = 0;
   struct dvb_diseqc_master_cmd diseqc_message;
   int integer = (int) angle;
   uint8_t data[] = { *0xE0, 0x31, 0x6e, 0x00, 0x00*};

   // transform the fraction into the correct representation
   int fraction = (int) (((angle - integer) * 16.0) + 0.9)  0x0f;
   switch(fraction) {
   case 1:
   case 4:
   case 7:
   case 9:
   case 12:
   case 15:
   fraction--;
   break;
   }

   // generate the command
   if (integer  0.0) {
   data[3] = 0xD0;  // West is a negative angle value
   } else if (integer = 0.0) {
   data[3] = 0xE0;  // East is a positive angle value
   }
   integer = abs(integer);
   data[3] |= ((integer / 16)  0x0f);
   integer = integer % 16;
   data[4] |= ((integer  0x0f)  4) | fraction;

   diseqc_message.msg_len = 5;
   memcpy(diseqc_message.msg, data, 5);

   ret = *ioctl(vfrontendfd, FE_DISEQC_SEND_MASTER_CMD, diseqc_message);*
   if (ret == -1)
   syslog(LOG_ERR, rotor_goto_bearing: IOCTL failed);
   else
 ret = 0;

   return ret;
}

I really use the Mantis driver and as you can see I specify the complete 
DiseqC command, see uint8_t data[] = { *0xE0, 0x31, 0x6e, 0x00, 
0x00*};,  to send not the driver. The example above is the same as used 
by the API internally.


Michel

Z.


___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-03 Thread Michel Verbraak

Zoilo Gomez schreef:

Michel Verbraak wrote:

Zoilo,

Which program are you using and does the setting of your switch?


dvbtune (slightly modified because DiSEqC implementation of 
dvbtune-0.5 contains a bug, see my emails about this a couple of days 
ago) and also szap.


With KNC1 DVB-S (stv2099 driver) these utils work perfectly, but 
VP1034 (mb86a16 driver) does *not* work.


Z.

Will have a look into this.


___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Michel Verbraak

Zoilo Gomez schreef:

Manu Abraham wrote:

Zoilo Gomez wrote:
 

Manu Abraham wrote:
   

Zoilo Gomez wrote:
 
 

Manu Abraham wrote:
  

Michel Verbraak wrote:
 
  

Manu, list,


SNIP
Freq+symrate is correct; I tried several freqs / pols / symbol rates 
on sat=2.


I am quite sure that the problem is simple and diseqc related, for the 
several reasons:


= my normal sat receiver is working fine on all 16 sat feeds (4*4)

= KNC1 DVB-C is also working fine on all sats / pols / bands; the 
fact that it is capable to select different sats proves that its 
diseqc commands are working.


= however VP1034 is working only on first satellite (out of 4). This 
seems to be caused by 18/13V+22kHz signaling (not diseqc), which is 
applied simultaneously with the diseqc command. However, switching to 
a different sat is impossible, because diseqc is not working. In fact, 
if I use the very same freq+pol+symrate, but only change the sat 
number (f.e. sat=2 of sat=3), I get the exact same transport stream 
from sat=1. So no sat switching occurs, hence diseqc is apparently not 
working, and 18/13V+22kHz must be responsible for pol+band selection.


Can't see the bug from a quick glance, will take a look at it, these 
days.
  


Please let me know where I can help.

Z.

Zoilo and Manu,

DiseqC is working for me with my own programs and the patch i made for 
libdvbsec.

I only use the GotoX function. Not preprogrammed positions.
When I have time again I will have a look into this.

When I tried the latest version of kaffeine, it now supports rotors, it 
was not able to rotate my rotor with kaffeine. I did not yet spend time 
to look into this because my own software still works.


I can send you a small c-program which I made to rotate the rotor, by 
angle, I can send it or make it available trough a website. Please let 
me know. It uses my patched libdvbsec. As far as I know my patch is not 
implemented yet (do not know why).


Regards,

Michel.


___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Manu Abraham
Michel Verbraak wrote:
 Zoilo Gomez schreef:
 Manu Abraham wrote:
 Zoilo Gomez wrote:
  
 Manu Abraham wrote:
   
 Zoilo Gomez wrote:
  
 
 Manu Abraham wrote:
  
 Michel Verbraak wrote:
  
  
 Manu, list,

 SNIP
 Freq+symrate is correct; I tried several freqs / pols / symbol rates
 on sat=2.

 I am quite sure that the problem is simple and diseqc related, for the
 several reasons:

 = my normal sat receiver is working fine on all 16 sat feeds (4*4)

 = KNC1 DVB-C is also working fine on all sats / pols / bands; the
 fact that it is capable to select different sats proves that its
 diseqc commands are working.

 = however VP1034 is working only on first satellite (out of 4). This
 seems to be caused by 18/13V+22kHz signaling (not diseqc), which is
 applied simultaneously with the diseqc command. However, switching to
 a different sat is impossible, because diseqc is not working. In fact,
 if I use the very same freq+pol+symrate, but only change the sat
 number (f.e. sat=2 of sat=3), I get the exact same transport stream
 from sat=1. So no sat switching occurs, hence diseqc is apparently not
 working, and 18/13V+22kHz must be responsible for pol+band selection.

 Can't see the bug from a quick glance, will take a look at it, these
 days.
   

 Please let me know where I can help.

 Z.
 Zoilo and Manu,
 
 DiseqC is working for me with my own programs and the patch i made for
 libdvbsec.
 I only use the GotoX function. Not preprogrammed positions.
 When I have time again I will have a look into this.
 

Michel, Thanks.
Ok, so DiSEqC with regards to the MB86A16 works

 When I tried the latest version of kaffeine, it now supports rotors, it
 was not able to rotate my rotor with kaffeine. I did not yet spend time
 to look into this because my own software still works.
 
 I can send you a small c-program which I made to rotate the rotor, by
 angle, I can send it or make it available trough a website. Please let
 me know. It uses my patched libdvbsec. As far as I know my patch is not
 implemented yet (do not know why).

You did send your patch ?


___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Manu Abraham
Zoilo Gomez wrote:
 Manu Abraham wrote:
 Zoilo Gomez wrote:
  
 Manu Abraham wrote:

 Zoilo Gomez wrote:
  
  
 Manu Abraham wrote:
   
 Michel Verbraak wrote:
  
   
 Manu, list,

 I was testing DiseqC to control my rotor (Palm H-H 2100A) and
 because i
 could not get a scan done I finally pulled my rotor from my roof
 top and
 placed it next to the pc.

 I found the following results:

 - When I boot my pc and modprobe the mantis module the card powers
 on. I
 see a green light lighting up on my rotor.
 - When I tried the goto position 0 diseqc command I saw my light
 change
 from green to red to green. This normal when the command string is
 send
 to the rotor ( I do have another card which show the same
 effect). But
 the rotor does not change position.
 - When I tried the goto X diseqc command saw my light change from
 green
 to red to green.  But the rotor does not change position.

 The only difference I could see is that the change in colour is
 faster
 for the VP-1034 card than my other card a VP-1020a (which is
 working as
 it should).

 
 I think probably the MB86A16 driver could use some delays in between
 for
 communicating with SEC devices.
 SEC devices are not taht fast in response and hence could possibly
 be an
 answer for the problem.
   
 Was this ever resolved?

 
 I think so, I think Michel got his positioner working a while back.

  
  
 Today I tried to get diseqc running with my VP-1034, to control my
 Spaun
 switch, but no success.

 With a KNC1 DVB-S card diseqc is working fine, switching correctly
 between different feeds/sats etc. So this seems to point in the
 direction of a problem with the diseqc implementation in the Mantis
 driver ...

 I tried to introduce some msleep_interruptible(100) calls, in
 particular
 before and after the 4-byte diseqc command is being sent, but no
 positive results.
 
 Do you get any I2C transaction errors ?
 
 No.


 The diseqc message itself is OK; I verified the message content as
 it is
 being written into the registers 0x18-0x1b.

 
 Can you paste the logs ?
 
 Here you go; I am trying to tune to 10832 H 22000 on the second
 satellite out of 4, so F6 seems to be the correct diseqc byte.



 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x20],Data[0x04]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x80]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x00]
 May  1 02:12:26 localhost vp1034_set_voltage (0): Polarization=[18v]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x80]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x00]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x20],Data[0x04]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x18],Data[0xe0]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x19],Data[0x10]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1a],Data[0x38]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1b],Data[0xf6]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x94]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x01]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x98]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x01]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x20],Data[0x04]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x80]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x00]
 May  1 02:12:27 localhost mb86a16_set_fe: freq=1082 Mhz, symbrt=22000
 Ksps
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x32],Data[0x02]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x06],Data[0xdf]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x0a],Data[0x3d]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x2b],Data[0x00]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x2c],Data[0x00]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x58],Data[0x00]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x59],Data[0x00]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x08],Data[0x16]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x2f],Data[0x21]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x39],Data[0x38]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x3d],Data[0x00]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x3e],Data[0x1c]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x3f],Data[0x20]
 May  1 02:12:27 localhost mb86a16_write: writing to
 

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Zoilo Gomez

Hi Manu,

Manu Abraham wrote:

Zoilo Gomez wrote:
  

Manu Abraham wrote:


Zoilo Gomez wrote:
 
  

Manu Abraham wrote:
   


Zoilo Gomez wrote:
 
 
  

Manu Abraham wrote:
  


Michel Verbraak wrote:
 
  
  

Manu, list,

I was testing DiseqC to control my rotor (Palm H-H 2100A) and
because i
could not get a scan done I finally pulled my rotor from my roof
top and
placed it next to the pc.

I found the following results:

- When I boot my pc and modprobe the mantis module the card powers
on. I
see a green light lighting up on my rotor.
- When I tried the goto position 0 diseqc command I saw my light
change
from green to red to green. This normal when the command string is
send
to the rotor ( I do have another card which show the same
effect). But
the rotor does not change position.
- When I tried the goto X diseqc command saw my light change from
green
to red to green.  But the rotor does not change position.

The only difference I could see is that the change in colour is
faster
for the VP-1034 card than my other card a VP-1020a (which is
working as
it should).




I think probably the MB86A16 driver could use some delays in between
for
communicating with SEC devices.
SEC devices are not taht fast in response and hence could possibly
be an
answer for the problem.
  
  

Was this ever resolved?




I think so, I think Michel got his positioner working a while back.

 
 
  

Today I tried to get diseqc running with my VP-1034, to control my
Spaun
switch, but no success.

With a KNC1 DVB-S card diseqc is working fine, switching correctly
between different feeds/sats etc. So this seems to point in the
direction of a problem with the diseqc implementation in the Mantis
driver ...

I tried to introduce some msleep_interruptible(100) calls, in
particular
before and after the 4-byte diseqc command is being sent, but no
positive results.



Do you get any I2C transaction errors ?

  

No.

   


The diseqc message itself is OK; I verified the message content as
it is
being written into the registers 0x18-0x1b.




Can you paste the logs ?

  

Here you go; I am trying to tune to 10832 H 22000 on the second
satellite out of 4, so F6 seems to be the correct diseqc byte.



May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x20],Data[0x04]



(... log file cut ...)


May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x36],Data[0x06]
May  1 02:12:27 localhost mb86a16_set_fe: ! No signal !, try
again...



If the frequency/symbol rate is correct, this does look like a bug (of
course this is not relevant to diseqc switching, but can also result
from switching positions)
  
  

Freq+symrate is correct; I tried several freqs / pols / symbol rates on
sat=2.

I am quite sure that the problem is simple and diseqc related, for the
several reasons:

= my normal sat receiver is working fine on all 16 sat feeds (4*4)

= KNC1 DVB-C is also working fine on all sats / pols / bands; the fact
that it is capable to select different sats proves that its diseqc
commands are working.

= however VP1034 is working only on first satellite (out of 4). This
seems to be caused by 18/13V+22kHz signaling (not diseqc),




So in fact DiSEqC is not failing for you, but 22k tone for SEC_A/B
  


I think that you are referring to the use of a 22 kHz tone to operate a 
switch to select between 2 satellite inputs (22 kHz ON/OFF)? I am not 
using 22k tone, not for SEC_A/B, and also not for band selection.


I am using (and in fact must use) DiSEqC 1.0 for my switch to operate 
properly (OK, DiSEqC uses 22 kHz pulse width modulation, but that is 
different).


Perhaps I haven't explained my setup very well.

I have a dish with 4 Quattro LNBs, ie. 16 cables. I use a Spaun 17089NF 
switch, with 16 inputs and 8 outputs. The switch is controlled by DiSEqC 
1.0, and allows to select from 4 sats, 2 pols and 2 bands, i.e. 16 
possible combinations = 16 inputs. Inputs are aligned as follows:

1: sat=1 band=low pol=V
2: sat=1 band=low pol=H
3: sat=1 band=high pol=V
4: sat=1 band=high pol=H
5: sat=2 band=low pol=V
6: sat=2 band=low pol=H
...
16: sat=4 band=high pol=H

In order to select eg. sat=2/band=low/pol=H (i.e 10832H/22000 on second 
satellite) the VP1034 should send the following DiSEqC string: e0 10 38 
f6, which will select input#6 from the switch as the source (see 
http://www.eutelsat.com/satellites/pdf/Diseqc/associated%20docs/applic_info_turner-receiver.pdf). 
I have verified that this the VP1034 is in fact sending (or trying to 
send) the correct string (see log file in previous email).


As mentioned: all of this works fine with KNC1 DVB-S. Also working 
perfect with any normal sat receiver.


But with VP1034 DVB-S it does 

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Zoilo Gomez

Manu Abraham wrote:

Freq+symrate is correct; I tried several freqs / pols / symbol rates on
sat=2.

I am quite sure that the problem is simple and diseqc related, for the
several reasons:

= my normal sat receiver is working fine on all 16 sat feeds (4*4)

= KNC1 DVB-C is also working fine on all sats / pols / bands; the fact
that it is capable to select different sats proves that its diseqc
commands are working.

= however VP1034 is working only on first satellite (out of 4). This
seems to be caused by 18/13V+22kHz signaling (not diseqc),



So in fact DiSEqC is not failing for you, but 22k tone for SEC_A/B
  
  

I think that you are referring to the use of a 22 kHz tone to operate a
switch to select between 2 satellite inputs (22 kHz ON/OFF)? I am not
using 22k tone, not for SEC_A/B, and also not for band selection.

I am using (and in fact must use) DiSEqC 1.0 for my switch to operate
properly (OK, DiSEqC uses 22 kHz pulse width modulation, but that is
different).

Perhaps I haven't explained my setup very well.

I have a dish with 4 Quattro LNBs, ie. 16 cables. I use a Spaun 17089NF
switch, with 16 inputs and 8 outputs. The switch is controlled by DiSEqC
1.0, and allows to select from 4 sats, 2 pols and 2 bands, i.e. 16
possible combinations = 16 inputs. Inputs are aligned as follows:
1: sat=1 band=low pol=V
2: sat=1 band=low pol=H
3: sat=1 band=high pol=V
4: sat=1 band=high pol=H
5: sat=2 band=low pol=V
6: sat=2 band=low pol=H
...
16: sat=4 band=high pol=H

In order to select eg. sat=2/band=low/pol=H (i.e 10832H/22000 on second
satellite) the VP1034 should send the following DiSEqC string: e0 10 38
f6, which will select input#6 from the switch as the source (see
http://www.eutelsat.com/satellites/pdf/Diseqc/associated%20docs/applic_info_turner-receiver.pdf).
I have verified that this the VP1034 is in fact sending (or trying to
send) the correct string (see log file in previous email).

As mentioned: all of this works fine with KNC1 DVB-S. Also working
perfect with any normal sat receiver.

But with VP1034 DVB-S it does not work; although the driver is logging
the correct DiSEqC string. But in fact it switches to input#2, which has
same pol and band, but is on sat=1. So I wondered how this was possible
if DiSEqC wasn't working at all ... then I found out the reason: the
VP1034 is sending both the appropriate DiSEqC command, and using the
conventional 18/13V+22kHz signaling at the same time. So although DiSEqC
is not working, my switch responds to 18V to select Horizontal
polarization, and the absence of 22 kHz tone to select the lower band.
Selection of the satellite however fails then of course, and apparently
defaults to sat=1. So I end up being connected to input#2 instead of
input#6.

To further verify my assumptions, I connected the VP1034 directly to
input#6 feed (sat=2,low,H) of my Spaun switch, and it works immediately.
This points to a selection problem, and shows that the freq+symrate etc
is correct.

So it seems to me that either DiSEqC functionality is not switched on



sounds like you don't have the tone burst working. Looking in there..
Can you please try the modified burst callback ? You may/may not need to
play a bit with a bit of sleep after the break in each case.
  


Sorry Manu, but this is not about diseqc-burst either ...

Unless our mutual terminology is inconsistent, diseqc-burst is a 
simple enhancement method of controlling an individual 2-state switch, 
in addition to existing conventional control by 18/13V for pol selection 
and 22kHz for band selection (see: 
http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf).


What I need is DiSEqC 1.0 support, as specified in the above document, 
where the entire control information (sat,pol,band) is being passed by 
means of a digital message. No voltages or tones. The modulation method 
happens to be PWM / 22 kHz, but that is different from 22 kHz tones or 
22 kHz bursts.


So in my opinion, it is the 22 kHz PWM that is not working, for whatever 
reason. Either there is no DiSEqC output at all, because it is somehow 
disabled, or there is a timing problem.


Do you happen to have an oscilloscope? It should be easy to see if a 
proper 22 kHz enveloped pulse train is actually being generated, as 
defined in the bus_spec.pdf document.


Z.



static int mb86a16_send_diseqc_burst(struct dvb_frontend *fe,
fe_sec_mini_cmd_t burst)
{
struct mb86a16_state *state = fe-demodulator_priv;

switch (burst) {
case SEC_MINI_A:
if (mb86a16_write(state, MB86A16_TONEOUT1, 0x5b)  0)
goto err;
if (mb86a16_write(state, MB86A16_TONEOUT2, 0x00)  0)
goto err;
if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA |
   MB86A16_DCC1_TBEN  |
   MB86A16_DCC1_TBO)  0)

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Manu Abraham


 sounds like you don't have the tone burst working. Looking in there..
 Can you please try the modified burst callback ? You may/may not need to
 play a bit with a bit of sleep after the break in each case.
   
 
 Sorry Manu, but this is not about diseqc-burst either ...
 

There are 4 things

1) 13v/18v (LNB Polarization control) (vp1034_set_voltage)
2) 22k tone control (it has OFF/ON) (mb86a16_set_tone)
3) burst (A/B unmodulated/modulated) uses 22k modulation
(mb86a16_send_diseqc_burst)
4) diseqc functions (mb86a16_send_diseqc_msg)

 Unless our mutual terminology is inconsistent, diseqc-burst is a
 simple enhancement method of controlling an individual 2-state switch,
 in addition to existing conventional control by 18/13V for pol selection
 and 22kHz for band selection (see:
 http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf).
 
 
 What I need is DiSEqC 1.0 support, as specified in the above document,
 where the entire control information (sat,pol,band) is being passed by
 means of a digital message. No voltages or tones.

that one you are looking at send_diseqc_msg. You just managed to confuse
me with the additional 22kmodulation in there

IIRC, send_msg had been working. need to see what's wrong. (Maybe diseqc
bus is busy ?)
Can you add a dumb short sleep (~10 ms) before the for loop and try a
larger sleep within the for loop (~100 - 200mS) and see whether any
change in behaviour ?

___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Zoilo Gomez

Manu Abraham wrote:
  

sounds like you don't have the tone burst working. Looking in there..
Can you please try the modified burst callback ? You may/may not need to
play a bit with a bit of sleep after the break in each case.
  
  

Sorry Manu, but this is not about diseqc-burst either ...




There are 4 things

1) 13v/18v (LNB Polarization control) (vp1034_set_voltage)
2) 22k tone control (it has OFF/ON) (mb86a16_set_tone)
3) burst (A/B unmodulated/modulated) uses 22k modulation
(mb86a16_send_diseqc_burst)
4) diseqc functions (mb86a16_send_diseqc_msg)
  


Exactly.


Unless our mutual terminology is inconsistent, diseqc-burst is a
simple enhancement method of controlling an individual 2-state switch,
in addition to existing conventional control by 18/13V for pol selection
and 22kHz for band selection (see:
http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf).


What I need is DiSEqC 1.0 support, as specified in the above document,
where the entire control information (sat,pol,band) is being passed by
means of a digital message. No voltages or tones.



that one you are looking at send_diseqc_msg. You just managed to confuse
me with the additional 22kmodulation in there
  


... sorry ...!


IIRC, send_msg had been working. need to see what's wrong. (Maybe diseqc
bus is busy ?)
Can you add a dumb short sleep (~10 ms) before the for loop and try a
larger sleep within the for loop (~100 - 200mS) and see whether any
change in behaviour ?

  


Assuming that you mean the for-loop in send_diseqc_msg: makes no difference.

Anyway, it would have surprised me if this had any effect, because the 
loop seems to be merely filling a 4-byte hardware buffer with the 
message to be sent, and I assume that only when writing 0x90 + msg 
length into MB86A16_DCC1, followed by a writeof DISEN (DiSEqC enable?) 
to MB86A16_DCCOUT, the hardware is actually being triggered to dispatch 
the message.


I notice that all other signaling methods are running in parallel 
(18/13V, tone bursts etc). Could it be that message dispatch for DiSEqC 
is being set up correctly, but then accidentally disabled while in 
progress, by one of the other functions? Settings are being poked 
straight into the registers as constants, instead of reading back the 
actual setting and modifying only the appropriate bit(s). Just a thought.


Without an oscilloscope and a datasheet this seems tough to debug, at 
least for me. At this point I cannot even see if the software is at 
least trying to dispatch a DiSEqC message. Is there any way I can sign 
an NDA as well?


Z.


___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Manu Abraham
Zoilo Gomez wrote:
 Manu Abraham wrote:
  
 sounds like you don't have the tone burst working. Looking in there..
 Can you please try the modified burst callback ? You may/may not
 need to
 play a bit with a bit of sleep after the break in each case.
 
 Sorry Manu, but this is not about diseqc-burst either ...

 

 There are 4 things

 1) 13v/18v (LNB Polarization control) (vp1034_set_voltage)
 2) 22k tone control (it has OFF/ON) (mb86a16_set_tone)
 3) burst (A/B unmodulated/modulated) uses 22k modulation
 (mb86a16_send_diseqc_burst)
 4) diseqc functions (mb86a16_send_diseqc_msg)
   
 
 Exactly.
 
 Unless our mutual terminology is inconsistent, diseqc-burst is a
 simple enhancement method of controlling an individual 2-state switch,
 in addition to existing conventional control by 18/13V for pol selection
 and 22kHz for band selection (see:
 http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf).



 What I need is DiSEqC 1.0 support, as specified in the above document,
 where the entire control information (sat,pol,band) is being passed by
 means of a digital message. No voltages or tones.
 

 that one you are looking at send_diseqc_msg. You just managed to confuse
 me with the additional 22kmodulation in there
   
 
 ... sorry ...!
 
 IIRC, send_msg had been working. need to see what's wrong. (Maybe diseqc
 bus is busy ?)
 Can you add a dumb short sleep (~10 ms) before the for loop and try a
 larger sleep within the for loop (~100 - 200mS) and see whether any
 change in behaviour ?

   
 
 Assuming that you mean the for-loop in send_diseqc_msg: makes no
 difference.
 
 Anyway, it would have surprised me if this had any effect, because the
 loop seems to be merely filling a 4-byte hardware buffer with the
 message to be sent, and I assume that only when writing 0x90 + msg
 length into MB86A16_DCC1, followed by a writeof DISEN (DiSEqC enable?)
 to MB86A16_DCCOUT, the hardware is actually being triggered to dispatch
 the message.

The last part is almost correct except for a slight change. There is a
bug in there from my side, don't understand how it worked

DISEN = DiSEqC (Mode) enable
DISTA = DiSEqC Transaction Activate

 
 I notice that all other signaling methods are running in parallel
 (18/13V, tone bursts etc). Could it be that message dispatch for DiSEqC
 is being set up correctly, but then accidentally disabled while in
 progress, by one of the other functions? Settings are being poked
 straight into the registers as constants, instead of reading back the
 actual setting and modifying only the appropriate bit(s). Just a thought.
 

modified send_msg a bit (didn't compile test yet)

static int mb86a16_send_diseqc_msg(struct dvb_frontend *fe,
   struct dvb_diseqc_master_cmd *cmd)
{
struct mb86a16_state *state = fe-demodulator_priv;
int i;
u8 regs = 0x18;

if (cmd-msg_len  6 || cmd-msg_len  3)
return -EINVAL;

// Enable DiSEqC Mode with 50% duty cycle
if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN)  0)
goto err;
// Select DiSEqC and Clock
if (mb86a16_write(state, MB86A16_TONEOUT1, 0x5b)  0)
goto err;
if (mb86a16_write(state, MB86A16_TONEOUT2, 0x04)  0)
goto err;
// Write to registers
for (i = 0; i  cmd-msg_len; i++) {
if (mb86a16_write(state, regs, cmd-msg[i])  0)
goto err;

regs++;
}
msleep_interruptible(10);
// Load length and transmit
if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA | 
cmd-msg_len))
goto err;

return 0;

err:
dprintk(verbose, MB86A16_ERROR, 1, I2C transfer error);
return -EREMOTEIO;
}

___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Zoilo Gomez

Manu Abraham wrote:

Zoilo Gomez wrote:
  

Manu Abraham wrote:

 
  

sounds like you don't have the tone burst working. Looking in there..
Can you please try the modified burst callback ? You may/may not
need to
play a bit with a bit of sleep after the break in each case.

  

Sorry Manu, but this is not about diseqc-burst either ...




There are 4 things

1) 13v/18v (LNB Polarization control) (vp1034_set_voltage)
2) 22k tone control (it has OFF/ON) (mb86a16_set_tone)
3) burst (A/B unmodulated/modulated) uses 22k modulation
(mb86a16_send_diseqc_burst)
4) diseqc functions (mb86a16_send_diseqc_msg)
  
  

Exactly.



Unless our mutual terminology is inconsistent, diseqc-burst is a
simple enhancement method of controlling an individual 2-state switch,
in addition to existing conventional control by 18/13V for pol selection
and 22kHz for band selection (see:
http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf).



What I need is DiSEqC 1.0 support, as specified in the above document,
where the entire control information (sat,pol,band) is being passed by
means of a digital message. No voltages or tones.



that one you are looking at send_diseqc_msg. You just managed to confuse
me with the additional 22kmodulation in there
  
  

... sorry ...!



IIRC, send_msg had been working. need to see what's wrong. (Maybe diseqc
bus is busy ?)
Can you add a dumb short sleep (~10 ms) before the for loop and try a
larger sleep within the for loop (~100 - 200mS) and see whether any
change in behaviour ?

  
  

Assuming that you mean the for-loop in send_diseqc_msg: makes no
difference.

Anyway, it would have surprised me if this had any effect, because the
loop seems to be merely filling a 4-byte hardware buffer with the
message to be sent, and I assume that only when writing 0x90 + msg
length into MB86A16_DCC1, followed by a writeof DISEN (DiSEqC enable?)
to MB86A16_DCCOUT, the hardware is actually being triggered to dispatch
the message.



The last part is almost correct except for a slight change. There is a
bug in there from my side, don't understand how it worked

DISEN = DiSEqC (Mode) enable
DISTA = DiSEqC Transaction Activate

  

I notice that all other signaling methods are running in parallel
(18/13V, tone bursts etc). Could it be that message dispatch for DiSEqC
is being set up correctly, but then accidentally disabled while in
progress, by one of the other functions? Settings are being poked
straight into the registers as constants, instead of reading back the
actual setting and modifying only the appropriate bit(s). Just a thought.




modified send_msg a bit (didn't compile test yet)
  


Thank you for your help Manu.

In this form it does not seem to work yet.

Or perhaps one of the other functions (burst, set_tone), that sometimes 
use the same registers, is overwriting one of the register settings?



static int mb86a16_send_diseqc_msg(struct dvb_frontend *fe,
   struct dvb_diseqc_master_cmd *cmd)
{
struct mb86a16_state *state = fe-demodulator_priv;
int i;
u8 regs = 0x18;

if (cmd-msg_len  6 || cmd-msg_len  3)
return -EINVAL;

// Enable DiSEqC Mode with 50% duty cycle
if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN)  0)
goto err;
// Select DiSEqC and Clock
if (mb86a16_write(state, MB86A16_TONEOUT1, 0x5b)  0)
goto err;
if (mb86a16_write(state, MB86A16_TONEOUT2, 0x04)  0)
goto err;
// Write to registers
for (i = 0; i  cmd-msg_len; i++) {
if (mb86a16_write(state, regs, cmd-msg[i])  0)
goto err;

regs++;
}
msleep_interruptible(10);
// Load length and transmit
if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA | 
cmd-msg_len))
  


This OR with 0x80 (DISTA); in the previous version it was 0x90 ?


goto err;

return 0;

err:
dprintk(verbose, MB86A16_ERROR, 1, I2C transfer error);
return -EREMOTEIO;
}


  


May  1 23:42:15 localhost mb86a16_set_tone: SEC TONE OFF
May  1 23:42:15 localhost mb86a16_write: writing to 
[0x08],Reg[0x20],Data[0x04]
May  1 23:42:15 localhost mb86a16_write: writing to 
[0x08],Reg[0x16],Data[0x80]
May  1 23:42:15 localhost mb86a16_write: writing to 
[0x08],Reg[0x1e],Data[0x00]

May  1 23:42:15 localhost vp1034_set_voltage (0): Polarization=[18v]
May  1 23:42:15 localhost mb86a16_write: writing to 
[0x08],Reg[0x1e],Data[0x01]
May  1 23:42:15 localhost mb86a16_write: writing to 
[0x08],Reg[0x1f],Data[0x5b]
May  1 23:42:15 localhost mb86a16_write: writing to 
[0x08],Reg[0x20],Data[0x04]
May  1 23:42:15 localhost mb86a16_write: writing to 
[0x08],Reg[0x18],Data[0xe0]
May  1 23:42:15 localhost mb86a16_write: writing to 
[0x08],Reg[0x19],Data[0x10]
May  1 

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Manu Abraham
Zoilo Gomez wrote:
 Manu Abraham wrote:
 Zoilo Gomez wrote:
  
 Manu Abraham wrote:

  
  
 sounds like you don't have the tone burst working. Looking in there..
 Can you please try the modified burst callback ? You may/may not
 need to
 play a bit with a bit of sleep after the break in each case.
   
 Sorry Manu, but this is not about diseqc-burst either ...

 
 There are 4 things

 1) 13v/18v (LNB Polarization control) (vp1034_set_voltage)
 2) 22k tone control (it has OFF/ON) (mb86a16_set_tone)
 3) burst (A/B unmodulated/modulated) uses 22k modulation
 (mb86a16_send_diseqc_burst)
 4) diseqc functions (mb86a16_send_diseqc_msg)
 
 Exactly.


 Unless our mutual terminology is inconsistent, diseqc-burst is a
 simple enhancement method of controlling an individual 2-state switch,
 in addition to existing conventional control by 18/13V for pol
 selection
 and 22kHz for band selection (see:
 http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf).




 What I need is DiSEqC 1.0 support, as specified in the above document,
 where the entire control information (sat,pol,band) is being passed by
 means of a digital message. No voltages or tones.
 
 that one you are looking at send_diseqc_msg. You just managed to
 confuse
 me with the additional 22kmodulation in there
 
 ... sorry ...!


 IIRC, send_msg had been working. need to see what's wrong. (Maybe
 diseqc
 bus is busy ?)
 Can you add a dumb short sleep (~10 ms) before the for loop and try a
 larger sleep within the for loop (~100 - 200mS) and see whether any
 change in behaviour ?

 
 Assuming that you mean the for-loop in send_diseqc_msg: makes no
 difference.

 Anyway, it would have surprised me if this had any effect, because the
 loop seems to be merely filling a 4-byte hardware buffer with the
 message to be sent, and I assume that only when writing 0x90 + msg
 length into MB86A16_DCC1, followed by a writeof DISEN (DiSEqC enable?)
 to MB86A16_DCCOUT, the hardware is actually being triggered to dispatch
 the message.
 

 The last part is almost correct except for a slight change. There is a
 bug in there from my side, don't understand how it worked

 DISEN = DiSEqC (Mode) enable
 DISTA = DiSEqC Transaction Activate

  
 I notice that all other signaling methods are running in parallel
 (18/13V, tone bursts etc). Could it be that message dispatch for DiSEqC
 is being set up correctly, but then accidentally disabled while in
 progress, by one of the other functions? Settings are being poked
 straight into the registers as constants, instead of reading back the
 actual setting and modifying only the appropriate bit(s). Just a
 thought.

 

 modified send_msg a bit (didn't compile test yet)
   
 
 Thank you for your help Manu.
 
 In this form it does not seem to work yet.
 
 Or perhaps one of the other functions (burst, set_tone), that sometimes
 use the same registers, is overwriting one of the register settings?
 
 static int mb86a16_send_diseqc_msg(struct dvb_frontend *fe,
struct dvb_diseqc_master_cmd *cmd)
 {
 struct mb86a16_state *state = fe-demodulator_priv;
 int i;
 u8 regs = 0x18;

 if (cmd-msg_len  6 || cmd-msg_len  3)
 return -EINVAL;

 // Enable DiSEqC Mode with 50% duty cycle
 if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN)  0)
 goto err;
 // Select DiSEqC and Clock
 if (mb86a16_write(state, MB86A16_TONEOUT1, 0x5b)  0)
 goto err;
 if (mb86a16_write(state, MB86A16_TONEOUT2, 0x04)  0)
 goto err;
 // Write to registers
 for (i = 0; i  cmd-msg_len; i++) {
 if (mb86a16_write(state, regs, cmd-msg[i])  0)
 goto err;

 regs++;
 }
 msleep_interruptible(10);
 // Load length and transmit
 if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA |
 cmd-msg_len))
   
 
 This OR with 0x80 (DISTA); in the previous version it was 0x90 ?
 
 goto err;

 return 0;

 err:
 dprintk(verbose, MB86A16_ERROR, 1, I2C transfer error);
 return -EREMOTEIO;
 }


   
 
 May  1 23:42:15 localhost mb86a16_set_tone: SEC TONE OFF
 May  1 23:42:15 localhost mb86a16_write: writing to
 [0x08],Reg[0x20],Data[0x04]
 May  1 23:42:15 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x80]
 May  1 23:42:15 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x00]


 May  1 23:42:15 localhost vp1034_set_voltage (0): Polarization=[18v]
 May  1 23:42:15 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x01]
 May  1 23:42:15 localhost mb86a16_write: writing to
 [0x08],Reg[0x1f],Data[0x5b]
 May  1 23:42:15 localhost mb86a16_write: writing to
 [0x08],Reg[0x20],Data[0x04]
 May  1 23:42:15 localhost mb86a16_write: writing to
 [0x08],Reg[0x18],Data[0xe0]
 May  1 23:42:15 localhost mb86a16_write: writing to
 [0x08],Reg[0x19],Data[0x10]
 May  1 23:42:15 localhost mb86a16_write: writing to
 

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-05-01 Thread Zoilo Gomez

Manu Abraham wrote:

Zoilo Gomez wrote:
  

Manu Abraham wrote:


Zoilo Gomez wrote:
 
  

Manu Abraham wrote:
   

 
 
  

sounds like you don't have the tone burst working. Looking in there..
Can you please try the modified burst callback ? You may/may not
need to
play a bit with a bit of sleep after the break in each case.
  
  

Sorry Manu, but this is not about diseqc-burst either ...




There are 4 things

1) 13v/18v (LNB Polarization control) (vp1034_set_voltage)
2) 22k tone control (it has OFF/ON) (mb86a16_set_tone)
3) burst (A/B unmodulated/modulated) uses 22k modulation
(mb86a16_send_diseqc_burst)
4) diseqc functions (mb86a16_send_diseqc_msg)

  

Exactly.

   


Unless our mutual terminology is inconsistent, diseqc-burst is a
simple enhancement method of controlling an individual 2-state switch,
in addition to existing conventional control by 18/13V for pol
selection
and 22kHz for band selection (see:
http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf).




What I need is DiSEqC 1.0 support, as specified in the above document,
where the entire control information (sat,pol,band) is being passed by
means of a digital message. No voltages or tones.



that one you are looking at send_diseqc_msg. You just managed to
confuse
me with the additional 22kmodulation in there

  

... sorry ...!

   


IIRC, send_msg had been working. need to see what's wrong. (Maybe
diseqc
bus is busy ?)
Can you add a dumb short sleep (~10 ms) before the for loop and try a
larger sleep within the for loop (~100 - 200mS) and see whether any
change in behaviour ?


  

Assuming that you mean the for-loop in send_diseqc_msg: makes no
difference.

Anyway, it would have surprised me if this had any effect, because the
loop seems to be merely filling a 4-byte hardware buffer with the
message to be sent, and I assume that only when writing 0x90 + msg
length into MB86A16_DCC1, followed by a writeof DISEN (DiSEqC enable?)
to MB86A16_DCCOUT, the hardware is actually being triggered to dispatch
the message.



The last part is almost correct except for a slight change. There is a
bug in there from my side, don't understand how it worked

DISEN = DiSEqC (Mode) enable
DISTA = DiSEqC Transaction Activate

 
  

I notice that all other signaling methods are running in parallel
(18/13V, tone bursts etc). Could it be that message dispatch for DiSEqC
is being set up correctly, but then accidentally disabled while in
progress, by one of the other functions? Settings are being poked
straight into the registers as constants, instead of reading back the
actual setting and modifying only the appropriate bit(s). Just a
thought.




modified send_msg a bit (didn't compile test yet)
  
  

Thank you for your help Manu.

In this form it does not seem to work yet.

Or perhaps one of the other functions (burst, set_tone), that sometimes
use the same registers, is overwriting one of the register settings?



static int mb86a16_send_diseqc_msg(struct dvb_frontend *fe,
   struct dvb_diseqc_master_cmd *cmd)
{
struct mb86a16_state *state = fe-demodulator_priv;
int i;
u8 regs = 0x18;

if (cmd-msg_len  6 || cmd-msg_len  3)
return -EINVAL;

// Enable DiSEqC Mode with 50% duty cycle
if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN)  0)
goto err;
// Select DiSEqC and Clock
if (mb86a16_write(state, MB86A16_TONEOUT1, 0x5b)  0)
goto err;
if (mb86a16_write(state, MB86A16_TONEOUT2, 0x04)  0)
goto err;
// Write to registers
for (i = 0; i  cmd-msg_len; i++) {
if (mb86a16_write(state, regs, cmd-msg[i])  0)
goto err;

regs++;
}
msleep_interruptible(10);
// Load length and transmit
if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA |
cmd-msg_len))
  
  

This OR with 0x80 (DISTA); in the previous version it was 0x90 ?



goto err;

return 0;

err:
dprintk(verbose, MB86A16_ERROR, 1, I2C transfer error);
return -EREMOTEIO;
}


  
  

May  1 23:42:15 localhost mb86a16_set_tone: SEC TONE OFF
May  1 23:42:15 localhost mb86a16_write: writing to
[0x08],Reg[0x20],Data[0x04]
May  1 23:42:15 localhost mb86a16_write: writing to
[0x08],Reg[0x16],Data[0x80]
May  1 23:42:15 localhost mb86a16_write: writing to
[0x08],Reg[0x1e],Data[0x00]




  

May  1 23:42:15 localhost vp1034_set_voltage (0): Polarization=[18v]
May  1 23:42:15 localhost mb86a16_write: writing to
[0x08],Reg[0x1e],Data[0x01]
May  1 23:42:15 localhost mb86a16_write: writing to
[0x08],Reg[0x1f],Data[0x5b]
May  1 23:42:15 localhost mb86a16_write: writing to
[0x08],Reg[0x20],Data[0x04]
May  1 23:42:15 localhost mb86a16_write: writing to
[0x08],Reg[0x18],Data[0xe0]
May  1 23:42:15 localhost mb86a16_write: 

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-04-30 Thread Manu Abraham
Zoilo Gomez wrote:
 Manu Abraham wrote:
 Michel Verbraak wrote:
  
 Manu, list,

 I was testing DiseqC to control my rotor (Palm H-H 2100A) and because i
 could not get a scan done I finally pulled my rotor from my roof top and
 placed it next to the pc.

 I found the following results:

 - When I boot my pc and modprobe the mantis module the card powers on. I
 see a green light lighting up on my rotor.
 - When I tried the goto position 0 diseqc command I saw my light change
 from green to red to green. This normal when the command string is send
 to the rotor ( I do have another card which show the same effect). But
 the rotor does not change position.
 - When I tried the goto X diseqc command saw my light change from green
 to red to green.  But the rotor does not change position.

 The only difference I could see is that the change in colour is faster
 for the VP-1034 card than my other card a VP-1020a (which is working as
 it should).

 

 I think probably the MB86A16 driver could use some delays in between for
 communicating with SEC devices.
 SEC devices are not taht fast in response and hence could possibly be an
 answer for the problem.
   
 
 Was this ever resolved?
 

I think so, I think Michel got his positioner working a while back.

 Today I tried to get diseqc running with my VP-1034, to control my Spaun
 switch, but no success.
 
 With a KNC1 DVB-S card diseqc is working fine, switching correctly
 between different feeds/sats etc. So this seems to point in the
 direction of a problem with the diseqc implementation in the Mantis
 driver ...
 
 I tried to introduce some msleep_interruptible(100) calls, in particular
 before and after the 4-byte diseqc command is being sent, but no
 positive results.

Do you get any I2C transaction errors ?

 The diseqc message itself is OK; I verified the message content as it is
 being written into the registers 0x18-0x1b.
 

Can you paste the logs ?


___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-04-30 Thread Zoilo Gomez

Manu Abraham wrote:

Zoilo Gomez wrote:
  

Manu Abraham wrote:


Michel Verbraak wrote:
 
  

Manu, list,

I was testing DiseqC to control my rotor (Palm H-H 2100A) and because i
could not get a scan done I finally pulled my rotor from my roof top and
placed it next to the pc.

I found the following results:

- When I boot my pc and modprobe the mantis module the card powers on. I
see a green light lighting up on my rotor.
- When I tried the goto position 0 diseqc command I saw my light change
from green to red to green. This normal when the command string is send
to the rotor ( I do have another card which show the same effect). But
the rotor does not change position.
- When I tried the goto X diseqc command saw my light change from green
to red to green.  But the rotor does not change position.

The only difference I could see is that the change in colour is faster
for the VP-1034 card than my other card a VP-1020a (which is working as
it should).




I think probably the MB86A16 driver could use some delays in between for
communicating with SEC devices.
SEC devices are not taht fast in response and hence could possibly be an
answer for the problem.
  
  

Was this ever resolved?




I think so, I think Michel got his positioner working a while back.

  

Today I tried to get diseqc running with my VP-1034, to control my Spaun
switch, but no success.

With a KNC1 DVB-S card diseqc is working fine, switching correctly
between different feeds/sats etc. So this seems to point in the
direction of a problem with the diseqc implementation in the Mantis
driver ...

I tried to introduce some msleep_interruptible(100) calls, in particular
before and after the 4-byte diseqc command is being sent, but no
positive results.



Do you get any I2C transaction errors ?
  


No.


The diseqc message itself is OK; I verified the message content as it is
being written into the registers 0x18-0x1b.




Can you paste the logs ?
  


Here you go; I am trying to tune to 10832 H 22000 on the second 
satellite out of 4, so F6 seems to be the correct diseqc byte.




May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x20],Data[0x04]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x16],Data[0x80]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x1e],Data[0x00]

May  1 02:12:26 localhost vp1034_set_voltage (0): Polarization=[18v]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x16],Data[0x80]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x1e],Data[0x00]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x20],Data[0x04]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x18],Data[0xe0]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x19],Data[0x10]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x1a],Data[0x38]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x1b],Data[0xf6]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x16],Data[0x94]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x1e],Data[0x01]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x16],Data[0x98]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x1e],Data[0x01]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x20],Data[0x04]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x16],Data[0x80]
May  1 02:12:26 localhost mb86a16_write: writing to 
[0x08],Reg[0x1e],Data[0x00]

May  1 02:12:27 localhost mb86a16_set_fe: freq=1082 Mhz, symbrt=22000 Ksps
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x32],Data[0x02]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x06],Data[0xdf]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x0a],Data[0x3d]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x2b],Data[0x00]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x2c],Data[0x00]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x58],Data[0x00]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x59],Data[0x00]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x08],Data[0x16]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x2f],Data[0x21]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x39],Data[0x38]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x3d],Data[0x00]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x3e],Data[0x1c]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x3f],Data[0x20]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x40],Data[0x1e]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x41],Data[0x23]
May  1 02:12:27 localhost mb86a16_write: writing to 
[0x08],Reg[0x54],Data[0xff]
May  1 02:12:27 localhost mb86a16_write: writing to 

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-04-30 Thread Manu Abraham
Zoilo Gomez wrote:
 Manu Abraham wrote:
 Zoilo Gomez wrote:
  
 Manu Abraham wrote:

 Michel Verbraak wrote:
  
  
 Manu, list,

 I was testing DiseqC to control my rotor (Palm H-H 2100A) and
 because i
 could not get a scan done I finally pulled my rotor from my roof
 top and
 placed it next to the pc.

 I found the following results:

 - When I boot my pc and modprobe the mantis module the card powers
 on. I
 see a green light lighting up on my rotor.
 - When I tried the goto position 0 diseqc command I saw my light
 change
 from green to red to green. This normal when the command string is
 send
 to the rotor ( I do have another card which show the same effect). But
 the rotor does not change position.
 - When I tried the goto X diseqc command saw my light change from
 green
 to red to green.  But the rotor does not change position.

 The only difference I could see is that the change in colour is faster
 for the VP-1034 card than my other card a VP-1020a (which is
 working as
 it should).

 
 I think probably the MB86A16 driver could use some delays in between
 for
 communicating with SEC devices.
 SEC devices are not taht fast in response and hence could possibly
 be an
 answer for the problem.
 
 Was this ever resolved?

 

 I think so, I think Michel got his positioner working a while back.

  
 Today I tried to get diseqc running with my VP-1034, to control my Spaun
 switch, but no success.

 With a KNC1 DVB-S card diseqc is working fine, switching correctly
 between different feeds/sats etc. So this seems to point in the
 direction of a problem with the diseqc implementation in the Mantis
 driver ...

 I tried to introduce some msleep_interruptible(100) calls, in particular
 before and after the 4-byte diseqc command is being sent, but no
 positive results.
 

 Do you get any I2C transaction errors ?
   
 
 No.
 
 The diseqc message itself is OK; I verified the message content as it is
 being written into the registers 0x18-0x1b.

 

 Can you paste the logs ?
   
 
 Here you go; I am trying to tune to 10832 H 22000 on the second
 satellite out of 4, so F6 seems to be the correct diseqc byte.
 
 
 
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x20],Data[0x04]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x80]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x00]
 May  1 02:12:26 localhost vp1034_set_voltage (0): Polarization=[18v]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x80]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x00]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x20],Data[0x04]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x18],Data[0xe0]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x19],Data[0x10]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1a],Data[0x38]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1b],Data[0xf6]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x94]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x01]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x98]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x01]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x20],Data[0x04]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x16],Data[0x80]
 May  1 02:12:26 localhost mb86a16_write: writing to
 [0x08],Reg[0x1e],Data[0x00]
 May  1 02:12:27 localhost mb86a16_set_fe: freq=1082 Mhz, symbrt=22000 Ksps
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x32],Data[0x02]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x06],Data[0xdf]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x0a],Data[0x3d]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x2b],Data[0x00]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x2c],Data[0x00]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x58],Data[0x00]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x59],Data[0x00]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x08],Data[0x16]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x2f],Data[0x21]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x39],Data[0x38]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x3d],Data[0x00]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x3e],Data[0x1c]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x3f],Data[0x20]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x40],Data[0x1e]
 May  1 02:12:27 localhost mb86a16_write: writing to
 [0x08],Reg[0x41],Data[0x23]
 May  1 02:12:27 localhost mb86a16_write: 

Re: [linux-dvb] Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

2007-04-30 Thread Zoilo Gomez

Manu Abraham wrote:

Zoilo Gomez wrote:
  

Manu Abraham wrote:


Zoilo Gomez wrote:
 
  

Manu Abraham wrote:
   


Michel Verbraak wrote:
 
 
  

Manu, list,

I was testing DiseqC to control my rotor (Palm H-H 2100A) and
because i
could not get a scan done I finally pulled my rotor from my roof
top and
placed it next to the pc.

I found the following results:

- When I boot my pc and modprobe the mantis module the card powers
on. I
see a green light lighting up on my rotor.
- When I tried the goto position 0 diseqc command I saw my light
change
from green to red to green. This normal when the command string is
send
to the rotor ( I do have another card which show the same effect). But
the rotor does not change position.
- When I tried the goto X diseqc command saw my light change from
green
to red to green.  But the rotor does not change position.

The only difference I could see is that the change in colour is faster
for the VP-1034 card than my other card a VP-1020a (which is
working as
it should).




I think probably the MB86A16 driver could use some delays in between
for
communicating with SEC devices.
SEC devices are not taht fast in response and hence could possibly
be an
answer for the problem.

  

Was this ever resolved?




I think so, I think Michel got his positioner working a while back.

 
  

Today I tried to get diseqc running with my VP-1034, to control my Spaun
switch, but no success.

With a KNC1 DVB-S card diseqc is working fine, switching correctly
between different feeds/sats etc. So this seems to point in the
direction of a problem with the diseqc implementation in the Mantis
driver ...

I tried to introduce some msleep_interruptible(100) calls, in particular
before and after the 4-byte diseqc command is being sent, but no
positive results.



Do you get any I2C transaction errors ?
  
  

No.



The diseqc message itself is OK; I verified the message content as it is
being written into the registers 0x18-0x1b.




Can you paste the logs ?
  
  

Here you go; I am trying to tune to 10832 H 22000 on the second
satellite out of 4, so F6 seems to be the correct diseqc byte.



May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x20],Data[0x04]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x16],Data[0x80]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x1e],Data[0x00]
May  1 02:12:26 localhost vp1034_set_voltage (0): Polarization=[18v]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x16],Data[0x80]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x1e],Data[0x00]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x20],Data[0x04]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x18],Data[0xe0]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x19],Data[0x10]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x1a],Data[0x38]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x1b],Data[0xf6]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x16],Data[0x94]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x1e],Data[0x01]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x16],Data[0x98]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x1e],Data[0x01]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x20],Data[0x04]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x16],Data[0x80]
May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x1e],Data[0x00]
May  1 02:12:27 localhost mb86a16_set_fe: freq=1082 Mhz, symbrt=22000 Ksps
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x32],Data[0x02]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x06],Data[0xdf]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x0a],Data[0x3d]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x2b],Data[0x00]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x2c],Data[0x00]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x58],Data[0x00]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x59],Data[0x00]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x08],Data[0x16]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x2f],Data[0x21]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x39],Data[0x38]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x3d],Data[0x00]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x3e],Data[0x1c]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x3f],Data[0x20]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x40],Data[0x1e]
May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x41],Data[0x23]
May  1 02:12:27 localhost