I have been testing neumoDVB with tbs6916. This is a card with 4 RF input connectors and 8 tuners and 16 demodulators incorporating 2 STID chips. it can deliver 16 full transport streams from 16 muxes on 4 satellite bands simultaneously. With neumoDVB 16 or more services can then be tuned simultaneously from all of these muxes.
New drivers were needed to handle conflicts between the tuners, as they share the LNBs and should be careful not
to make contradictory decisions regarding sending 22kHz to switch between high and low bands or to send conflicting
diseqc commands.
neumoDVB itself still needs some modifications to make use from this, but by being careful in starting the muxes (not all at once), it can already working. Here is a screenshot showing 18 services from 16 muxes selected from 52E, 30W, 19.2E and 28.2E.
To add to the complexity, neumoDVB itself was running on a remote computer and all of this was streamed over WIFI.
It works, but the frame rate was not great.
The code needs some more work before releasing it
The new code also can show useful information about the internal state of the drivers via sysfs
Code:
$cat /sys/module/stid135/card0/state
card_no = 0 dev =00000000a81f1a57
use_count = 2
chips: 0000000064275c6e 00000000dc378979
rf_in[0]: use_count=4 owner=-1 controller=0 voltage=0 tone=1
rf_in[1]: use_count=3 owner=-1 controller=0 voltage=1 tone=1
rf_in[2]: use_count=4 owner=-1 controller=1 voltage=1 tone=1
rf_in[3]: use_count=5 owner=-1 controller=0 voltage=0 tone=1
====
This shows that all 4 rf_inputs are in use on 4 LNB connections. use_count is the number of demods
connected to an rf_in. The total is 16, showing that all demods are in use. All rf_inputs, except 2, are controlled
by the first stid135 chip, which means that this chip is responsible for diseqc and 22kHz sending. Voltages are controlled
by the FPGA on the card.
Code:
cat /sys/module/stid135/card0/chip0/state
card_no=0 chip_no=0 addr=0x68 i2c=00000000b5b88f76
use_count = 8 mutex_locked_by=-1 at FE_STiD135_GetBer:1518
tuner[0]: use_count=4 power=1 active_rf_in=0
rf_in_use_count=4 voltage=13V tone=off
vglna=0 control_22k=1
tuner[1]: use_count=3 power=1 active_rf_in=1
rf_in_use_count=3 voltage=18V tone=off
vglna=0 control_22k=1
tuner[2]: use_count=0 power=0 active_rf_in=-1
vglna=0 control_22k=1
tuner[3]: use_count=1 power=1 active_rf_in=3
rf_in_use_count=5 voltage=13V tone=off
vglna=0 control_22k=1
So on the first chip only 3 tuners were in use
Code:
$cat /sys/module/stid135/card0/chip1/state
card_no=0 chip_no=1 addr=0x68 i2c=00000000abb9b0e1
use_count = 8 mutex_locked_by=-1 at FE_STiD135_GetBer:1518
tuner[0]: use_count=0 power=0 active_rf_in=-1
vglna=0 control_22k=0
tuner[1]: use_count=0 power=0 active_rf_in=-1
vglna=0 control_22k=0
tuner[2]: use_count=4 power=1 active_rf_in=2
rf_in_use_count=4 voltage=18V tone=off
vglna=0 control_22k=0
tuner[3]: use_count=4 power=1 active_rf_in=3
rf_in_use_count=5 voltage=13V tone=off
vglna=0 control_22k=0
On the second chip only 2 tuners were in use.
neumoDVB and the drivers decide which tuners to use. As there are only 4 input bands, there is no need to
use more than 4 tuners, except when all demods on one chip are fully used and the second chip comes in action.
Then more tuners must be started...