Sundtek SkyTV DVB-S/S2 Support (1 Viewer)

Sundtek

Portal Member
July 12, 2016
8
1
Home Country
Germany Germany
Hi,

I just had a look at why MediaPortal doesn't allow to tune to DVB-S2 transponders, it seems like Rolloff / Pilot are never set (the driver always receives -1)
DVBViewer works without any problem (and the driver also sees the Rolloff / Pilot values)


In
TvEngine3/TVLibrary/TVLibrary/Implementations/DVB/Graphs/TvCardDvbBase.cs (Line 604 / 605)

shouldn't following code set dvbsChannel.Rolloff and dvbsChannel.Pilot?

DigitalDemodulator2Settings dSettings = new DigitalDemodulator2Settings
{
InnerFECRate = dvbsChannel.InnerFecRate,
InnerFECMethod = FECMethod.MethodNotSet,
Modulation = dvbsChannel.ModulationType,
OuterFECMethod = FECMethod.MethodNotSet,
OuterFECRate = BinaryConvolutionCodeRate.RateNotSet,
Pilot = Pilot.NotSet, <<<<<---------
RollOff = RollOff.NotSet, <<<----------
SpectralInversion = SpectralInversion.NotSet,
SymbolRate = (uint)dvbsChannel.SymbolRate,
TransmissionMode = TransmissionMode.ModeNotSet
};
 

mm1352000

Retired Team Member
  • Premium Supporter
  • September 1, 2008
    21,577
    8,224
    Home Country
    New Zealand New Zealand
    Hello

    I just had a look at why MediaPortal doesn't allow to tune to DVB-S2 transponders...
    This is news to me. Until now I was not aware of any compatibility problems with Sundtek tuners.
    Did you tick the "enable DVB-S2 channels tuning/scanning option"?
    http://wiki.team-mediaportal.com/1_...rver_Configuration/02_TV_Servers/3_Scan_DVB-S

    ...it seems like Rolloff / Pilot are never set (the driver always receives -1)
    Yes, in most cases we don't set those parameters. Modern satellite demodulator chips automatically determine the correct values. AFAIK only old demodulator chips (eg. CX24116, used by Hauppauge NOVA HD S2, HVR 4000) need the parameters to be set in order to lock on signal. In that case we use a proprietary API to set the values:
    https://github.com/MediaPortal/Medi...ConditionalAccess/HaupPauge/Hauppauge.cs#L218

    Do Sundtek tuners require pilot and roll-off factor to be set in order to lock on DVB-S2 transponders?
    (I'd be surprised if the answer is yes. Usually it's only necessary to set the modulation value correctly.)

    Can you provide an SDK for Sundtek tuner support (DiSEqC, IR remote, MAC address, DVB-S2 tuning etc.)?

    In
    TvEngine3/TVLibrary/TVLibrary/Implementations/DVB/Graphs/TvCardDvbBase.cs (Line 604 / 605)

    shouldn't following code set dvbsChannel.Rolloff and dvbsChannel.Pilot?
    That code is not used.
    The actual DVB-S/S2 tuning code is mostly here:
    https://github.com/MediaPortal/Medi...ations/DVB/Graphs/DVBS/TvCardDVBS.cs#L298-404

    Here we set custom modulation - and Hauppauge pilot + roll-off - for DVB-S2 tuning:
    https://github.com/MediaPortal/Medi...ditionalAccess/ConditionalAccess.cs#L886-1071
     

    Sundtek

    Portal Member
    July 12, 2016
    8
    1
    Home Country
    Germany Germany
    You're right I was wrong with the first assumption.


    I figured out what has to be changed in the meanwhile:

    Can you update TvCardDVBS.cs and use IDVBSLocator2?


    IDVBSLocator2 dvbsLocator = (IDVBSLocator2)locator;
    IDVBTuneRequest tuneRequest = (IDVBTuneRequest)_tuneRequest;
    tuneRequest.put_ONID(dvbsChannel.NetworkId);
    tuneRequest.put_SID(dvbsChannel.ServiceId);
    tuneRequest.put_TSID(dvbsChannel.TransportId);
    locator.put_CarrierFrequency((int)dvbsChannel.Frequency);
    dvbsLocator.put_SymbolRate(dvbsChannel.SymbolRate);
    dvbsLocator.put_SignalPolarisation(dvbsChannel.Polarisation);
    dvbsLocator.SignalPilot = dvbsChannel.Pilot;
    dvbsLocator.SignalRollOff = dvbsChannel.Rolloff;


    In TvCardDvbBase.cs LNB_Souce has to be set to LNB_Source.NOT_SET, the copied LNB_Source Reference has to be removed from IDVBNetworkProvider.cs

    and Tuner.cs should be updated eg. to this Version:
    https://github.com/pauldotknopf/DirectShow.NET/blob/master/src/Tuner.cs
    I have only taken IDVBSLocator2 and definitions belonging to IDVBSLocator2 from there.

    Our current tuners also need to know if the transponders are DVB-S or DVB-S2
    <quote>
    Can you provide an SDK for Sundtek tuner support (DiSEqC, IR remote, MAC address, DVB-S2 tuning etc.)?
    </quote>


    We are trying to stick with the Microsoft API, Microsoft "already" provides an API for Diseqc, for DVB-S2 Tuning we're checking if Pilot / Rolloff is set. We only need to know if the transponder is a DVB-S or DVB-S2 transponder (and the only indicator I'm aware of is if Pilot or Rolloff is set)

    A mac address is currently not stored on the device, although the Serialnumber could be used for that if needed.

    Our units are completely different than the Hauppauge units, we use to design them inhouse in Berlin nowadays.
     
    Last edited:

    mm1352000

    Retired Team Member
  • Premium Supporter
  • September 1, 2008
    21,577
    8,224
    Home Country
    New Zealand New Zealand
    Can you update TvCardDVBS.cs and use IDVBSLocator2?
    No, because IDVBSLocator2 is only available on Windows 7 and newer, and we still support Windows Vista.

    If you need us to set the pilot and roll-off factor for your tuners then please let us know how we can do it in a way which is compatible with Windows Vista.

    Our current tuners also need to know if the transponders are DVB-S or DVB-S2
    Okay, so how do we pass that information?

    As I said in my previous reply, other tuner vendors are using the modulation value to determine whether the transponder is DVB-S2 or DVB-S.
    https://msdn.microsoft.com/en-us/library/windows/desktop/dd695089(v=vs.85).aspx

    For DVB-S, default is to set modulation to BDA_MOD_NOT_SET.
    For DVB-S2 QPSK, default is to set modulation to BDA_MOD_QPSK.
    For DVB-S2 8PSK, default is to set modulation to BDA_MOD_8PSK.

    We are trying to stick with the Microsoft API
    (y)

    Microsoft "already" provides an API for Diseqc...
    I guess you're talking about IBDA_DiseqCommand?
    https://msdn.microsoft.com/en-us/library/windows/desktop/dd693308(v=vs.85).aspx

    Does the driver support raw commands (put_DiseqSendCommand)?
    Does the driver support tone/data burst AKA simple DiSEqC (put_DiseqUseToneBurst)?

    This interface is only available on Windows 7 and newer. How is DiSEqC support provided for Windows Vista?

    ...and what about Unicable?
    Is there a way to control the tuner output voltage (13V / 18V / off) without sending a tune request?
    ...or is Unicable support included in the driver, with a configuration program supplied?

    ...for DVB-S2 Tuning we're checking if Pilot / Rolloff is set. We only need to know if the transponder is a DVB-S or DVB-S2 transponder (and the only indicator I'm aware of is if Pilot or Rolloff is set)
    Okay, I see. As mentioned above, all other vendors are looking at the modulation value. Can you do the same?

    What about advanced DVB-S2 support?
    Do any of your tuners support 16 APSK, 32 APSK, MIS (multiple input streams) etc.?
    If yes, how do we use those features?

    A mac address is currently not stored on the device, although the Serialnumber could be used for that if needed.
    Okay. How do we access the serial number?


    Other questions (applies to all your tuners, including DVB-C, DVB-T/T2, analog, FM etc.):
    1. How do we enable IR remote control support and receive IR commands from the remote control?
    2. How do we get the list of available DVB-T2 physical layer pipes (PLP), and then select the target PLP?

    Sorry for so many questions. I was hoping you'd be able to provide an SDK which includes all these details. ;)
     

    Sundtek

    Portal Member
    July 12, 2016
    8
    1
    Home Country
    Germany Germany
    thanks for your feedback, by the way I'm also online in IRC/Freenode #mediaportal (in case you're using IRC)

    Can you update TvCardDVBS.cs and use IDVBSLocator2?
    No, because IDVBSLocator2 is only available on Windows 7 and newer, and we still support Windows Vista.

    If you need us to set the pilot and roll-off factor for your tuners then please let us know how we can do it in a way which is compatible with Windows Vista.

    then just make it depending on Win7+ the problem is IDVBSLocator is just setting the Rolloff factor and Pilot to -1 since we support this interface it just messes up the functionality.

    Our current tuners also need to know if the transponders are DVB-S or DVB-S2
    Okay, so how do we pass that information?

    As I said in my previous reply, other tuner vendors are using the modulation value to determine whether the transponder is DVB-S2 or DVB-S.
    https://msdn.microsoft.com/en-us/library/windows/desktop/dd695089(v=vs.85).aspx

    For DVB-S, default is to set modulation to BDA_MOD_NOT_SET.
    For DVB-S2 QPSK, default is to set modulation to BDA_MOD_QPSK.
    For DVB-S2 8PSK, default is to set modulation to BDA_MOD_8PSK.

    I wonder how compatible that is since DVB-S channels are also QPSK, that might more or less break DVB-S with other applications?
    I was talking with other developers (DVBViewer and SichboPVR) they're using the Pilot / Rolloff settings for determining DVB-S/S2 transponders - can you also do that?

    We are trying to stick with the Microsoft API
    (y)

    Microsoft "already" provides an API for Diseqc...
    I guess you're talking about IBDA_DiseqCommand?
    https://msdn.microsoft.com/en-us/library/windows/desktop/dd693308(v=vs.85).aspx

    Does the driver support raw commands (put_DiseqSendCommand)?
    Does the driver support tone/data burst AKA simple DiSEqC (put_DiseqUseToneBurst)?

    This interface is only available on Windows 7 and newer. How is DiSEqC support provided for Windows Vista?

    I have no problem with not supporting Vista anymore, at the moment DVB-S2 doesn't work anyway
    Practically seen http://sichbopvr.com/ there's not a single person using it with vista, I think our XP and Vista customers just use DVBViewer with it and use the simple functionality.

    ...and what about Unicable?
    Is there a way to control the tuner output voltage (13V / 18V / off) without sending a tune request?
    ...or is Unicable support included in the driver, with a configuration program supplied?

    Unicable is handled on driver level, there's a support tool available which can set up the internal Unicable settings.

    ...for DVB-S2 Tuning we're checking if Pilot / Rolloff is set. We only need to know if the transponder is a DVB-S or DVB-S2 transponder (and the only indicator I'm aware of is if Pilot or Rolloff is set)
    Okay, I see. As mentioned above, all other vendors are looking at the modulation value. Can you do the same?

    What about advanced DVB-S2 support?
    Do any of your tuners support 16 APSK, 32 APSK, MIS (multiple input streams) etc.?
    If yes, how do we use those features?

    APSK is detected automatically, MIS is not supported by the small DVB-S/S2 Sticks.

    A mac address is currently not stored on the device, although the Serialnumber could be used for that if needed.
    Okay. How do we access the serial number?

    I will check and post it later, I think you can just get it during the BDA Enumeration as far as I remember.

    Other questions (applies to all your tuners, including DVB-C, DVB-T/T2, analog, FM etc.):
    1. How do we enable IR remote control support and receive IR commands from the remote control?
    2. How do we get the list of available DVB-T2 physical layer pipes (PLP), and then select the target PLP?

    Sorry for so many questions. I was hoping you'd be able to provide an SDK which includes all these details. ;)

    IR is currently supported via a second driver which does keyboard emulation.
    The PLP is set to Auto in the driver at the moment, if we ever change that then we'll probably use the IBDA_DigitalDemodulator3 settings for that.
    We don't have an SDK since we just try to stick with the Microsoft API (and that has been fine for us so far).

    We're specialized in Linux and Mac, Windows support has only be done because some customers demanded it.

    However if you really want to implement everything in a custom way we can also add an interface for that but I'm concerned that eg. Pilot/Rolloff will collide with the native support MS offers - and which we are using - since Win7.

    That's the DVB-S/S2 tuner which everything is about:
    SkyTV6_small.jpg
     
    Last edited:

    mm1352000

    Retired Team Member
  • Premium Supporter
  • September 1, 2008
    21,577
    8,224
    Home Country
    New Zealand New Zealand
    Thanks for the answers. :)

    then just make it depending on Win7+
    We'd prefer to have all features working for all supported operating systems.

    the problem is IDVBSLocator is just setting the Rolloff factor and Pilot to -1 since we support this interface it just messes up the functionality.
    Actually -1 is the default value for all tuning parameters, so it just means that the value has not been set. It's not coming from IDVBSLocator.

    I wonder how compatible that is since DVB-S channels are also QPSK, that might more or less break DVB-S with other applications?
    Like I said, all other vendors are using the modulation setting. They don't all use the same BDA_MOD_NOT_SET/BDA_MOD_QPSK/BDA_MOD_8PSK values. Some use BDA_MOD_QPSK for DVB-S and BDA_MOD_NBC_QPSK/BDA_MOD_NBC_8PSK for DVB-S2. Some even use BDA_MOD_8VSB for DVB-S2. We can use any setting/mapping so that it's possible to maintain compatibility.

    I was talking with other developers (DVBViewer and SichboPVR) they're using the Pilot / Rolloff settings for determining DVB-S/S2 transponders - can you also do that?
    I don't think it's possible unless we use IDVBSLocator2, but as previously mentioned we'd prefer to have a solution which will work in all cases including Vista.

    That's the DVB-S/S2 tuner which everything is about
    So small! :)

    A couple of questions were missed...
    Does the driver support raw commands (put_DiseqSendCommand)?
    Does the driver support tone/data burst AKA simple DiSEqC (put_DiseqUseToneBurst)?

    ...and one other question...
    I see that some of your [older?] products support DAB/DAB+ radio. How do we add support for that?
     

    Sundtek

    Portal Member
    July 12, 2016
    8
    1
    Home Country
    Germany Germany
    Thanks for the answers. :)

    then just make it depending on Win7+
    We'd prefer to have all features working for all supported operating systems.

    the problem is IDVBSLocator is just setting the Rolloff factor and Pilot to -1 since we support this interface it just messes up the functionality.
    Actually -1 is the default value for all tuning parameters, so it just means that the value has not been set. It's not coming from IDVBSLocator.

    if I change IDVBSLocator to IDVBSLocator2 and set Pilot/Rolloff it is set correctly (that's what I see in our driver)

    I wonder how compatible that is since DVB-S channels are also QPSK, that might more or less break DVB-S with other applications?
    Like I said, all other vendors are using the modulation setting. They don't all use the same BDA_MOD_NOT_SET/BDA_MOD_QPSK/BDA_MOD_8PSK values. Some use BDA_MOD_QPSK for DVB-S and BDA_MOD_NBC_QPSK/BDA_MOD_NBC_8PSK for DVB-S2. Some even use BDA_MOD_8VSB for DVB-S2. We can use any setting/mapping so that it's possible to maintain compatibility.

    ok thanks for that hint, I will add NBC_QPSK and NBC_8PSK for S2, we only use BDA_MOD_8PSK for S2 right now.
    Is NBC_XXX correctly defined in the DVB-S transponder lists?
    That might certainly help to identify S2 transponders.

    I was talking with other developers (DVBViewer and SichboPVR) they're using the Pilot / Rolloff settings for determining DVB-S/S2 transponders - can you also do that?
    I don't think it's possible unless we use IDVBSLocator2, but as previously mentioned we'd prefer to have a solution which will work in all cases including Vista.

    (I have written the previous one after this block, certainly NBC is an option!)
    I would really prefer to use IDVBSLocator2 (and forget everything below Windows 7) we aren't that big and don't really want to put too much work into the Windows driver. Adding a proprietary interface would also mean that we have to get in touch with the other Windows Applications / Developers which would take more time than we have at the moment.
    We need our limited resources for our other products at the moment.

    That's the DVB-S/S2 tuner which everything is about
    So small! :)

    A couple of questions were missed...
    Does the driver support raw commands (put_DiseqSendCommand)?
    Does the driver support tone/data burst AKA simple DiSEqC (put_DiseqUseToneBurst)?

    ...and one other question...
    I see that some of your [older?] products support DAB/DAB+ radio. How do we add support for that?

    yes the driver supports put_DiseqcSendCommand and put_DiseqcUseToneBurst.

    We cancelled the old (software defined) DAB/DAB+ product since it didn't fit our product line, there will be a new DAB/DAB+ unit coming up with perfect audio quality, we can give you some more information once we're there. But as mentioned our main target is Linux (ARM, MIPS, PPC, SH4, X86/32/64) and Mac.
    The new unit will use PCM audio and just have a simple programming interface (no Software Defined Radio - which was the killer for the old product since it did not work on low end embedded systems).

    By the way I saw that you are in the chat (just need to wait a bit longer I'm not constantly monitoring it)
     
    Last edited:

    Sundtek

    Portal Member
    July 12, 2016
    8
    1
    Home Country
    Germany Germany
    I have changed the driver and implemented NBC_QPSK / NBC_8PSK to switch to DVB-S2

    I guess mediaportal still has to be changed to use that for our devices?

    Our USB Vendor ID is 0x2659;
    The Serialnumbers for the Tuner usually start with U... for USB, or M... for MiniPCIe
    In our testapp we usually parse the serialnumber from the system enumeration.
    It's safe to hardwire NBC_* to our USB Vendor ID so we'll just use that for the future.
     

    mm1352000

    Retired Team Member
  • Premium Supporter
  • September 1, 2008
    21,577
    8,224
    Home Country
    New Zealand New Zealand
    I have changed the driver and implemented NBC_QPSK / NBC_8PSK to switch to DVB-S2
    Great, thanks. :)

    I guess mediaportal still has to be changed to use that for our devices?
    Yes it does.

    The Serialnumbers for the Tuner usually start with U... for USB, or M... for MiniPCIe
    In our testapp we usually parse the serialnumber from the system enumeration.
    I don't understand this part. Can you please give an example?
     

    Users who are viewing this thread

    Top Bottom