Log in
Register
Menu
Log in
Register
Home
What's new
Latest activity
Authors
Forums
New posts
Search forums
What's new
New posts
Latest activity
Members
Current visitors
New posts
Search forums
Menu
Log in
Register
Install the app
Install
Forums
Satellite TV receivers & systems support forums
Satellite PC Card Receivers, Internet by Satellite
Blindscan on linux with tbs cards
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="deeptho" data-source="post: 1152221" data-attributes="member: 215446"><p>Your messages point out what the problem is: some kind of timing issue.</p><p></p><p>Are you running the drivers in a virtual machine?</p><p></p><p></p><p>However, the solution is not a good one: </p><p>the original code waits 10ms in case of a temporary error and tries that 10 times. That does not</p><p>work for you. Your fix risks waiting 10x 100ms =1 second in the worst case. Note that this is </p><p>1 second per transmitted byte. That could make the driver "soft lock" for several seconds.</p><p></p><p>Also I suspect that the problems may be related to powering up the lnbd and swicth (see below).</p><p>Then the amount to wait depends on what happened before sending the diseqc command.</p><p></p><p>In any case, waiting should not be done in this low level driver</p><p>code but at a higher level (either in dvb_frontend.c) or in user space. </p><p></p><p>This is because in general the needed amount to wait depends not on a specific call </p><p>(in this case diseqc sending) but also on what happened before (e.g., was the voltage switched </p><p>from 0 to 18V or was it already 18V for a long time) So only higher level code can estimate the optimal</p><p>value because it involves multiple system calls.</p><p></p><p>So a solution in the driver (like your fix) needs to always make the worst case estimate (e.g., always</p><p>wait 100 ms because the LNB may have been only just powered up, even if this delay is not always needed). </p><p>As a result all these delays will pile up, resulting in slower channel change.</p><p></p><p>Another issue is that all drivers need to behave in the same way (either all of them sleep for safety,</p><p>or none should do that; most other drivers don't seem to wait either).</p><p></p><p>So I would not recommend this fix.</p><p></p><p>Here is some more info on things I have noticed myself (and which may be different from your problem):</p><p>I have noticed in reality is all kinds of weird behaviour with switches and motors during power up. </p><p>The main thing is that after powering up from 0 voltage you need to wait longer than the specs state.</p><p>Also, when powering a rotor behind a switch the motor can go into "overload" if you power up from 0 to 18 Volt.</p><p>So neumodvb first switches to 12 Volt and a moment later to 18 volt.</p><p></p><p>None of this should actually be needed according to the specifications, but this is is based on experiments, including an oscilloscope and even measuring currents. Most programs introduce some delays, but the values are based on </p><p>the specs and do not take into account weird behaviour.</p><p></p><p>I have also noticed that some tbs usb devices are more sensitive in this respect, probably because they</p><p>create more complex startup behaviour due to usb current limitations. And of cours, the longer the cables, or the </p><p>poorer the connectors, the more risk of problems.</p><p></p><p>It is quite possible that such problems are only seen with the blindscan drivers, for the following reason:</p><p>many of the (not modified by me) tbs drivers rarely power down the lnbs. I do not think this is a good idea,</p><p>and it may be the reason why have seen many of my lnbs fail after a few years of usage by tvheadend: </p><p>I have noticed that switches and the selected lnbs stay powered on (even in power save mode), which needlessly consumes energy and which could (just a theory of mine) reduce lifetime.</p><p></p><p>Instead my blindscan drivers power down lnbs whenever the driver knows they are not being used. That </p><p>of course means powering up at each "device open", and if some devices react poorly to power up problems, it also means more problems. With the regular drivers, you will see these problems only once per boot (the first time </p><p>you use the device) because the 2nd, 3rd... time the switch is already powered up.</p><p></p><p>I am not sure what is the proper fix in your case. Obviously, you do not want to modify all user programs.</p><p>One work around may be the "repeat diseqc" option that many user space apps offer. This works because </p><p>programs wait before repeating, and by that time power up has happened.</p><p></p><p>In any case, this could be something to experiment with, just to see if the problem is related to powering up.</p><p>You could also insert a 100 or 200ms delay in the tsduck code before sending diseqc. This will shed some</p><p>light on the nature of the problem.</p></blockquote><p></p>
[QUOTE="deeptho, post: 1152221, member: 215446"] Your messages point out what the problem is: some kind of timing issue. Are you running the drivers in a virtual machine? However, the solution is not a good one: the original code waits 10ms in case of a temporary error and tries that 10 times. That does not work for you. Your fix risks waiting 10x 100ms =1 second in the worst case. Note that this is 1 second per transmitted byte. That could make the driver "soft lock" for several seconds. Also I suspect that the problems may be related to powering up the lnbd and swicth (see below). Then the amount to wait depends on what happened before sending the diseqc command. In any case, waiting should not be done in this low level driver code but at a higher level (either in dvb_frontend.c) or in user space. This is because in general the needed amount to wait depends not on a specific call (in this case diseqc sending) but also on what happened before (e.g., was the voltage switched from 0 to 18V or was it already 18V for a long time) So only higher level code can estimate the optimal value because it involves multiple system calls. So a solution in the driver (like your fix) needs to always make the worst case estimate (e.g., always wait 100 ms because the LNB may have been only just powered up, even if this delay is not always needed). As a result all these delays will pile up, resulting in slower channel change. Another issue is that all drivers need to behave in the same way (either all of them sleep for safety, or none should do that; most other drivers don't seem to wait either). So I would not recommend this fix. Here is some more info on things I have noticed myself (and which may be different from your problem): I have noticed in reality is all kinds of weird behaviour with switches and motors during power up. The main thing is that after powering up from 0 voltage you need to wait longer than the specs state. Also, when powering a rotor behind a switch the motor can go into "overload" if you power up from 0 to 18 Volt. So neumodvb first switches to 12 Volt and a moment later to 18 volt. None of this should actually be needed according to the specifications, but this is is based on experiments, including an oscilloscope and even measuring currents. Most programs introduce some delays, but the values are based on the specs and do not take into account weird behaviour. I have also noticed that some tbs usb devices are more sensitive in this respect, probably because they create more complex startup behaviour due to usb current limitations. And of cours, the longer the cables, or the poorer the connectors, the more risk of problems. It is quite possible that such problems are only seen with the blindscan drivers, for the following reason: many of the (not modified by me) tbs drivers rarely power down the lnbs. I do not think this is a good idea, and it may be the reason why have seen many of my lnbs fail after a few years of usage by tvheadend: I have noticed that switches and the selected lnbs stay powered on (even in power save mode), which needlessly consumes energy and which could (just a theory of mine) reduce lifetime. Instead my blindscan drivers power down lnbs whenever the driver knows they are not being used. That of course means powering up at each "device open", and if some devices react poorly to power up problems, it also means more problems. With the regular drivers, you will see these problems only once per boot (the first time you use the device) because the 2nd, 3rd... time the switch is already powered up. I am not sure what is the proper fix in your case. Obviously, you do not want to modify all user programs. One work around may be the "repeat diseqc" option that many user space apps offer. This works because programs wait before repeating, and by that time power up has happened. In any case, this could be something to experiment with, just to see if the problem is related to powering up. You could also insert a 100 or 200ms delay in the tsduck code before sending diseqc. This will shed some light on the nature of the problem. [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
Satellite TV receivers & systems support forums
Satellite PC Card Receivers, Internet by Satellite
Blindscan on linux with tbs cards
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…
Top