tbsdtv / linux_media

TBS linux open source drivers
https://github.com/tbsdtv/linux_media/wiki
Other
174 stars 81 forks source link

TBS6905 Intermittent issue locking DVB-S signals #152

Open mrwish7 opened 5 years ago

mrwish7 commented 5 years ago

I'm having a strange issue with the drivers and my TBS6905 card. This card is a 4x DVB-S2 tuner.

I use the card with TVHeadend, and it has intermittent problems with DVB-S transponders. DVB-S2 signals always lock but DVB-S ones sometimes don't. TVHeadend receives the expected C/N value for a given DVB-S transponder in dB, but receives no transport stream data.

In order to force the tuner to start sending the transport stream data, I have to tune a different DVB-S transponder on one of the other tuners which then "unblocks" the problem and both channels start to play normally after a few seconds.

For example:

Tuner A: 19.2E/5W via DiSEqC A/B Tuner B: 19.2E/5W via DiSEqC A/B

  1. I tune to the channel "RTL Television" on 19.2E in DVB-S (12188V) in TVHeadend - it tries Tuner A.
  2. No data is received and I get a "No Signal" error.
  3. I tune "RTL Television" again, it tries Tuner A.
  4. Before the "No Signal" error time out, I quickly try to tune another DVB-S channel at the same time, e.g. "SAT.1" (12545H), it tries Tuner B for this second channel.
  5. There are a couple of seconds of black screen, and then both channels lock successfully and video data is displayed. (RTL via Tuner A, SAT.1 via Tuner B).

Sometimes the problem also resolves itself if the tune fails initially on Tuner A, and Tuner B is not already in use - it will then try Tuner B and lock the channel successfully.

With DVB-S2 transponders, there is never any problem and all signals lock on the first attempt at tuning with any of the 4 tuners.

mrwish7 commented 3 years ago

To add some more to this, I still have trouble locking some DVB-S transponders with these drivers on the TBS6905. A big problem one for me is 12620.28V with very low FEC 890 on Eutelsat 8°W.

The driver seems to report signal level as 'FAINT' and provides no data to TVHeadend. Eventually, after multiple attempts, the signal locks and MPEG-TS data is returned.

Even with the 'FAINT' status, TVHeadend receives correct SNR data (around 8.9dB, which is plenty for locking DVB-S with FEC 1/2).

Here's the logging with linuxdvb included -

2020-12-08 15:20:21.694 mpegts: 12620.28V in Eutelsat 8 - tuning on TurboSight TBS 6905 DVB-S/S2  #1 : DVB-S #0
2020-12-08 15:20:22.060 linuxdvb: TurboSight TBS 6905 DVB-S/S2  #1 : DVB-S #0 - starting 12620.28V in Eutelsat 8
2020-12-08 15:20:22.060 subscription: 2083: "HTTP" subscribing to mux "12620.28V", weight: 10, adapter: "TurboSight TBS 6905 DVB-S/S2  #1 : DVB-S #0", network: "Eutelsat 8", service: "Raw PID Subscription", hostname="192.168.0.178", client="VLC/3.0.11.1 LibVLC/3.0.11.1"
2020-12-08 15:20:22.230 linuxdvb: TurboSight TBS 6905 DVB-S/S2  #1 : DVB-S #0 - status   FAINT (SIGNAL)
2020-12-08 15:20:32.054 subscription: 2083: service instance is bad, reason: No input detected
2020-12-08 15:20:32.054 linuxdvb: TurboSight TBS 6905 DVB-S/S2  #1 : DVB-S #0 - stopping 12620.28V in Eutelsat 8

This then repeats on retrying, until it eventually locks after several attempts -

2020-12-08 15:22:41.056 subscription: 2092: "HTTP" subscribing to mux "12620.28V", weight: 10, adapter: "TurboSight TBS 6905 DVB-S/S2  #1 : DVB-S #0", network: "Eutelsat 8", service: "Raw PID Subscription", hostname="192.168.0.178", client="VLC/3.0.11.1 LibVLC/3.0.11.1"
2020-12-08 15:22:44.239 linuxdvb: TurboSight TBS 6905 DVB-S/S2  #1 : DVB-S #0 - status     BAD (SIGNAL | CARRIER)
2020-12-08 15:22:44.386 linuxdvb: TurboSight TBS 6905 DVB-S/S2  #1 : DVB-S #0 - status    GOOD (SIGNAL | CARRIER | VITERBI | SYNC | LOCK)
2020-12-08 15:22:44.386 linuxdvb: TurboSight TBS 6905 DVB-S/S2  #1 : DVB-S #0 - locked