mrdude
09-02-2011, 11:29 PM
Well guys I have had this box for a little while now but have just finaly gotten around to setting it up.
I have added a 2TB hard drive and recording and timeshifting works fine as does the playback of media files.
I couldn't get the box to work properly with my old stab hh mount motor so I went and bought a new usals cryptik motor - this works much better tbh but I am still having problems with it.
I am running the blackhole image and have downloaded and installed my channels tha are set for a motorised system - they work sort off but not properly.
If I switch from a channel say on 28east to a channel on another sat I first need to select, menu+setup+service searching+tuner configuration+tuner a+configuration mode+ok ............ then yes to zap back to service before tuner setup, before the motor turns to the correct sat. I am sure this is a bug in the software as it's the same using the pli image as well.
Perhaps someone has an idea of what could be wrong as I have been messing about trying to sort this for a few days now.
TBH I think it's a problem with the image/s as when you select a channel it doesn't zapto the new sat.
edit - there is a fault with the image on compliling - sec.cpp - (fixed rotor turning without inputpower measurement)
The latest pli image has this fixed, here is what's changed
--- a/lib/dvb/sec.cpp
+++ b/lib/dvb/sec.cpp
@@ -212,7 +212,7 @@ int eDVBSatelliteEquipmentControl::ca nTune(const eDVBFrontendParametersSatellite
eSecDebugNoSimulate("ret5 %d", ret);
- if (ret && lnb_param.SatCR_idx == -1)
+ if (ret && !is_unicable)
{
int lof = sat.frequency > lnb_param.m_lof_threshold ?
lnb_param.m_lof_hi : lnb_param.m_lof_lo;
@@ -300,11 +300,6 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
if ( sit != lnb_param.m_satellites.end())
{
eSecCommandList sec_sequence;
-
- lnb_param.guard_offset = 0; //HACK
-
- frontend.setData(eDVBFrontend::SA TCR, lnb_param.SatCR_idx);
-
eDVBSatelliteSwitchParameters &sw_param = sit->second;
bool doSetFrontend = true;
bool doSetVoltageToneFrontend = true;
@@ -327,6 +322,11 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
eDVBSatelliteDiseqcParameters::t_ diseqc_mode diseqc_mode = di_param.m_diseqc_mode;
eDVBSatelliteSwitchParameters::t_ voltage_mode voltage_mode = sw_param.m_voltage_mode;
bool diseqc13V = voltage_mode == eDVBSatelliteSwitchParameters::HV _13;
+ bool is_unicable = lnb_param.SatCR_idx != -1;
+
+ lnb_param.guard_offset = 0; //HACK
+
+ frontend.setData(eDVBFrontend::SA TCR, lnb_param.SatCR_idx);
if (diseqc13V)
voltage_mode = eDVBSatelliteSwitchParameters::HV ;
@@ -371,13 +371,10 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
int lof = (band&1)?lnb_param.m_lof_hi:lnb_param.m _lof_lo;
- int local=0;
-
-
- if(lnb_param.SatCR_idx == -1)
+ if(!is_unicable)
{
- // calc Frequency
- local = abs(sat.frequency
+ // calc Frequency
+ int local= abs(sat.frequency
- lof);
parm.FREQUENCY = ((((local * 2) / 125) + 1) / 2) * 125;
frontend.setData(eDVBFrontend::FR EQ_OFFSET, sat.frequency - parm.FREQUENCY);
@@ -693,7 +690,7 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
if ( RotorCmd != -1 && RotorCmd != lastRotorCmd )
{
eSecCommand::pair compare;
- if (!send_mask && lnb_param.SatCR_idx == -1)
+ if (!send_mask && !is_unicable)
{
compare.steps = +3;
compare.tone = iDVBFrontend::toneOff;
@@ -747,10 +744,10 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
diseqc.data[3] = RotorCmd;
diseqc.data[4] = 0x00;
}
-// if(lnb_param.SatCR_idx == -1)
+// if(!is_unicable)
{
int mrt = m_params[MOTOR_RUNNING_TIMEOUT]; // in seconds!
- if ( rotor_param.m_inputpower_paramete rs.m_use || lnb_param.SatCR_idx == -1)
+ if ( rotor_param.m_inputpower_paramete rs.m_use && !is_unicable)
{ // use measure rotor input power to detect rotor state
bool turn_fast = need_turn_fast(rotor_param.m_inpu tpower_parameters.m_turning_speed );
eSecCommand::rotor cmd;
@@ -882,7 +879,7 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
sec_fe->setData(eDVBFrontend::NEW_UCSW, ucsw);
sec_fe->setData(eDVBFrontend::NEW_TONEBUR ST, di_param.m_toneburst_param);
- if ((doSetVoltageToneFrontend) && (lnb_param.SatCR_idx == -1))
+ if (doSetVoltageToneFrontend && !is_unicable)
{
eSecCommand::pair compare;
compare.voltage = voltage;
@@ -898,7 +895,7 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_C URRENT_SWITCHPARMS) );
- if(lnb_param.SatCR_idx != -1)
+ if(is_unicable)
{
// check if voltage is disabled
eSecCommand::pair compare;
I have added a 2TB hard drive and recording and timeshifting works fine as does the playback of media files.
I couldn't get the box to work properly with my old stab hh mount motor so I went and bought a new usals cryptik motor - this works much better tbh but I am still having problems with it.
I am running the blackhole image and have downloaded and installed my channels tha are set for a motorised system - they work sort off but not properly.
If I switch from a channel say on 28east to a channel on another sat I first need to select, menu+setup+service searching+tuner configuration+tuner a+configuration mode+ok ............ then yes to zap back to service before tuner setup, before the motor turns to the correct sat. I am sure this is a bug in the software as it's the same using the pli image as well.
Perhaps someone has an idea of what could be wrong as I have been messing about trying to sort this for a few days now.
TBH I think it's a problem with the image/s as when you select a channel it doesn't zapto the new sat.
edit - there is a fault with the image on compliling - sec.cpp - (fixed rotor turning without inputpower measurement)
The latest pli image has this fixed, here is what's changed
--- a/lib/dvb/sec.cpp
+++ b/lib/dvb/sec.cpp
@@ -212,7 +212,7 @@ int eDVBSatelliteEquipmentControl::ca nTune(const eDVBFrontendParametersSatellite
eSecDebugNoSimulate("ret5 %d", ret);
- if (ret && lnb_param.SatCR_idx == -1)
+ if (ret && !is_unicable)
{
int lof = sat.frequency > lnb_param.m_lof_threshold ?
lnb_param.m_lof_hi : lnb_param.m_lof_lo;
@@ -300,11 +300,6 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
if ( sit != lnb_param.m_satellites.end())
{
eSecCommandList sec_sequence;
-
- lnb_param.guard_offset = 0; //HACK
-
- frontend.setData(eDVBFrontend::SA TCR, lnb_param.SatCR_idx);
-
eDVBSatelliteSwitchParameters &sw_param = sit->second;
bool doSetFrontend = true;
bool doSetVoltageToneFrontend = true;
@@ -327,6 +322,11 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
eDVBSatelliteDiseqcParameters::t_ diseqc_mode diseqc_mode = di_param.m_diseqc_mode;
eDVBSatelliteSwitchParameters::t_ voltage_mode voltage_mode = sw_param.m_voltage_mode;
bool diseqc13V = voltage_mode == eDVBSatelliteSwitchParameters::HV _13;
+ bool is_unicable = lnb_param.SatCR_idx != -1;
+
+ lnb_param.guard_offset = 0; //HACK
+
+ frontend.setData(eDVBFrontend::SA TCR, lnb_param.SatCR_idx);
if (diseqc13V)
voltage_mode = eDVBSatelliteSwitchParameters::HV ;
@@ -371,13 +371,10 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
int lof = (band&1)?lnb_param.m_lof_hi:lnb_param.m _lof_lo;
- int local=0;
-
-
- if(lnb_param.SatCR_idx == -1)
+ if(!is_unicable)
{
- // calc Frequency
- local = abs(sat.frequency
+ // calc Frequency
+ int local= abs(sat.frequency
- lof);
parm.FREQUENCY = ((((local * 2) / 125) + 1) / 2) * 125;
frontend.setData(eDVBFrontend::FR EQ_OFFSET, sat.frequency - parm.FREQUENCY);
@@ -693,7 +690,7 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
if ( RotorCmd != -1 && RotorCmd != lastRotorCmd )
{
eSecCommand::pair compare;
- if (!send_mask && lnb_param.SatCR_idx == -1)
+ if (!send_mask && !is_unicable)
{
compare.steps = +3;
compare.tone = iDVBFrontend::toneOff;
@@ -747,10 +744,10 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
diseqc.data[3] = RotorCmd;
diseqc.data[4] = 0x00;
}
-// if(lnb_param.SatCR_idx == -1)
+// if(!is_unicable)
{
int mrt = m_params[MOTOR_RUNNING_TIMEOUT]; // in seconds!
- if ( rotor_param.m_inputpower_paramete rs.m_use || lnb_param.SatCR_idx == -1)
+ if ( rotor_param.m_inputpower_paramete rs.m_use && !is_unicable)
{ // use measure rotor input power to detect rotor state
bool turn_fast = need_turn_fast(rotor_param.m_inpu tpower_parameters.m_turning_speed );
eSecCommand::rotor cmd;
@@ -882,7 +879,7 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
sec_fe->setData(eDVBFrontend::NEW_UCSW, ucsw);
sec_fe->setData(eDVBFrontend::NEW_TONEBUR ST, di_param.m_toneburst_param);
- if ((doSetVoltageToneFrontend) && (lnb_param.SatCR_idx == -1))
+ if (doSetVoltageToneFrontend && !is_unicable)
{
eSecCommand::pair compare;
compare.voltage = voltage;
@@ -898,7 +895,7 @@ RESULT eDVBSatelliteEquipmentControl::pr epare(iDVBFrontend &frontend, FRONTENDPA
sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_C URRENT_SWITCHPARMS) );
- if(lnb_param.SatCR_idx != -1)
+ if(is_unicable)
{
// check if voltage is disabled
eSecCommand::pair compare;