Kan iemand mij helpen met het volgende of in elk geval commentaar geven of mijn aannames kloppen.
Ik ontvang 4 satposities (13E,19.2E,23.5E,28.2E) elke positie heeft een Inverto unicable 2 LNB.
Dit alles is met combiners samengevoegd op 1 kabel (zie schema).
Dit lijkt ook allemaal prima te werken, toch had ik af en toe opnames van 0Bytes en soms een paar andere
onverklaarbare dingen.
Nu heb ik alles een rustig zitten analyzeren, en kom ik eigenlijk tot de conclusie dat ik het volgende fout doe:
Elke tuner heb ik ingesteld als Advanced SCR (Unicable/JESS) zie screenshot.
Tot nu toe had ik voor elke sat positie binnen 1 tuner dezelfde Userband gebruikt.
Maar daar lijkt nu het probleem te zitten, nu als ik bijvoorbeeld overal userband 15 gebruik.
En ik schakel naar een zender op 13E, dan zal de 13E LNB de gewenste transponder moduleren naar de userband 15 en dus op mijn
ontvanger uitkomen.
Als ik daarna naar een zender op bijv 28.2E ga, zal de 28.2E LNB de gewenste transponder moduleren naar de userband 15.
En hier zit dus het probleem nu heb ik dus 2 LNB's die beide een signaal op userband 15 zetten en dus elkaar in de weg zitten.
De als ik niet meer naar een specifieke zender afgestemd ben wordt er volgens mij de userband niet uitgezet.
In de engina2 source code kan ik alleen maar vinden dat userbands aangezet worden:
case(SatCR_format_jess):
{
// JESS ODU_channel_change command
//
// data[0] framing: 0x70
// data[1] data[1][7..3]: ub, data[1][2..0:] T [10..8]
// data[2] data[2][7..0]: T [7..0]
// data[3] data[3][7..2]: position, data[3][1]: polarity, data[3][0]: band
unsigned int ub = lnb_param.SatCR_idx & 0x1f;
unsigned int frequency_mhz = sat.frequency / 1000;
unsigned int lof_mhz = lof / 1000;
unsigned int encoded_frequency_T = frequency_mhz - lof_mhz - 100;
unsigned int mode = band & 0x03;
unsigned int position = (lnb_param.SatCR_position - 1) & 0x3f;
diseqc.len = 4;
diseqc.data[0] = 0x70;
diseqc.data[1] = (unsigned char)((ub << 3) | ((encoded_frequency_T & 0x700) >> 8));
diseqc.data[2] = (unsigned char)(encoded_frequency_T & 0xff);
diseqc.data[3] = (unsigned char)((position << 2) | mode);
frontend.setData(eDVBFrontend::SATCR, lnb_param.SatCR_idx);
frontend.setData(eDVBFrontend::DICTION, SatCR_format_jess);
eDebug("**** Tuning JESS");
eDebug("**** frequency_mhz: %u", frequency_mhz);
eDebug("**** lo_mhz: %u", lof_mhz);
eDebug("**** T: %u", encoded_frequency_T);
eDebug("**** position: %u", position);
eDebug("**** ub: %u", ub);
eDebug("**** mode: %u", mode);
eDebug("**** JESS: %02x %02x %02x %02x", diseqc.data[0], diseqc.data[1], diseqc.data[2], diseqc.data[3]);
break;
}
Om de userband uit te zetten zou dus het commando gestuurd moeten worden met bit3..0 van data[1] als 0.
dit volgende de JESS standard:
70h is the tuning command
UB contains the userband-ID (1..32). Bit .3 is LSB
T contains the frequency as a 11 bit value, Data 2 Bit .0 is LSB. It is the frequency, the tuner of
the receiver would tune to when connected to a standard LNB, minus 100MHz. The maximum
possible tuning frequency with this format is 2147MHz.
There are special "frequencies" defined:
"0" turns off the UB
"1" switches on a tone at the centre of the UB
"2" switches on a tone at the centre plus 20MHz
"3" switches on all tone beacons.
De oplossing die ik nu heb is voor elke sat positie binnen 1 tuner een andere userband te gebruiken, maar daardoor kom ik userbandsvoor mijn 3 ontvangers te kort.
De VuZero4k zou 4 userbands nodig hebben en de VuSolo4K en VuUltimo4k elk 32 userbands.
Als de userbands wel uitgeschakeld zouden worden, zou ik meer dan genoeg userbands hebben.
Hopenlijk begrijpen jullie mijn verhaal.