diff --git a/CHANGELOG.md b/CHANGELOG.md
index 60f4a102a49f0953ee1dcefa54323d9c6cd26ac9..3d7336631296d38694be9ef8d2f707c8ee2e3e36 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -68,3 +68,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/
 ### Fixed
     issue #452 - The Total Power component erroneously assigned a timestamp to the samples in case more samples were needed to reach total integration time
     issue #473 - The SRT AS USDs now retry 5 times to communicate with the hardware before setting their state to unavailable
+
+## [discos1.0.4] 03-02-2020
+### Added
+    issue #505 - CALMUX integrated and tested into the SRT production line (it has been successfully tested with DBBC and DFB backends)
+### Changed
+    issue #477 - removed the SecureArea from some AntennaBoss methods
+    issue #476 - replaced all occurrencies of DPI/2 with the defined variable DPIBY2, this should improve precision
+    issue #489 - new focus curve for SRT X band receiver
+    issue #506 - each SRT local oscillator now has its dedicated container
+    issue #510 - fixed SRT TotalPower CDB configuration in order to use the correct IP address
+### Fixed
+    issue #433 - limited refraction correction values to a meaningful range in order to avoid flooding the jlog with warning messages whenever the elevation is close to 90 degrees
+    issue #502 - removed last service daemon reference from Manager.xml io SRT production line
diff --git a/Common/Libraries/IRALibrary/src/IRATools.cpp b/Common/Libraries/IRALibrary/src/IRATools.cpp
index f73c99b39b051d51e990dbbfc1ff0dbea7d1ae26..e4f11d8972bdb9eca1d1f5875a98bcbc1c3ed82d 100644
--- a/Common/Libraries/IRALibrary/src/IRATools.cpp
+++ b/Common/Libraries/IRALibrary/src/IRATools.cpp
@@ -841,7 +841,7 @@ bool CIRATools::latitudeToRad(const IRA::CString& lat,double& rad,bool complete,
 		res=sexagesimalAngleToRad(lat,rad,complete,delimiter);
 	}
 	if (complete) {
-		if ((rad<-(DPI/2)) || (rad>(DPI/2))) return false;
+		if (rad<-DPIBY2 || rad>DPIBY2) return false;
 		else return res;
 	}
 	else return res;
@@ -915,7 +915,7 @@ bool CIRATools::elevationToRad(const IRA::CString& el,double& rad,bool complete)
 {
 	bool res=angleToRad(el,rad);
 	if (complete) {
-		if ((rad<0) || (rad>DPI/2)) return false;
+		if (rad<0 || rad>DPIBY2) return false;
 		else return res;
 	}
 	else return res;
diff --git a/Common/Misc/UserTools/src/SourceTrack.cpp b/Common/Misc/UserTools/src/SourceTrack.cpp
index 7323c2642ab4351cbc52286a992bac999f4ebd4d..3c0c98a634f99358447af2adae7430c6cbcd9307 100644
--- a/Common/Misc/UserTools/src/SourceTrack.cpp
+++ b/Common/Misc/UserTools/src/SourceTrack.cpp
@@ -202,7 +202,7 @@ int main(int argc, char *argv[])
 	_CP_ printf("Horizontal coordinates:\tazimuth %.8lf°, elevation %.8lf°\n",az*DR2D,el*DR2D);
 
 
-	double obsZenithDistance=(DPI/2.0)-el;
+	double obsZenithDistance=DPIBY2-el;
 	double corZenithDistance;
 	double tdk = 13 + 273.0; // temperature
 	double wl = 36000.0;
diff --git a/Common/Servers/AntennaBoss/include/AntennaBossImpl.h b/Common/Servers/AntennaBoss/include/AntennaBossImpl.h
index c7f561bce51603bd9e5847f392dffdd3dbb3a8b0..1a22972dcc4f69788f7be3dd4ddeb38b5e57f9f4 100644
--- a/Common/Servers/AntennaBoss/include/AntennaBossImpl.h
+++ b/Common/Servers/AntennaBoss/include/AntennaBossImpl.h
@@ -673,6 +673,7 @@ private:
 	SmartPropertyPointer<ROdouble> m_pdeclinationOffset;
 	SmartPropertyPointer<ROdouble> m_plongitudeOffset;
 	SmartPropertyPointer<ROdouble> m_platitudeOffset;
+	CBossCore *m_boss;
 	IRA::CSecureArea<CBossCore> *m_core;
 	CWorkingThread *m_workingThread;
 	CWatchingThread *m_watchingThread;
diff --git a/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp b/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp
index f40a15fd01f67e128c66721ed19c9b0a60bf7f2b..54d5dc27e252b38f0af1dd0ffca66578ea2dd91e 100644
--- a/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp
+++ b/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp
@@ -56,6 +56,7 @@ AntennaBossImpl::AntennaBossImpl(const ACE_CString &CompName,maci::ContainerServ
 	m_pdeclinationOffset(this),
 	m_plongitudeOffset(this),
 	m_platitudeOffset(this),
+	m_boss(NULL),
 	m_core(NULL)
 {	
 	AUTO_TRACE("AntennaBossImpl::AntennaBossImpl()");
@@ -71,7 +72,6 @@ AntennaBossImpl::~AntennaBossImpl()
 void AntennaBossImpl::initialize() throw (ACSErr::ACSbaseExImpl)
 {
 	AUTO_TRACE("AntennaBossImpl::initialize()");
-	CBossCore *boss;
 	ACS_LOG(LM_FULL_INFO,"AntennaBossImpl::initialize()",(LM_INFO,"AntennaBoss::COMPSTATE_INITIALIZING"));
 	try {
 		m_config.init(getContainerServices());    //throw CDBAcessExImpl;
@@ -81,8 +81,8 @@ void AntennaBossImpl::initialize() throw (ACSErr::ACSbaseExImpl)
 		throw _dummy;
 	}
 	try {
-		boss=(CBossCore *)new CBossCore(getContainerServices(),&m_config,this);
-		m_core=new IRA::CSecureArea<CBossCore>(boss);
+		m_boss=(CBossCore *)new CBossCore(getContainerServices(),&m_config,this);
+		m_core=new IRA::CSecureArea<CBossCore>(m_boss);
 		m_ptarget=new ROstring(getContainerServices()->getName()+":target",getComponent(),new DevIOTargetName(m_core),true);
 		m_prawAzimuth=new ROdouble(getContainerServices()->getName()+":rawAzimuth",getComponent(),
 				new DevIORawHorizontal(m_core,DevIORawHorizontal::AZIMUTH),true);
@@ -143,16 +143,16 @@ void AntennaBossImpl::initialize() throw (ACSErr::ACSbaseExImpl)
 				new DevIOOffsets(m_core,DevIOOffsets::LATITUDEOFF),true);
 		
 		// create the parser for command line execution
-		m_parser =  new SimpleParser::CParser<CBossCore>(boss,10);
+		m_parser =  new SimpleParser::CParser<CBossCore>(m_boss,10);
 	}
 	catch (std::bad_alloc& ex) {
 		_EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"AntennaBossImpl::initialize()");
 		throw dummy;
 	}
-	boss->initialize(); //could throw (ComponentErrors::UnexpectedExImpl)
+	m_boss->initialize(); //could throw (ComponentErrors::UnexpectedExImpl)
 	try {
 		m_watchingThread=getContainerServices()->getThreadManager()->create<CWatchingThread,CBossCore*>
-		  ("BOSSWATCHER",boss);
+		  ("BOSSWATCHER",m_boss);
 		m_workingThread=getContainerServices()->getThreadManager()->create<CWorkingThread,CSecureArea<CBossCore> *>
 		  ("BOSSWORKER",m_core);
 	}
@@ -164,30 +164,30 @@ void AntennaBossImpl::initialize() throw (ACSErr::ACSbaseExImpl)
 		_THROW_EXCPT(ComponentErrors::UnexpectedExImpl,"AntennaBossImpl::initialize()");
 	}
 	// inform the boss core of the thread in charge of trajectory update
-	boss->setWorkingThread(m_workingThread);
+	m_boss->setWorkingThread(m_workingThread);
 	// configure the parser.....
-	m_parser->add("antennaDisable",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::disable),0);
-	m_parser->add("antennaEnable",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::enable),0);
-	m_parser->add("antennaCorrectionOn",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::enableCorrection),0);
-	m_parser->add("antennaCorrectionOff",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::disableCorrection),0);
-	m_parser->add("antennaPark",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::stow),0);
-	m_parser->add("antennaStop",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::stop),0);
-	m_parser->add("antennaAzEl",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::setPreset),0);
-	m_parser->add("antennaTrack",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::setProgramTrack),0);
-	m_parser->add("antennaUnstow",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::unstow),0);
-	m_parser->add("antennaSetup",new function1<CBossCore,non_constant,void_type,I<string_type> >(boss,&CBossCore::setup),1);
-	m_parser->add("preset",new function2<CBossCore,non_constant,void_type,I<angle_type<rad> >,I<angle_type<rad> > >(boss,&CBossCore::preset),2);
-	//m_parser->add("vlsr",new function1<CBossCore,non_constant,void_type,I<double_type> >(boss,&CBossCore::setVlsr),1);
-	m_parser->add("fwhm",new function2<CBossCore,non_constant,void_type,I<angle_type<rad> >, I<double_type> >(boss,&CBossCore::setFWHM),2);
-	m_parser->add("azelOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setHorizontalOffsets),2);
-	m_parser->add("radecOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setEquatorialOffsets),2);
-	m_parser->add("lonlatOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setGalacticOffsets),2);
-	//m_parser->add("skydipOTF",new function3<CBossCore,non_constant,time_type,I<elevation_type<rad,false> >,I<elevation_type<rad,false> >,I<interval_type> >(boss,&CBossCore::skydip),3);
-	m_parser->add("antennaReset",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::resetFailures),0);
-	//m_parser->add("goOff",new function2<CBossCore,non_constant,void_type,I<enum_type<AntennaFrame2String,Antenna::TCoordinateFrame > >,I<double_type > >(boss,&CBossCore::goOff),2);
+	m_parser->add("antennaDisable",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::disable),0);
+	m_parser->add("antennaEnable",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::enable),0);
+	m_parser->add("antennaCorrectionOn",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::enableCorrection),0);
+	m_parser->add("antennaCorrectionOff",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::disableCorrection),0);
+	m_parser->add("antennaPark",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::stow),0);
+	m_parser->add("antennaStop",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::stop),0);
+	m_parser->add("antennaAzEl",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::setPreset),0);
+	m_parser->add("antennaTrack",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::setProgramTrack),0);
+	m_parser->add("antennaUnstow",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::unstow),0);
+	m_parser->add("antennaSetup",new function1<CBossCore,non_constant,void_type,I<string_type> >(m_boss,&CBossCore::setup),1);
+	m_parser->add("preset",new function2<CBossCore,non_constant,void_type,I<angle_type<rad> >,I<angle_type<rad> > >(m_boss,&CBossCore::preset),2);
+	//m_parser->add("vlsr",new function1<CBossCore,non_constant,void_type,I<double_type> >(m_boss,&CBossCore::setVlsr),1);
+	m_parser->add("fwhm",new function2<CBossCore,non_constant,void_type,I<angle_type<rad> >, I<double_type> >(m_boss,&CBossCore::setFWHM),2);
+	m_parser->add("azelOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(m_boss,&CBossCore::setHorizontalOffsets),2);
+	m_parser->add("radecOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(m_boss,&CBossCore::setEquatorialOffsets),2);
+	m_parser->add("lonlatOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(m_boss,&CBossCore::setGalacticOffsets),2);
+	//m_parser->add("skydipOTF",new function3<CBossCore,non_constant,time_type,I<elevation_type<rad,false> >,I<elevation_type<rad,false> >,I<interval_type> >(m_boss,&CBossCore::skydip),3);
+	m_parser->add("antennaReset",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::resetFailures),0);
+	//m_parser->add("goOff",new function2<CBossCore,non_constant,void_type,I<enum_type<AntennaFrame2String,Antenna::TCoordinateFrame > >,I<double_type > >(m_boss,&CBossCore::goOff),2);
 	m_parser->add("radialVelocity",new function3<CBossCore,non_constant,void_type,I<  basic_type<double,double_converter,VRad_WildCard> >,
 			I<enum_type<ReferenceFrame_converter,Antenna::TReferenceFrame,ReferenceFrame_WildCard> >,
-			I<enum_type<VradDefinition_converter,Antenna::TVradDefinition,VradDefinition_WildCard> >  >(boss,&CBossCore::radialVelocity),3);
+			I<enum_type<VradDefinition_converter,Antenna::TVradDefinition,VradDefinition_WildCard> >  >(m_boss,&CBossCore::radialVelocity),3);
 	ACS_LOG(LM_FULL_INFO,"AntennaBossImpl::initialize()",(LM_INFO,"COMPSTATE_INITIALIZED"));
 }
 
@@ -543,9 +543,12 @@ void AntennaBossImpl::getRawCoordinates(ACS::Time time,CORBA::Double_out az,CORB
 {	
 	double Az=0.0;
 	double El=0.0;
+	//workaround for strange behavior: this method seems so be called at startup before initialize() completes
+	//this result in a segmentation fault because m_boss is not initialized yet. Has it something to do with the
+	//CoordinateGrabber? it strangely uses the methods that are affected by this problem.
+	if (!m_boss) return;
 	TIMEVALUE requestTime(time);
-	CSecAreaResourceWrapper<CBossCore> resource=m_core->Get("IMPL:getRawcoordinate");
-	resource->getRawHorizontal(requestTime,Az,El);
+	m_boss->getRawHorizontal(requestTime,Az,El);
 	az=(CORBA::Double)Az;
 	el=(CORBA::Double)El;
 }
@@ -562,14 +565,10 @@ void AntennaBossImpl::getObservedEquatorial(ACS::Time time,ACS::TimeInterval dur
 {
 	double Ra=0.0;
 	double Dec=0.0;
-	//workaround for strange behavior: this method seems so be called at startup before initialize() completes
-	//this result in a segmentation fault because m_core is not created yet. Has it something to do with the
-	//CoordinateGrabber? it strangely uses the methods that are affected by this problem.
-	if (!m_core) return;  
+	if (!m_boss) return;
 	TIMEVALUE requestTime(time);
 	TIMEDIFFERENCE requestedDuration(duration);
-	CSecAreaResourceWrapper<CBossCore> resource=m_core->Get("IMPL:getObservedEquatorial");
-	resource->getObservedEquatorial(requestTime,requestedDuration,Ra,Dec);
+	m_boss->getObservedEquatorial(requestTime,requestedDuration,Ra,Dec);
 	ra=(CORBA::Double)Ra;
 	dec=(CORBA::Double)Dec;
 }
@@ -579,11 +578,10 @@ void AntennaBossImpl::getObservedGalactic(ACS::Time time,ACS::TimeInterval durat
 {
 	double Long=0.0;
 	double Lat=0.0;
-	if (!m_core) return;
+	if (!m_boss) return;
 	TIMEVALUE requestTime(time);
 	TIMEDIFFERENCE requestedDuration(duration);
-	CSecAreaResourceWrapper<CBossCore> resource=m_core->Get("IMPL:getObservedgalactic");
-	resource->getObservedGalactic(requestTime,requestedDuration,Long,Lat);
+	m_boss->getObservedGalactic(requestTime,requestedDuration,Long,Lat);
 	longitude=(CORBA::Double)Long;
 	latitude=(CORBA::Double)Lat;
 }
@@ -593,12 +591,10 @@ void AntennaBossImpl::getObservedHorizontal(ACS::Time time,ACS::TimeInterval dur
 {
 	double Az=0.0;
 	double El=0.0;
-	// see GetObservedEquatorial for a comment
-	if (!m_core) return;
+	if (!m_boss) return;
 	TIMEVALUE requestTime(time);
 	TIMEDIFFERENCE requestedDuration(duration);
-	CSecAreaResourceWrapper<CBossCore> resource=m_core->Get("IMPL:getObservedHorizontal");
-	resource->getObservedHorizontal(requestTime,requestedDuration,Az,El);
+	m_boss->getObservedHorizontal(requestTime,requestedDuration,Az,El);
 	az=(CORBA::Double)Az;
 	el=(CORBA::Double)El;
 }
diff --git a/Common/Servers/AntennaBoss/src/BossCore.cpp b/Common/Servers/AntennaBoss/src/BossCore.cpp
index 476b0484dcadd9c560a5d096b41502e97f648d9a..9241a9eed8b612af73e7e19cc2a5930c2f794662 100644
--- a/Common/Servers/AntennaBoss/src/BossCore.cpp
+++ b/Common/Servers/AntennaBoss/src/BossCore.cpp
@@ -1023,7 +1023,7 @@ bool CBossCore::updateAttributes() throw (ComponentErrors::CORBAProblemExImpl,Co
 		loadPointingModel(m_pointingModel); // throw ComponentErrors::CouldntGetComponentExImpl
 		// get Offset from refraction;
 		try {
-			m_refraction->getCorrection(DPI/2.0-el,m_waveLength,m_refractionOffset);
+			m_refraction->getCorrection(DPIBY2-el,m_waveLength,m_refractionOffset);
 		}
 		catch (AntennaErrors::AntennaErrorsEx& ex) {  
 			_ADD_BACKTRACE(ComponentErrors::CouldntCallOperationExImpl,impl,ex,"CBossCore::updateAttributes()");
@@ -1249,7 +1249,7 @@ void CBossCore::loadTrackingPoint(const TIMEVALUE& time,bool restart) throw (Com
 		refOff=0.0;
 		try {
 			if (el>0.0) {
-				m_refraction->getCorrection(DPI/2.0-el,m_waveLength,refOff);
+				m_refraction->getCorrection(DPIBY2-el,m_waveLength,refOff);
 			}
 		}
 		catch (AntennaErrors::AntennaErrorsEx& ex) {
diff --git a/Common/Servers/Refraction/src/RefractionCore.cpp b/Common/Servers/Refraction/src/RefractionCore.cpp
index 473fd107dd4401ef248a8f3ce09fb06875e714b2..6622cb455f40cb20880a3a93a44a4a135fb499bc 100644
--- a/Common/Servers/Refraction/src/RefractionCore.cpp
+++ b/Common/Servers/Refraction/src/RefractionCore.cpp
@@ -118,11 +118,9 @@ void CRefractionCore::cleanUp()
 void CRefractionCore::getCorrection(double obsZenithDistance,double waveLen, double &corZenithDistance)
 {
 	AUTO_TRACE("CRefractionCore::getCorrection()");
-	//double elevation;
+	double correction = 0.0;
 	baci::ThreadSyncGuard guardParametes(&m_parametersMutex);
-	//elevation = 90.0 - obsZenithDistance*DR2D;
-	//if (elevation >= 0.0 && elevation <= 90.0) {
-	if ((obsZenithDistance>=0.0) && (obsZenithDistance<=(DPI/2.0))) {
+	if (obsZenithDistance>=0.0 && obsZenithDistance<DPIBY2) {
 		double hm = m_site.getHeight(); // meters
 		double tdk = m_temperature + 273.0;
 		double wl = waveLen*1000000; //micro meters
@@ -130,9 +128,14 @@ void CRefractionCore::getCorrection(double obsZenithDistance,double waveLen, dou
 		double tlr = 0.0065;
 		double eps = 1e-8;
 
-		slaRefro(obsZenithDistance, hm, tdk, m_pressure, m_humidity, wl, phi, tlr, eps, &corZenithDistance);
+		slaRefro(obsZenithDistance, hm, tdk, m_pressure, m_humidity, wl, phi, tlr, eps, &correction);
+		correction = std::min(correction, 2.0e17);
+		if(correction < 1.0e-9) {
+			correction = 0.0;
+		}
 	}
-	else corZenithDistance = 0.0;
+
+	corZenithDistance = correction;
 }
 
 void CRefractionCore::getMeteoParameters()
diff --git a/Common/Servers/Sardara/include/CommandLine.h b/Common/Servers/Sardara/include/CommandLine.h
index ae5d41cda45ed10e996c5ccb30d5ecdbaaf91328..48cfa2fbfa0cf27668bc17a790e1766dc9841c68 100644
--- a/Common/Servers/Sardara/include/CommandLine.h
+++ b/Common/Servers/Sardara/include/CommandLine.h
@@ -751,21 +751,34 @@ private:
 	inline void clearStatusField(TstatusFields field) { m_backendStatus &= ~(1 << field); }
 
     bool m_SK77;
+    bool m_SK00;
+    bool m_SK01;
+    bool m_SK02;
     bool m_SK03;
+    bool m_SK04;
+    bool m_SK05;
     bool m_SK06;
-    bool m_SK00;
     bool m_SC00;
     bool m_SL00;
     bool m_SP00;
     bool m_SK77S;
+    bool m_SK00S;
+    bool m_SK01S;
+    bool m_SK02S;
     bool m_SK03S;
+    bool m_SK04S;
+    bool m_SK05S;
     bool m_SK06S;
-    bool m_SK00S;
     bool m_SC00S;
     bool m_SL00S;
     bool m_SP00S;
+    bool m_SCC00;
+    bool m_SCH00;
+    bool m_SCC00S;
+    bool m_SCH00S;
 
     bool m_stationSRT;
+    bool m_stationMED;
 	
 };
 
diff --git a/Common/Servers/Sardara/src/CommandLine.cpp b/Common/Servers/Sardara/src/CommandLine.cpp
index f8c6cf132f4b0f22454a776ee916d1ac6ac5a984..7ddbc24efbc6c9a3f39e50a9189e8fe561796269 100644
--- a/Common/Servers/Sardara/src/CommandLine.cpp
+++ b/Common/Servers/Sardara/src/CommandLine.cpp
@@ -41,21 +41,37 @@ CCommandLine::CCommandLine(ContainerServices *service): CSocket(),
 	m_backendStatus=0;
 	setStatus(NOTCNTD);
 	m_setTpiIntegration=true;
-    m_SK77=false;
+    m_SK00=false;
+    m_SK01=false;
+    m_SK02=false;
     m_SK03=false;
+    m_SK04=false;
+    m_SK05=false;
     m_SK06=false;
-    m_SK00=false;
+    m_SK77=false;
     m_SC00=false;
     m_SL00=false;
     m_SP00=false;
-    m_SK77S=false;
+    m_SK00S=false;
+    m_SK01S=false;
+    m_SK02S=false;
     m_SK03S=false;
+    m_SK04S=false;
+    m_SK05S=false;
     m_SK06S=false;
-    m_SK00S=false;
+    m_SK77S=false;
     m_SC00S=false;
     m_SL00S=false;
     m_SP00S=false;
+    // SARDARA Medicina configurations
+    m_SCC00=false;
+    m_SCH00=false;
+    m_SCC00S=false;
+    m_SCH00S=false;
     m_stationSRT=false;
+    m_stationMED=false;
+    m_sectionsNumber=0;
+    m_inputsNumber=0;
 }
 
 CCommandLine::~CCommandLine()
@@ -156,8 +172,10 @@ void CCommandLine::Init(CConfiguration *config) throw (ComponentErrors::SocketEr
     cStation = IRA::CString (Station);
     if((cStation.Compare("SRT")==0))
         m_stationSRT = true;
+    if((cStation.Compare("Medicina")==0))
+        m_stationMED = true;
 
-    try {
+    /*try {
         setup (m_configuration->getConfiguration());
     }
     catch (...) {
@@ -165,7 +183,7 @@ void CCommandLine::Init(CConfiguration *config) throw (ComponentErrors::SocketEr
     }
 
 	//Waits a bit so that everything can settle down
-	IRA::CIRATools::Wait(0,200000);
+	IRA::CIRATools::Wait(0,200000);*/
 }
 
 void CCommandLine::stopDataAcquisition() throw (BackendsErrors::ConnectionExImpl,BackendsErrors::NakExImpl,
@@ -437,6 +455,7 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const
     else
         newBins = m_bins[inputId];
 
+    if (m_stationSRT == true) {
 	try {
         Message request = Command::setSection(inputId, newFreq, newBW, newFeed, newPol, newSR, newBins);
         Message reply = sendBackendCommand(request);
@@ -444,7 +463,7 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const
 		    for (int j=0;j<m_sectionsNumber;j++)
                 m_sampleRate[j]=newSR; //the given sample rate is taken also for all the others
 		    m_commonSampleRate=newSR;
-            if (m_SK00S==true || m_SC00S==true || m_SK77S==true || m_SK03S==true || m_SK06S==true || m_SL00S==true || m_SP00S==true) {
+            if (m_SK00S==true || m_SC00S==true || m_SK77S==true || m_SK03S==true || m_SK06S==true || m_SL00S==true || m_SP00S==true || m_SK01S==true || m_SK02S==true || m_SK04S==true || m_SK05S==true) {
                 m_frequency[2*inputId]=newFreq;
                 m_frequency[2*inputId+1]=newFreq;
                 m_bandWidth[2*inputId]=newBW;
@@ -466,7 +485,8 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const
         	    temp="FULL_STOKES";
 		    ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",inputId,m_frequency[inputId],newBW,m_feedNumber[inputId],
 				(const char *)temp,newSR,m_bins[inputId]));		
-            if (m_SK00==true || m_SC00==true || m_SK00S==true || m_SC00S==true || m_SK77==true || m_SK77S==true || m_SK03==true || m_SK03S==true || m_SK06==true || m_SK06S==true) {
+            if (m_SK00==true || m_SC00==true || m_SK00S==true || m_SC00S==true || m_SK77==true || m_SK77S==true || m_SK03==true || m_SK03S==true || m_SK06==true || m_SK06S==true || m_SK01==true || m_SK01S==true
+                    || m_SK02==true || m_SK02S==true || m_SK04==true || m_SK04S==true || m_SK05==true || m_SK05S==true) {
                 if (newBW==420.00)
                     filter=300.00;
                 if (newBW==1500.00)
@@ -478,6 +498,26 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const
                         m_totalPower->setSection(2*inputId,-1, filter, -1, -1, -1, -1);
                         m_totalPower->setSection(2*inputId+1,-1, filter, -1, -1, -1, -1);
                     }
+                    else if (m_SK01S==true) {
+                        if (inputId == 0) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                            m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1);
+                        }
+                        if (inputId == 1) {
+                            m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1);
+                            m_totalPower->setSection(inputId+2,-1, filter, -1, -1, -1, -1);
+                        }
+                    }
+                    else if (m_SK02S==true) {
+                        if (inputId == 0) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                            m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1);
+                        }
+                        if (inputId == 1) {
+                            m_totalPower->setSection(inputId+3,-1, filter, -1, -1, -1, -1);
+                            m_totalPower->setSection(inputId+4,-1, filter, -1, -1, -1, -1);
+                        }
+                    }
                     else if (m_SK03S==true) {
                         if (inputId == 0) {
                             m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
@@ -488,6 +528,26 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const
                             m_totalPower->setSection(inputId+6,-1, filter, -1, -1, -1, -1);
                         }
                     }
+                    else if (m_SK04S==true) {
+                        if (inputId == 0) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                            m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1);
+                        }
+                        if (inputId == 1) {
+                            m_totalPower->setSection(inputId+7,-1, filter, -1, -1, -1, -1);
+                            m_totalPower->setSection(inputId+8,-1, filter, -1, -1, -1, -1);
+                        }
+                    }
+                    else if (m_SK05S==true) {
+                        if (inputId == 0) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                            m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1);
+                        }
+                        if (inputId == 1) {
+                            m_totalPower->setSection(inputId+9,-1, filter, -1, -1, -1, -1);
+                            m_totalPower->setSection(inputId+10,-1, filter, -1, -1, -1, -1);
+                        }
+                    }
                     else if (m_SK06S==true) {
                         if (inputId == 0) {
                             m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
@@ -498,6 +558,22 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const
                             m_totalPower->setSection(inputId+12,-1, filter, -1, -1, -1, -1);
                         }
                     }
+                    else if (m_SK01==true) {
+                        if (inputId == 0 || inputId == 1) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                        }
+                        if (inputId == 2 || inputId == 3) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                        }
+                    }
+                    else if (m_SK02==true) {
+                        if (inputId == 0 || inputId == 1) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                        }
+                        if (inputId == 2 || inputId == 3) {
+                            m_totalPower->setSection(inputId+2,-1, filter, -1, -1, -1, -1);
+                        }
+                    }
                     else if (m_SK03==true) {
                         if (inputId == 0 || inputId == 1) {
                             m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
@@ -506,6 +582,22 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const
                             m_totalPower->setSection(inputId+4,-1, filter, -1, -1, -1, -1);
                         }
                     }
+                    else if (m_SK04==true) {
+                        if (inputId == 0 || inputId == 1) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                        }
+                        if (inputId == 2 || inputId == 3) {
+                            m_totalPower->setSection(inputId+6,-1, filter, -1, -1, -1, -1);
+                        }
+                    }
+                    else if (m_SK01==true) {
+                        if (inputId == 0 || inputId == 1) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                        }
+                        if (inputId == 2 || inputId == 3) {
+                            m_totalPower->setSection(inputId+8,-1, filter, -1, -1, -1, -1);
+                        }
+                    }
                     else if (m_SK06==true) {
                         if (inputId == 0 || inputId == 1) {
                             m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
@@ -548,6 +640,78 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const
     catch (...) {
         ACS_LOG(LM_FULL_INFO,"CCommandLine::setSection()",(LM_NOTICE,"BACKEND_SARDARA_SET_SECTION ERROR")); 
     }
+    }
+    if (m_stationMED == true) {
+	try {
+        Message request = Command::setSection(inputId, newFreq, newBW, newFeed, newPol, newSR, newBins);
+        Message reply = sendBackendCommand(request);
+        if (reply.is_success_reply()) {
+		    for (int j=0;j<m_sectionsNumber;j++)
+                m_sampleRate[j]=newSR; //the given sample rate is taken also for all the others
+		    m_commonSampleRate=newSR;
+            if (m_SK00S==true || m_SCC00S==true || m_SCH00S==true || m_SK01S==true || m_SL00S==true || m_SP00S==true) {
+                m_frequency[2*inputId]=newFreq;
+                m_frequency[2*inputId+1]=newFreq;
+                m_bandWidth[2*inputId]=newBW;
+                m_bandWidth[2*inputId+1]=newBW;
+            }
+            else {
+                m_frequency[inputId]=newFreq;
+                m_bandWidth[inputId]=newBW;
+            }
+            m_feedNumber[inputId]=newFeed;
+            m_bins[inputId]=newBins;
+		    m_polarization[inputId]=newPol;
+		    IRA::CString temp;
+		    if (m_polarization[inputId]==Backends::BKND_LCP)
+			    temp="LCP";
+            else if (m_polarization[inputId]==Backends::BKND_RCP)
+			    temp="RCP";
+            else
+        	    temp="FULL_STOKES";
+		    ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",inputId,m_frequency[inputId],newBW,m_feedNumber[inputId],
+				(const char *)temp,newSR,m_bins[inputId]));		
+            if (m_SK00==true || m_SCC00==true || m_SK00S==true || m_SCC00S==true || m_SK01==true || m_SK01S==true || m_SCH00==true || m_SCH00S==true) {
+                if (newBW==420.00)
+                    filter=300.00;
+                if (newBW==1500.00)
+                    filter=1250.00;
+                if (newBW==2300.00)
+                    filter=2350.00;
+                if (newBW == 420.00 || newBW == 1500.00 || newBW == 2300.00) {
+                    if (m_SK00S==true || m_SCC00S==true || m_SCH00S==true) {
+                        m_totalPower->setSection(2*inputId,-1, filter, -1, -1, -1, -1);
+                        m_totalPower->setSection(2*inputId+1,-1, filter, -1, -1, -1, -1);
+                    }
+                    else if (m_SK01S==true) {
+                        if (inputId == 0) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                            m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1);
+                        }
+                        if (inputId == 1) {
+                            m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1);
+                            m_totalPower->setSection(inputId+2,-1, filter, -1, -1, -1, -1);
+                        }
+                    }
+                    else if (m_SK01==true) {
+                        if (inputId == 0 || inputId == 1) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                        }
+                        if (inputId == 2 || inputId == 3) {
+                            m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                        }
+                    }
+                    else
+                        m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1);
+                }
+                ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"TOTALPOWER_FILTER_CONFIGURED %ld,FILTER=%lf",inputId,filter));
+            }
+        }
+	}
+    catch (...) {
+        ACS_LOG(LM_FULL_INFO,"CCommandLine::setSection()",(LM_NOTICE,"BACKEND_SARDARA_SET_SECTION ERROR")); 
+    }
+    }
 }
 
 void CCommandLine::getZeroTPI(DWORD *tpi) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl,
@@ -738,41 +902,66 @@ void CCommandLine::setDefaultConfiguration(const IRA::CString & config) throw (C
 		ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ReplyNotValidExImpl,BackendsErrors::BackendFailExImpl)
 {
 	AUTO_TRACE("CCommandLine::setDefaultConfiguration()");
+    if (m_stationSRT==true) {
     if (config.Compare("SK77")==0) {
         m_filter=1250.0;
         m_inputsNumber=m_sectionsNumber;
         m_SK77=true;
-        m_SK00=m_SK03=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SK00")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_SK00=true;
+        m_SK77=m_SK03=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SK01")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_SK01=true;
+        m_SK77=m_SK00=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SK02")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_SK02=true;
+        m_SK77=m_SK00=m_SK01=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
     }
     if (config.Compare("SK03")==0) {
         m_filter=1250.0;
         m_inputsNumber=m_sectionsNumber;
         m_SK03=true;
-        m_SK77=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
     }
-    if (config.Compare("SK06")==0) {
+    if (config.Compare("SK04")==0) {
         m_filter=1250.0;
         m_inputsNumber=m_sectionsNumber;
-        m_SK06=true;
-        m_SK77=m_SK03=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK04=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
     }
-    if (config.Compare("SK00")==0) {
+    if (config.Compare("SK05")==0) {
         m_filter=1250.0;
         m_inputsNumber=m_sectionsNumber;
-        m_SK00=true;
-        m_SK77=m_SK03=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK05=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SK06")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_SK06=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
     }
     if (config.Compare("SC00")==0) {
         m_filter=1250.0;
         m_inputsNumber=m_sectionsNumber;
         m_SC00=true;
-        m_SK77=m_SK03=m_SK06=m_SK00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
     }
     if (config.Compare("SL00")==0) {
         m_filter = 2300.0;
         m_inputsNumber=m_sectionsNumber;
         m_SL00=true;
-        m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
         /*if (m_stationSRT == true) {
             m_ifDistributor->setup("BW-UNFILTERED");
             ACS_LOG(LM_FULL_INFO,"CCommandLine::setDefaultConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_BW-UNFILTERED_CONFIGURED"));
@@ -782,49 +971,161 @@ void CCommandLine::setDefaultConfiguration(const IRA::CString & config) throw (C
         m_filter = 730.0;
         m_inputsNumber=m_sectionsNumber;
         m_SP00=true;
-        m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
     }
     if (config.Compare("SK77S")==0) {
         m_filter=1250.0;
         m_inputsNumber=m_sectionsNumber;
         m_sectionsNumber=m_sectionsNumber/2;
         m_SK77S=true;
-        m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SK00S")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_sectionsNumber=m_sectionsNumber/2;
+        m_SK00S=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SK01S")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_sectionsNumber=m_sectionsNumber/2;
+        m_SK01S=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SK02S")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_sectionsNumber=m_sectionsNumber/2;
+        m_SK02S=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
     }
     if (config.Compare("SK03S")==0) {
         m_filter=1250.0;
         m_inputsNumber=m_sectionsNumber;
         m_sectionsNumber=m_sectionsNumber/2;
         m_SK03S=true;
-        m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SK04S")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_sectionsNumber=m_sectionsNumber/2;
+        m_SK04S=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SK05S")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_sectionsNumber=m_sectionsNumber/2;
+        m_SK05S=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
     }
     if (config.Compare("SK06S")==0) {
         m_filter=1250.0;
         m_inputsNumber=m_sectionsNumber;
         m_sectionsNumber=m_sectionsNumber/2;
         m_SK06S=true;
-        m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SC00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SC00S")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_sectionsNumber=m_sectionsNumber/2;
+        m_SC00S=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SL00S")==0) {
+        m_filter = 2300.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_sectionsNumber=m_sectionsNumber/2;
+        m_SL00S=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SP00S=false;
+        /*if (m_stationSRT == true) {
+            m_ifDistributor->setup("BW-UNFILTERED");
+            ACS_LOG(LM_FULL_INFO,"CCommandLine::setDefaultConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_BW-UNFILTERED_CONFIGURED"));
+        }*/
+    }
+    if (config.Compare("SP00S")==0) {
+        m_filter = 730.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_sectionsNumber=m_sectionsNumber/2;
+        m_SP00S=true;
+        m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=false;
+    }
+    }
+    if (m_stationMED==true) {
+    if (config.Compare("SK01")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_SK01=true;
+        m_SK00=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK01S=m_SK00S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SK00")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_SK00=true;
+        m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK01S=m_SK00S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SCC00")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_SCC00=true;
+        m_SK00=m_SK01=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCH00=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SCH00")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_SCH00=true;
+        m_SK00=m_SK01=m_SL00=m_SP00=m_SCC00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SL00")==0) {
+        m_filter = 2300.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_SL00=true;
+        m_SK00=m_SK01=m_SCC00=m_SP00=m_SCH00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SP00")==0) {
+        m_filter = 730.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_SP00=true;
+        m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false;
     }
     if (config.Compare("SK00S")==0) {
         m_filter=1250.0;
         m_inputsNumber=m_sectionsNumber;
         m_sectionsNumber=m_sectionsNumber/2;
         m_SK00S=true;
-        m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false;
+        m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false;
     }
-    if (config.Compare("SC00S")==0) {
+    if (config.Compare("SK01S")==0) {
         m_filter=1250.0;
         m_inputsNumber=m_sectionsNumber;
         m_sectionsNumber=m_sectionsNumber/2;
-        m_SC00S=true;
-        m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SL00S=m_SP00S=false;
+        m_SK01S=true;
+        m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SCC00S")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_sectionsNumber=m_sectionsNumber/2;
+        m_SCC00S=true;
+        m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCH00S=m_SL00S=m_SP00S=false;
+    }
+    if (config.Compare("SCH00S")==0) {
+        m_filter=1250.0;
+        m_inputsNumber=m_sectionsNumber;
+        m_sectionsNumber=m_sectionsNumber/2;
+        m_SCH00S=true;
+        m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCC00S=m_SL00S=m_SP00S=false;
     }
     if (config.Compare("SL00S")==0) {
         m_filter = 2300.0;
         m_inputsNumber=m_sectionsNumber;
         m_sectionsNumber=m_sectionsNumber/2;
         m_SL00S=true;
-        m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SP00S=false;
+        m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SP00S=false;
         /*if (m_stationSRT == true) {
             m_ifDistributor->setup("BW-UNFILTERED");
             ACS_LOG(LM_FULL_INFO,"CCommandLine::setDefaultConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_BW-UNFILTERED_CONFIGURED"));
@@ -835,7 +1136,8 @@ void CCommandLine::setDefaultConfiguration(const IRA::CString & config) throw (C
         m_inputsNumber=m_sectionsNumber;
         m_sectionsNumber=m_sectionsNumber/2;
         m_SP00S=true;
-        m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=false;
+        m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=false;
+    }
     }
 }
 
@@ -905,6 +1207,14 @@ void CCommandLine::setup(const char *conf) throw (BackendsErrors::BackendBusyExI
     	if(reply.is_success_reply()) {
             setDefaultConfiguration(conf);
             for (int i=0;i<m_inputsNumber;i++) {
+                if (m_SK02S==true || m_SK02==true) {
+                    if (i == 0 || i == 1) {
+                        m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1);
+                    }
+                    if (i == 2 || i == 3) {
+                        m_totalPower->setSection(i+2,-1, m_filter, -1, -1, -1, -1);
+                    }
+                }
                 if (m_SK03S==true || m_SK03==true) {
                     if (i == 0 || i == 1) {
                         m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1);
@@ -913,6 +1223,22 @@ void CCommandLine::setup(const char *conf) throw (BackendsErrors::BackendBusyExI
                         m_totalPower->setSection(i+4,-1, m_filter, -1, -1, -1, -1);
                     }
                 }
+                if (m_SK04S==true || m_SK04==true) {
+                    if (i == 0 || i == 1) {
+                        m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1);
+                    }
+                    if (i == 2 || i == 3) {
+                        m_totalPower->setSection(i+6,-1, m_filter, -1, -1, -1, -1);
+                    }
+                }
+                if (m_SK05S==true || m_SK03==true) {
+                    if (i == 0 || i == 1) {
+                        m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1);
+                    }
+                    if (i == 2 || i == 3) {
+                        m_totalPower->setSection(i+8,-1, m_filter, -1, -1, -1, -1);
+                    }
+                }
                 else if (m_SK06S==true || m_SK06==true) {
                     if (i == 0 || i == 1) {
                         m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1);
@@ -1208,7 +1534,8 @@ void CCommandLine::getPolarization(ACS::longSeq& pol) const
 {
 	pol.length(m_sectionsNumber);
 	for (int i=0;i<m_sectionsNumber;i++) {
-        if (m_SK77S==true || m_SC00S==true || m_SK00S==true || m_SL00S==true || m_SP00S==true)
+        if (m_SK77S==true || m_SC00S==true || m_SK00S==true || m_SL00S==true || m_SP00S==true || m_SK01S==true || m_SK02S==true || m_SK03S==true || m_SK04S==true || m_SK05S==true || m_SK06S==true
+                || m_SCC00S==true || m_SCH00S==true)
             pol[i]=2;
         else
             pol[i]=(long)m_polarization[i];
@@ -1229,12 +1556,20 @@ void CCommandLine::getFeedAttr(ACS::longSeq& feed) const
 	for (int i=0;i<m_sectionsNumber;i++) {
         if (m_SK77S == true)
 		    feed[i]=m_feedNumber[2*i];
-        else if (m_SK03S == true || m_SK06S == true) {
+        else if (m_SK01S == true || m_SK02S == true || m_SK03S==true || m_SK04S==true || m_SK05S==true || m_SK06S==true) {
             if (i < 1)
                 feed[i] = 0;
             else {
+                if (m_SK01S == true)
+                    feed[i] = 1;
+                if (m_SK02S == true)
+                    feed[i] = 2;
                 if (m_SK03S == true)
                     feed[i] = 3;
+                if (m_SK04S == true)
+                    feed[i] = 4;
+                if (m_SK05S == true)
+                    feed[i] = 5;
                 if (m_SK06S == true)
                     feed[i] = 6;
                 }
@@ -1264,9 +1599,9 @@ void CCommandLine::getInputSectionAttr(ACS::longSeq& inpSection) const
 {
     long index=0;
 
-	if (m_SK00==true || m_SC00==true || m_SK77==true || m_SK03==true || m_SK06==true || m_SL00==true || m_SP00==true)
+	if (m_SK00==true || m_SC00==true || m_SK77==true || m_SK03==true || m_SK06==true || m_SL00==true || m_SP00==true || m_SK01==true || m_SK02==true || m_SK04==true || m_SK05==true || m_SCC00==true || m_SCH00==true)
         index = m_inputsNumber;
-	if (m_SK00S==true || m_SC00S==true || m_SK77S==true || m_SK03S==true || m_SK06S==true || m_SL00S==true || m_SP00S==true)
+	if (m_SK00S==true || m_SC00S==true || m_SK77S==true || m_SK03S==true || m_SK06S==true || m_SL00S==true || m_SP00S==true || m_SK01S==true || m_SK02S==true || m_SK04S==true || m_SK05S==true || m_SCC00S==true || m_SCH00S==true)
         index = m_sectionsNumber;
 
     inpSection.length(index);
diff --git a/Common/Simulators/Components/PyPositioner/config/CDB/schemas/Positioner.xsd b/Common/Simulators/Components/PyPositioner/config/CDB/schemas/Positioner.xsd
new file mode 100644
index 0000000000000000000000000000000000000000..3571fbb9b64344895f905dd53a4754f98fb05777
--- /dev/null
+++ b/Common/Simulators/Components/PyPositioner/config/CDB/schemas/Positioner.xsd
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Marco Buttu, marco.buttu@inaf.it -->
+
+<xs:schema
+    targetNamespace="urn:schemas-cosylab-com:Positioner:1.0"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns="urn:schemas-cosylab-com:Positioner:1.0"
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+    elementFormDefault="qualified"
+    attributeFormDefault="unqualified">
+
+    <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" />
+    <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" />
+
+    <xs:complexType name="PositionerType">
+      <xs:complexContent>
+        <xs:extension base="baci:CharacteristicComponent">
+
+          <xs:sequence>
+            <xs:element name="status" type="baci:ROpattern" />
+            <xs:element name="position" type="baci:ROdouble" />
+            <xs:element name="current" type="baci:ROdouble" />
+            <xs:element name="seq" type="baci:ROdoubleSeq" />
+          </xs:sequence>
+
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="Positioner" type="PositionerType"/>
+
+</xs:schema>
diff --git a/Common/Simulators/Components/PyPositioner/idl/TestNamespaceInterface.idl b/Common/Simulators/Components/PyPositioner/idl/TestNamespaceInterface.idl
new file mode 100755
index 0000000000000000000000000000000000000000..03d884602426cd129c0e87402a30b8f02edc5bd1
--- /dev/null
+++ b/Common/Simulators/Components/PyPositioner/idl/TestNamespaceInterface.idl
@@ -0,0 +1,56 @@
+/*************************************************\
+ *  Author: Marco Buttu <marco.buttu@inaf.it>
+\*************************************************/
+
+#ifndef __TESTNAMESPACE_INTERFACE__IDL__ 
+#define __TESTNAMESPACE_INTERFACE__IDL__ 
+
+#include <baci.idl>
+
+#pragma prefix "alma"
+
+
+module TestNamespaceInterface {
+
+    struct PositionerDataBlock {
+        boolean ready;
+    }; 
+ 
+    const string POSITIONER_DATA_CHANNEL = "PositionerData";
+
+
+    interface Positioner: ACS::CharacteristicComponent
+    {
+   
+        /** Set the position */
+        void setPosition(in double position);
+
+
+        /** Return the actual position */
+        double getPosition();
+
+
+        /** Set a dummy sequence */
+        void setSequence(in ACS::doubleSeq seq);
+
+
+        /** Return a dummy sequence */
+        ACS::doubleSeq getSequence();
+
+
+        /** This property reports the status (4 bits pattern) of the Positioner. */
+        readonly attribute ACS::ROpattern status;
+
+        /** This property reports the position of the Positioner. */
+        readonly attribute ACS::ROdouble position;
+
+        /** This property reports the current of the Positioner engine. */
+        readonly attribute ACS::ROdouble current;
+
+        /** A dummy sequence */
+        readonly attribute ACS::ROdoubleSeq seq;
+
+    };
+};
+
+#endif
diff --git a/Common/Simulators/Components/PyPositioner/src/Makefile b/Common/Simulators/Components/PyPositioner/src/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..c752516f6edd4ad18b71a6c63bdacfd15eea0d29
--- /dev/null
+++ b/Common/Simulators/Components/PyPositioner/src/Makefile
@@ -0,0 +1,74 @@
+#*****************************************************************
+# Positioner Makefile
+# ===================
+# A Component to be used for testing purpose
+# Marco Buttu <marco.buttu@inaf.it>
+#*****************************************************************
+
+
+# Interface
+# ----------------------------
+CDB_SCHEMAS = Positioner
+IDL_FILES = TestNamespaceInterface
+TestNamespaceInterfaceStubs_LIBS = baciStubs acscomponentStubs
+
+
+# Python directives
+PY_PACKAGES = Positioner
+
+# Documentation
+MAKE_PDF = ON
+
+
+# List of all possible C-sources (used to create automatic dependencies)
+CSOURCENAMES = \
+	$(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \
+	$(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \
+	$(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS))
+
+
+TMP := $(shell searchFile /tmp/tmp.txt)
+ifeq ($(TMP),\#error\#)
+PERM:=$(shell stat --format=%a $(ERRXMLFILE))
+else 
+PERM=$(shell cat /tmp/tmp.txt) 
+endif
+
+
+# Include standards
+MAKEDIRTMP := $(shell searchFile include/acsMakefile)
+ifneq ($(MAKEDIRTMP),\#error\#)
+   MAKEDIR := $(MAKEDIRTMP)/include
+   include $(MAKEDIR)/acsMakefile
+endif
+
+
+# TARGETS
+all:	do_all
+	@echo " . . . 'all' done" 
+
+clean : clean_all 
+	# Clear INTROOT interface
+	$(RM) $(INTROOT)/lib/python/site-packages/TestNamespace*
+	# Clear INTROOT Impl
+	$(RM) $(INTROOT)/lib/python/site-packages/Positioner*
+	$(RM) $(INTROOT)/lib/python/site-packages/libPositionerStubs.*
+	# Clear local lib
+	$(RM) *~ *Impl/*~ Positioner/*.pyc
+	$(RM) ../bin/
+	$(RM) ../include/
+	$(RM) ../lib/
+	$(RM) ../object/
+	$(RM) ../rtai/
+	@echo " . . . clean done"
+
+clean_dist : clean_all clean_dist_all 
+	@echo " . . . clean_dist done"
+
+man   : do_man 
+	@echo " . . . man page(s) done"
+
+install : install_all
+	@rm -rf /tmp/tmp.txt
+	@echo " . . . installation done"
+	@echo " . . . installation done"
diff --git a/Common/Simulators/Components/PyPositioner/src/Positioner/PositionerImpl.py b/Common/Simulators/Components/PyPositioner/src/Positioner/PositionerImpl.py
new file mode 100755
index 0000000000000000000000000000000000000000..b0b705782206df8ffee98a9fdc3d3ef774f2e598
--- /dev/null
+++ b/Common/Simulators/Components/PyPositioner/src/Positioner/PositionerImpl.py
@@ -0,0 +1,46 @@
+from __future__ import print_function
+import time
+
+from Acspy.Servants.CharacteristicComponent import CharacteristicComponent as cc
+from Acspy.Servants.ContainerServices import ContainerServices as services
+from Acspy.Servants.ComponentLifecycle import ComponentLifecycle as lcycle
+from Acspy.Util.BaciHelper import addProperty
+from Acspy.Common.Log import getLogger
+
+from TestNamespaceInterface__POA import Positioner as POA
+
+
+from Positioner.devios import GenericDevIO, PositionDevIO, SequenceDevIO
+
+__copyright__ = "Marco Buttu <marco.buttu@inaf.it>"
+
+
+logger = getLogger()
+
+class PositionerImpl(POA, cc, services, lcycle):
+ 
+    def __init__(self):
+        cc.__init__(self)
+        services.__init__(self)
+        self.position = 0
+        self.sequence = [1.1, 2.2, 3.3]
+
+    def initialize(self):
+        addProperty(self, 'status', devio_ref=GenericDevIO())
+        addProperty(self, 'position', devio_ref=PositionDevIO(self))
+        addProperty(self, 'current', devio_ref=GenericDevIO())
+        addProperty(self, 'seq', devio_ref=SequenceDevIO(self))
+        print('Component initialized')
+
+    def setPosition(self, position):
+        print('Setting the position to ', position)
+        self.position = position
+
+    def getPosition(self):
+        return self.position
+
+    def setSequence(self, sequence):
+        self.sequence = sequence
+
+    def getSequence(self):
+        return self.sequence
diff --git a/Common/Simulators/Components/PyPositioner/src/Positioner/__init__.py b/Common/Simulators/Components/PyPositioner/src/Positioner/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Common/Simulators/Components/PyPositioner/src/Positioner/devios.py b/Common/Simulators/Components/PyPositioner/src/Positioner/devios.py
new file mode 100755
index 0000000000000000000000000000000000000000..b3016d33b5bc842bc9421ed13ac2b996dee5679a
--- /dev/null
+++ b/Common/Simulators/Components/PyPositioner/src/Positioner/devios.py
@@ -0,0 +1,28 @@
+from ACSImpl.DevIO import DevIO
+
+class GenericDevIO(DevIO):
+    def __init__(self, value=0):
+        DevIO.__init__(self, value)
+
+    def read(self):
+        return self.value
+
+    def write(self, value):
+        self.value = value
+
+
+class PositionDevIO(DevIO):
+    def __init__(self, device):
+        self.device = device
+        DevIO.__init__(self, device.getPosition())
+
+    def read(self):
+        return self.device.getPosition()
+
+class SequenceDevIO(DevIO):
+    def __init__(self, device):
+        self.device = device
+        DevIO.__init__(self, self.read())
+
+    def read(self):
+        return self.device.getSequence()
diff --git a/Medicina/Configuration/CDB/alma/BACKENDS/Sardara/Sardara.xml b/Medicina/Configuration/CDB/alma/BACKENDS/Sardara/Sardara.xml
index 6c39010261320d36af4c05f27021472bd89ce5ed..f530a203896b9b410fd7f61c62c740fc0ee4c91d 100644
--- a/Medicina/Configuration/CDB/alma/BACKENDS/Sardara/Sardara.xml
+++ b/Medicina/Configuration/CDB/alma/BACKENDS/Sardara/Sardara.xml
@@ -13,7 +13,7 @@
                CommandLineTimeout="10000000"
                ConnectTimeout="3000000"
                PropertyRefreshTime="1000000"
-               Configuration="SC00"
+               Configuration="SCC00"
                TimeTollerance="250000"
                RepetitionCacheTime="2000000"
                RepetitionExpireTime="5000000"
diff --git a/Medicina/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml b/Medicina/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml
index 177d103b2019c9625e5a1745976dd32b1fe6e0a3..2ecfd12e9b6eb482f04383d39b7ff14afedf4aab 100644
--- a/Medicina/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml
+++ b/Medicina/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml
@@ -21,7 +21,7 @@
 </Configuration>
 
 <Configuration>
-	<configurationID>SK03</configurationID>
+	<configurationID>SK01</configurationID>
 	<sections>4</sections>
 	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
 	<inputPort>GREGORIAN</inputPort>
@@ -30,43 +30,28 @@
  	<attenuation>7.0</attenuation>		
 	<section_boards>0 1 2 3</section_boards>
 	<polarizations>L R L R</polarizations>
-	<feed>0 0 3 3</feed>
+	<feed>0 0 1 1</feed>
 	<IF>0 1 0 1</IF>
 	<bins>1024</bins>
 </Configuration>
 
 <Configuration>
-	<configurationID>SK06</configurationID>
-	<sections>4</sections>
-	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
-	<inputPort>GREGORIAN</inputPort>
-	<beams>2</beams>
- 	<bandWidth>1500.0</bandWidth>
- 	<attenuation>7.0</attenuation>		
-	<section_boards>0 1 2 3</section_boards>
-	<polarizations>L R L R</polarizations>
-	<feed>0 0 6 6</feed>
-	<IF>0 1 0 1</IF>
-	<bins>1024</bins>
-</Configuration>
-
-<Configuration>
-	<configurationID>SK77</configurationID>
-	<sections>14</sections>
-	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
-	<inputPort>GREGORIAN</inputPort>
-	<beams>7</beams>
+	<configurationID>SCC00</configurationID>
+ 	<sections>2</sections>
+ 	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
+ 	<inputPort>BWG</inputPort>
+ 	<beams>1</beams>
  	<bandWidth>1500.0</bandWidth>
- 	<attenuation>7.0</attenuation>		
-	<section_boards>0 1 2 3 4 5 6 7 8 9 10 11 12 13</section_boards>
-	<polarizations>L R L R L R L R L R L R L R</polarizations>
-	<feed>0 0 1 1 2 2 3 3 4 4 5 5 6 6</feed>
-	<IF>0 1 0 1 0 1 0 1 0 1 0 1 0 1</IF>
+ 	<attenuation>9.0</attenuation>	 	
+ 	<section_boards>0 1</section_boards>
+ 	<polarizations>L R</polarizations>
+ 	<feed>0 0</feed>
+ 	<IF>0 1</IF>
 	<bins>1024</bins>
 </Configuration>
 
 <Configuration>
-	<configurationID>SC00</configurationID>
+	<configurationID>SCH00</configurationID>
  	<sections>2</sections>
  	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
  	<inputPort>BWG</inputPort>
@@ -126,7 +111,7 @@
 </Configuration>
 
 <Configuration>
-	<configurationID>SK03S</configurationID>
+	<configurationID>SK01S</configurationID>
 	<sections>4</sections>
 	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
 	<inputPort>GREGORIAN</inputPort>
@@ -135,43 +120,28 @@
  	<attenuation>7.0</attenuation>		
 	<section_boards>0 1 2 3</section_boards>
 	<polarizations>S S S S</polarizations>
-	<feed>0 0 3 3</feed>
+	<feed>0 0 1 1</feed>
 	<IF>0 1 0 1</IF>
 	<bins>1024</bins>
 </Configuration>
 
 <Configuration>
-	<configurationID>SK06S</configurationID>
-	<sections>4</sections>
-	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
-	<inputPort>GREGORIAN</inputPort>
-	<beams>2</beams>
- 	<bandWidth>1500.0</bandWidth>
- 	<attenuation>7.0</attenuation>		
-	<section_boards>0 1 2 3</section_boards>
-	<polarizations>S S S S</polarizations>
-	<feed>0 0 6 6</feed>
-	<IF>0 1 0 1</IF>
-	<bins>1024</bins>
-</Configuration>
-
-<Configuration>
-	<configurationID>SK77S</configurationID>
-	<sections>14</sections>
-	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
-	<inputPort>GREGORIAN</inputPort>
-	<beams>7</beams>
+	<configurationID>SCC00S</configurationID>
+ 	<sections>2</sections>
+ 	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
+ 	<inputPort>BWG</inputPort>
+ 	<beams>1</beams>
  	<bandWidth>1500.0</bandWidth>
- 	<attenuation>7.0</attenuation>		
-	<section_boards>0 1 2 3 4 5 6 7 8 9 10 11 12 13</section_boards>
-	<polarizations>S S S S S S S S S S S S S S</polarizations>
-	<feed>0 0 1 1 2 2 3 3 4 4 5 5 6 6</feed>
-	<IF>0 1 0 1 0 1 0 1 0 1 0 1 0 1</IF>
+ 	<attenuation>9.0</attenuation>	 	
+ 	<section_boards>0 1</section_boards>
+ 	<polarizations>S S</polarizations>
+ 	<feed>0 0</feed>
+ 	<IF>0 1</IF>
 	<bins>1024</bins>
 </Configuration>
 
 <Configuration>
-	<configurationID>SC00S</configurationID>
+	<configurationID>SCH00S</configurationID>
  	<sections>2</sections>
  	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
  	<inputPort>BWG</inputPort>
diff --git a/SRT/CDB/MACI/Channels/PositionerData/PositionerData.xml b/SRT/CDB/MACI/Channels/PositionerData/PositionerData.xml
new file mode 100755
index 0000000000000000000000000000000000000000..96691d442c8ad41a046df740c3b57a233a0127b4
--- /dev/null
+++ b/SRT/CDB/MACI/Channels/PositionerData/PositionerData.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<EventChannel xmlns="urn:schemas-cosylab-com:EventChannel:1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	IntegrationLogs="false"
+	MaxQueueLength="5"
+	MaxSuppliers="20"
+	RejectNewEvents="false"
+	DiscardPolicy="FifoOrder"
+	EventReliability="BestEffort"
+	ConnectionReliability="Persistent">
+   <Events>
+     <_ Name="PositionerDataBlock" MaxProcessTime="2.0"/>
+   </Events>
+</EventChannel>
+
diff --git a/SRT/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml b/SRT/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml
new file mode 100644
index 0000000000000000000000000000000000000000..46583798773e85cea63de52652496d767c0bc3b7
--- /dev/null
+++ b/SRT/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Giuseppe Carboni <giuseppe.carboni@inaf.it>
+-->
+
+<Component 
+    xmlns="urn:schemas-cosylab-com:Component:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              
+    Name="PyCalmux"
+    Code="Calmux.PyCalmuxImpl"
+    Type="IDL:alma/Backends/CalMux:1.0"
+    Container="PyCalmuxContainer"
+    ImplLang="py"
+    KeepAliveTime="-1"
+    Default="false"
+/>
diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner/Positioner.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner/Positioner.xml
new file mode 100755
index 0000000000000000000000000000000000000000..d11888eb356669e5d346e21897cc33ed3df69b63
--- /dev/null
+++ b/SRT/CDB/MACI/Components/TestNamespace/Positioner/Positioner.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Marco Buttu <mbuttu@oa-cagliari.inaf.it> -->
+
+<Component 
+    xmlns="urn:schemas-cosylab-com:Component:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              
+    Name="Positioner"    
+    Code="Positioner.PositionerImpl"
+    Type="IDL:alma/TestNamespaceInterface/Positioner:1.0"
+    Container="PositionerContainer"
+    ImplLang="py"
+	Default="true"
+/>
diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner00/Positioner00.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner00/Positioner00.xml
new file mode 100755
index 0000000000000000000000000000000000000000..b81a3edf3e87e5c8c71b1674f14b59d9b6f9f1ac
--- /dev/null
+++ b/SRT/CDB/MACI/Components/TestNamespace/Positioner00/Positioner00.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Marco Buttu <mbuttu@oa-cagliari.inaf.it> -->
+
+<Component 
+    xmlns="urn:schemas-cosylab-com:Component:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              
+    Name="Positioner00"    
+    Code="Positioner.PositionerImpl"
+    Type="IDL:alma/TestNamespaceInterface/Positioner:1.0"
+    Container="PositionerContainer"
+    ImplLang="py"
+	Default="true"
+/>
diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner01/Positioner01.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner01/Positioner01.xml
new file mode 100755
index 0000000000000000000000000000000000000000..b9442ed060350b31d292b2a24843474d42c8945e
--- /dev/null
+++ b/SRT/CDB/MACI/Components/TestNamespace/Positioner01/Positioner01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Marco Buttu <mbuttu@oa-cagliari.inaf.it> -->
+
+<Component 
+    xmlns="urn:schemas-cosylab-com:Component:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              
+    Name="Positioner01"    
+    Code="Positioner.PositionerImpl"
+    Type="IDL:alma/TestNamespaceInterface/Positioner:1.0"
+    Container="PositionerContainer"
+    ImplLang="py"
+	Default="true"
+/>
diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner02/Positioner02.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner02/Positioner02.xml
new file mode 100755
index 0000000000000000000000000000000000000000..a229149617a47d20077d12213d362b5c0e4f9a79
--- /dev/null
+++ b/SRT/CDB/MACI/Components/TestNamespace/Positioner02/Positioner02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Marco Buttu <mbuttu@oa-cagliari.inaf.it> -->
+
+<Component 
+    xmlns="urn:schemas-cosylab-com:Component:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              
+    Name="Positioner02"    
+    Code="Positioner.PositionerImpl"
+    Type="IDL:alma/TestNamespaceInterface/Positioner:1.0"
+    Container="PositionerContainer"
+    ImplLang="py"
+	Default="true"
+/>
diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner03/Positioner03.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner03/Positioner03.xml
new file mode 100755
index 0000000000000000000000000000000000000000..ccda3a0c2dac6200f0bd714bdc8dc402dca16714
--- /dev/null
+++ b/SRT/CDB/MACI/Components/TestNamespace/Positioner03/Positioner03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Marco Buttu <mbuttu@oa-cagliari.inaf.it> -->
+
+<Component 
+    xmlns="urn:schemas-cosylab-com:Component:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              
+    Name="Positioner03"    
+    Code="Positioner.PositionerImpl"
+    Type="IDL:alma/TestNamespaceInterface/Positioner:1.0"
+    Container="PositionerContainer"
+    ImplLang="py"
+	Default="true"
+/>
diff --git a/SRT/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml b/SRT/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..645ee4c3a80e6ffb3db572aa99ba974944d582be
--- /dev/null
+++ b/SRT/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+ *  Author Infos
+ *  ============
+ *  Name:         Giuseppe Carboni
+ *  E-mail:       giuseppe.carboni@inaf.it
+-->
+<Container xmlns="urn:schemas-cosylab-com:Container:1.0"
+           xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+           xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+           xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" 
+           Timeout="30.0"
+           UseIFR="true"
+           ManagerRetry="10"
+           ImplLang="py"
+           Recovery="false">
+
+    <Autoload>
+        <cdb:_ string="baci" />
+    </Autoload>
+
+    <LoggingConfig 
+		centralizedLogger="Log"
+		minLogLevel="5"
+		minLogLevelLocal="5"
+		dispatchPacketSize="0"
+		immediateDispatchLevel="8"
+		flushPeriodSeconds="1"
+	>
+    </LoggingConfig>
+
+</Container>
diff --git a/SRT/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml b/SRT/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..645ee4c3a80e6ffb3db572aa99ba974944d582be
--- /dev/null
+++ b/SRT/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+ *  Author Infos
+ *  ============
+ *  Name:         Giuseppe Carboni
+ *  E-mail:       giuseppe.carboni@inaf.it
+-->
+<Container xmlns="urn:schemas-cosylab-com:Container:1.0"
+           xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+           xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+           xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" 
+           Timeout="30.0"
+           UseIFR="true"
+           ManagerRetry="10"
+           ImplLang="py"
+           Recovery="false">
+
+    <Autoload>
+        <cdb:_ string="baci" />
+    </Autoload>
+
+    <LoggingConfig 
+		centralizedLogger="Log"
+		minLogLevel="5"
+		minLogLevelLocal="5"
+		dispatchPacketSize="0"
+		immediateDispatchLevel="8"
+		flushPeriodSeconds="1"
+	>
+    </LoggingConfig>
+
+</Container>
diff --git a/SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml b/SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml
new file mode 100755
index 0000000000000000000000000000000000000000..75b8b71c05b60e3ccbfe3485d0385593a79ea875
--- /dev/null
+++ b/SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Container xmlns="urn:schemas-cosylab-com:Container:1.0"
+           xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+           xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+           xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" 
+           ImplLang="py"
+           Timeout="30.0"
+           UseIFR="true"
+           ManagerRetry="10"
+           Recovery="false">
+
+    <Autoload>
+        <cdb:_ string="baci" />
+    </Autoload>
+
+    <LoggingConfig 
+		centralizedLogger="Log"
+		minLogLevel="5"
+		minLogLevelLocal="5"
+		dispatchPacketSize="0"
+		immediateDispatchLevel="8"
+		flushPeriodSeconds="1"
+	>
+    </LoggingConfig>
+
+</Container>
+
+
+
diff --git a/SRT/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/SRT/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6563a97be273ebaf5e0081e044894672271110e2
--- /dev/null
+++ b/SRT/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Container xmlns="urn:schemas-cosylab-com:Container:1.0"
+           xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+           xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+           xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" 
+           ImplLang="py"
+           Timeout="30.0"
+           UseIFR="true"
+           ManagerRetry="10"
+           Recovery="false">
+
+    <Autoload>
+        <cdb:_ string="baci" />
+    </Autoload>
+
+    <LoggingConfig 
+		centralizedLogger="Log"
+		minLogLevel="5"
+		minLogLevelLocal="5"
+		dispatchPacketSize="0"
+		immediateDispatchLevel="8"
+		flushPeriodSeconds="1"
+	>
+    </LoggingConfig>
+
+</Container>
diff --git a/SRT/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml b/SRT/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1b7485cf85fdd45bf0d57b8447741e2d76dcef4a
--- /dev/null
+++ b/SRT/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!--
+     Giuseppe Carboni, giuseppe.carboni@inaf.it
+-->
+<PyCalmux
+    xmlns="urn:schemas-cosylab-com:PyCalmux:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    IP="127.0.0.1"
+    PORT="12500"/>
diff --git a/SRT/CDB/alma/BACKENDS/TotalPower/TotalPower.xml b/SRT/CDB/alma/BACKENDS/TotalPower/TotalPower.xml
index 38c98a3fe8f32d738a65a3f3121777aa5ebd71ba..59741c7d714acb45d6cca343887eb6ff7e24db3d 100644
--- a/SRT/CDB/alma/BACKENDS/TotalPower/TotalPower.xml
+++ b/SRT/CDB/alma/BACKENDS/TotalPower/TotalPower.xml
@@ -8,17 +8,17 @@
                xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                sender_protocols="TCP=${HOST}:14000"
-               IPAddress="192.168.51.94"
+               IPAddress="192.168.200.129"
                Port="5003"
                CommandLineTimeout="3500000"
                ConnectTimeout="3000000"
                PropertyRefreshTime="1000000"
-               Configuration="CCC"
+               Configuration="CCB"
                TimeTollerance="250000"
                RepetitionCacheTime="2000000"
                RepetitionExpireTime="5000000"
                DataPort="6001"
-               DataIPAddress="192.167.189.8"            	   
+               DataIPAddress="192.168.200.203"
                DataLatency="3000000"
                SenderSleepTime="300000"
                SenderResponseTime="1000000"
diff --git a/SRT/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml b/SRT/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml
new file mode 100755
index 0000000000000000000000000000000000000000..96f1386831e09a6f0a254424d58c9ef5f9bc6400
--- /dev/null
+++ b/SRT/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<CalMuxTable xmlns="urn:schemas-cosylab-com:CalMuxTable:1.0"
+             	xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+				xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+				xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+<BackendEntry><Backend>DBBC</Backend><Channel>6</Channel><Polarity>0</Polarity></BackendEntry>
+
+</CalMuxTable>
diff --git a/SRT/CDB/alma/TestNamespace/Positioner/Positioner.xml b/SRT/CDB/alma/TestNamespace/Positioner/Positioner.xml
new file mode 100755
index 0000000000000000000000000000000000000000..ed5e832ba7e17be806175c3996ecf13c55d2c696
--- /dev/null
+++ b/SRT/CDB/alma/TestNamespace/Positioner/Positioner.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<Positioner
+    xmlns="urn:schemas-cosylab-com:Positioner:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+>
+
+    <status
+        description="integer that represents the Positioner status" 
+    />
+
+    <position
+        description="Device position"
+    />
+
+    <current
+        description="Engine current"
+    />
+
+
+    <seq
+        description="a dummy sequence" 
+    />
+
+</Positioner>
diff --git a/SRT/CDB/alma/TestNamespace/Positioner00/Positioner00.xml b/SRT/CDB/alma/TestNamespace/Positioner00/Positioner00.xml
new file mode 100755
index 0000000000000000000000000000000000000000..ed5e832ba7e17be806175c3996ecf13c55d2c696
--- /dev/null
+++ b/SRT/CDB/alma/TestNamespace/Positioner00/Positioner00.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<Positioner
+    xmlns="urn:schemas-cosylab-com:Positioner:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+>
+
+    <status
+        description="integer that represents the Positioner status" 
+    />
+
+    <position
+        description="Device position"
+    />
+
+    <current
+        description="Engine current"
+    />
+
+
+    <seq
+        description="a dummy sequence" 
+    />
+
+</Positioner>
diff --git a/SRT/CDB/alma/TestNamespace/Positioner01/Positioner01.xml b/SRT/CDB/alma/TestNamespace/Positioner01/Positioner01.xml
new file mode 100755
index 0000000000000000000000000000000000000000..ed5e832ba7e17be806175c3996ecf13c55d2c696
--- /dev/null
+++ b/SRT/CDB/alma/TestNamespace/Positioner01/Positioner01.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<Positioner
+    xmlns="urn:schemas-cosylab-com:Positioner:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+>
+
+    <status
+        description="integer that represents the Positioner status" 
+    />
+
+    <position
+        description="Device position"
+    />
+
+    <current
+        description="Engine current"
+    />
+
+
+    <seq
+        description="a dummy sequence" 
+    />
+
+</Positioner>
diff --git a/SRT/CDB/alma/TestNamespace/Positioner02/Positioner02.xml b/SRT/CDB/alma/TestNamespace/Positioner02/Positioner02.xml
new file mode 100755
index 0000000000000000000000000000000000000000..ed5e832ba7e17be806175c3996ecf13c55d2c696
--- /dev/null
+++ b/SRT/CDB/alma/TestNamespace/Positioner02/Positioner02.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<Positioner
+    xmlns="urn:schemas-cosylab-com:Positioner:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+>
+
+    <status
+        description="integer that represents the Positioner status" 
+    />
+
+    <position
+        description="Device position"
+    />
+
+    <current
+        description="Engine current"
+    />
+
+
+    <seq
+        description="a dummy sequence" 
+    />
+
+</Positioner>
diff --git a/SRT/CDB/alma/TestNamespace/Positioner03/Positioner03.xml b/SRT/CDB/alma/TestNamespace/Positioner03/Positioner03.xml
new file mode 100755
index 0000000000000000000000000000000000000000..ed5e832ba7e17be806175c3996ecf13c55d2c696
--- /dev/null
+++ b/SRT/CDB/alma/TestNamespace/Positioner03/Positioner03.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<Positioner
+    xmlns="urn:schemas-cosylab-com:Positioner:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+>
+
+    <status
+        description="integer that represents the Positioner status" 
+    />
+
+    <position
+        description="Device position"
+    />
+
+    <current
+        description="Engine current"
+    />
+
+
+    <seq
+        description="a dummy sequence" 
+    />
+
+</Positioner>
diff --git a/SRT/Configuration/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml b/SRT/Configuration/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml
new file mode 100644
index 0000000000000000000000000000000000000000..46583798773e85cea63de52652496d767c0bc3b7
--- /dev/null
+++ b/SRT/Configuration/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Giuseppe Carboni <giuseppe.carboni@inaf.it>
+-->
+
+<Component 
+    xmlns="urn:schemas-cosylab-com:Component:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              
+    Name="PyCalmux"
+    Code="Calmux.PyCalmuxImpl"
+    Type="IDL:alma/Backends/CalMux:1.0"
+    Container="PyCalmuxContainer"
+    ImplLang="py"
+    KeepAliveTime="-1"
+    Default="false"
+/>
diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CBAND/LO_CBAND.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CBAND/LO_CBAND.xml
index fd19e1383324891cd6a1afa6d0bbab18bfa0f31e..10c819853d9ee5b4665e96653f65029264f2e226 100644
--- a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CBAND/LO_CBAND.xml
+++ b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CBAND/LO_CBAND.xml
@@ -11,7 +11,7 @@
 	Name="LO_CBAND"
 	Code="LocalOscillatorImpl.LocalOscillator"
 	Type="IDL:alma/Receivers/LocalOscillator:1.0"
-	Container="LocalOscillatorLPContainer"
+	Container="LocalOscillatorCContainer"
 	KeepAliveTime="10"
 	Default="false"
     ImplLang="py"
diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_KBAND/LO_KBAND.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_KBAND/LO_KBAND.xml
index eb9a4c43a3444834af72354f9b447ac762a70227..266c353b109590e190fbeca276bc6fdf82ff3292 100644
--- a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_KBAND/LO_KBAND.xml
+++ b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_KBAND/LO_KBAND.xml
@@ -11,7 +11,7 @@
 	Name="LO_KBAND"
 	Code="LocalOscillatorImpl.LocalOscillator"
 	Type="IDL:alma/Receivers/LocalOscillator:1.0"
-	Container="LocalOscillatorLPContainer"
+	Container="LocalOscillatorKContainer"
 	KeepAliveTime="10"
 	Default="false"
     ImplLang="py"
diff --git a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..645ee4c3a80e6ffb3db572aa99ba974944d582be
--- /dev/null
+++ b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+ *  Author Infos
+ *  ============
+ *  Name:         Giuseppe Carboni
+ *  E-mail:       giuseppe.carboni@inaf.it
+-->
+<Container xmlns="urn:schemas-cosylab-com:Container:1.0"
+           xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+           xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+           xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" 
+           Timeout="30.0"
+           UseIFR="true"
+           ManagerRetry="10"
+           ImplLang="py"
+           Recovery="false">
+
+    <Autoload>
+        <cdb:_ string="baci" />
+    </Autoload>
+
+    <LoggingConfig 
+		centralizedLogger="Log"
+		minLogLevel="5"
+		minLogLevelLocal="5"
+		dispatchPacketSize="0"
+		immediateDispatchLevel="8"
+		flushPeriodSeconds="1"
+	>
+    </LoggingConfig>
+
+</Container>
diff --git a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..645ee4c3a80e6ffb3db572aa99ba974944d582be
--- /dev/null
+++ b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+ *  Author Infos
+ *  ============
+ *  Name:         Giuseppe Carboni
+ *  E-mail:       giuseppe.carboni@inaf.it
+-->
+<Container xmlns="urn:schemas-cosylab-com:Container:1.0"
+           xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+           xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+           xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" 
+           Timeout="30.0"
+           UseIFR="true"
+           ManagerRetry="10"
+           ImplLang="py"
+           Recovery="false">
+
+    <Autoload>
+        <cdb:_ string="baci" />
+    </Autoload>
+
+    <LoggingConfig 
+		centralizedLogger="Log"
+		minLogLevel="5"
+		minLogLevelLocal="5"
+		dispatchPacketSize="0"
+		immediateDispatchLevel="8"
+		flushPeriodSeconds="1"
+	>
+    </LoggingConfig>
+
+</Container>
diff --git a/SRT/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/SRT/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6563a97be273ebaf5e0081e044894672271110e2
--- /dev/null
+++ b/SRT/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Container xmlns="urn:schemas-cosylab-com:Container:1.0"
+           xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" 
+           xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" 
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+           xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" 
+           ImplLang="py"
+           Timeout="30.0"
+           UseIFR="true"
+           ManagerRetry="10"
+           Recovery="false">
+
+    <Autoload>
+        <cdb:_ string="baci" />
+    </Autoload>
+
+    <LoggingConfig 
+		centralizedLogger="Log"
+		minLogLevel="5"
+		minLogLevelLocal="5"
+		dispatchPacketSize="0"
+		immediateDispatchLevel="8"
+		flushPeriodSeconds="1"
+	>
+    </LoggingConfig>
+
+</Container>
diff --git a/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml b/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml
index 2b019586d2a886858daa2121598aec44618ef176..89a110563349da1b04a2d6ef42d675dcac526df9 100755
--- a/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml
+++ b/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml
@@ -33,7 +33,6 @@
     </ServiceComponents>
 
     <ServiceDaemons>
-        <cdb:_ string="nuraghe-mng.srt.inaf.it"/> 
     </ServiceDaemons>
 
 
diff --git a/SRT/Configuration/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml b/SRT/Configuration/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml
new file mode 100644
index 0000000000000000000000000000000000000000..efff824a196945c61b59e43312440c33b5a00de3
--- /dev/null
+++ b/SRT/Configuration/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!--
+     Giuseppe Carboni, giuseppe.carboni@inaf.it
+-->
+<PyCalmux
+    xmlns="urn:schemas-cosylab-com:PyCalmux:1.0" 
+    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    IP="192.168.200.123"
+    PORT="5003"/>
diff --git a/SRT/Configuration/CDB/alma/BACKENDS/TotalPower/TotalPower.xml b/SRT/Configuration/CDB/alma/BACKENDS/TotalPower/TotalPower.xml
index ddd1531743470443f346bd62e1d0bf4985c91839..59741c7d714acb45d6cca343887eb6ff7e24db3d 100644
--- a/SRT/Configuration/CDB/alma/BACKENDS/TotalPower/TotalPower.xml
+++ b/SRT/Configuration/CDB/alma/BACKENDS/TotalPower/TotalPower.xml
@@ -18,7 +18,7 @@
                RepetitionCacheTime="2000000"
                RepetitionExpireTime="5000000"
                DataPort="6001"
-               DataIPAddress="192.168.200.200"            	   
+               DataIPAddress="192.168.200.203"
                DataLatency="3000000"
                SenderSleepTime="300000"
                SenderResponseTime="1000000"
diff --git a/SRT/Configuration/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml b/SRT/Configuration/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml
new file mode 100755
index 0000000000000000000000000000000000000000..091831a26a432fad08ac5d4d4e0ad0ecc7de3c86
--- /dev/null
+++ b/SRT/Configuration/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<CalMuxTable xmlns="urn:schemas-cosylab-com:CalMuxTable:1.0"
+             	xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
+				xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
+				xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+<BackendEntry><Backend>DBBC</Backend><Channel>6</Channel><Polarity>0</Polarity></BackendEntry>
+<BackendEntry><Backend>DFB</Backend><Channel>8</Channel><Polarity>0</Polarity></BackendEntry>
+
+</CalMuxTable>
diff --git a/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml b/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml
index 177d103b2019c9625e5a1745976dd32b1fe6e0a3..43975da9bd07daf3678e6c360d6df2cff09e1314 100644
--- a/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml
+++ b/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml
@@ -20,6 +20,36 @@
 	<bins>1024</bins>
 </Configuration>
 
+<Configuration>
+	<configurationID>SK01</configurationID>
+	<sections>4</sections>
+	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
+	<inputPort>GREGORIAN</inputPort>
+	<beams>2</beams>
+ 	<bandWidth>1500.0</bandWidth>
+ 	<attenuation>7.0</attenuation>		
+	<section_boards>0 1 2 3</section_boards>
+	<polarizations>L R L R</polarizations>
+	<feed>0 0 1 1</feed>
+	<IF>0 1 0 1</IF>
+	<bins>1024</bins>
+</Configuration>
+
+<Configuration>
+	<configurationID>SK02</configurationID>
+	<sections>4</sections>
+	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
+	<inputPort>GREGORIAN</inputPort>
+	<beams>2</beams>
+ 	<bandWidth>1500.0</bandWidth>
+ 	<attenuation>7.0</attenuation>		
+	<section_boards>0 1 2 3</section_boards>
+	<polarizations>L R L R</polarizations>
+	<feed>0 0 2 2</feed>
+	<IF>0 1 0 1</IF>
+	<bins>1024</bins>
+</Configuration>
+
 <Configuration>
 	<configurationID>SK03</configurationID>
 	<sections>4</sections>
@@ -35,6 +65,36 @@
 	<bins>1024</bins>
 </Configuration>
 
+<Configuration>
+	<configurationID>SK04</configurationID>
+	<sections>4</sections>
+	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
+	<inputPort>GREGORIAN</inputPort>
+	<beams>2</beams>
+ 	<bandWidth>1500.0</bandWidth>
+ 	<attenuation>7.0</attenuation>		
+	<section_boards>0 1 2 3</section_boards>
+	<polarizations>L R L R</polarizations>
+	<feed>0 0 4 4</feed>
+	<IF>0 1 0 1</IF>
+	<bins>1024</bins>
+</Configuration>
+
+<Configuration>
+	<configurationID>SK05</configurationID>
+	<sections>4</sections>
+	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
+	<inputPort>GREGORIAN</inputPort>
+	<beams>2</beams>
+ 	<bandWidth>1500.0</bandWidth>
+ 	<attenuation>7.0</attenuation>		
+	<section_boards>0 1 2 3</section_boards>
+	<polarizations>L R L R</polarizations>
+	<feed>0 0 5 5</feed>
+	<IF>0 1 0 1</IF>
+	<bins>1024</bins>
+</Configuration>
+
 <Configuration>
 	<configurationID>SK06</configurationID>
 	<sections>4</sections>
@@ -125,6 +185,36 @@
 	<bins>1024</bins>
 </Configuration>
 
+<Configuration>
+	<configurationID>SK01S</configurationID>
+	<sections>4</sections>
+	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
+	<inputPort>GREGORIAN</inputPort>
+	<beams>2</beams>
+ 	<bandWidth>1500.0</bandWidth>
+ 	<attenuation>7.0</attenuation>		
+	<section_boards>0 1 2 3</section_boards>
+	<polarizations>S S S S</polarizations>
+	<feed>0 0 1 1</feed>
+	<IF>0 1 0 1</IF>
+	<bins>1024</bins>
+</Configuration>
+
+<Configuration>
+	<configurationID>SK02S</configurationID>
+	<sections>4</sections>
+	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
+	<inputPort>GREGORIAN</inputPort>
+	<beams>2</beams>
+ 	<bandWidth>1500.0</bandWidth>
+ 	<attenuation>7.0</attenuation>		
+	<section_boards>0 1 2 3</section_boards>
+	<polarizations>S S S S</polarizations>
+	<feed>0 0 2 2</feed>
+	<IF>0 1 0 1</IF>
+	<bins>1024</bins>
+</Configuration>
+
 <Configuration>
 	<configurationID>SK03S</configurationID>
 	<sections>4</sections>
@@ -140,6 +230,36 @@
 	<bins>1024</bins>
 </Configuration>
 
+<Configuration>
+	<configurationID>SK04S</configurationID>
+	<sections>4</sections>
+	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
+	<inputPort>GREGORIAN</inputPort>
+	<beams>2</beams>
+ 	<bandWidth>1500.0</bandWidth>
+ 	<attenuation>7.0</attenuation>		
+	<section_boards>0 1 2 3</section_boards>
+	<polarizations>S S S S</polarizations>
+	<feed>0 0 4 4</feed>
+	<IF>0 1 0 1</IF>
+	<bins>1024</bins>
+</Configuration>
+
+<Configuration>
+	<configurationID>SK05S</configurationID>
+	<sections>4</sections>
+	<calSwitchingEnabled>TRUE</calSwitchingEnabled>
+	<inputPort>GREGORIAN</inputPort>
+	<beams>2</beams>
+ 	<bandWidth>1500.0</bandWidth>
+ 	<attenuation>7.0</attenuation>		
+	<section_boards>0 1 2 3</section_boards>
+	<polarizations>S S S S</polarizations>
+	<feed>0 0 5 5</feed>
+	<IF>0 1 0 1</IF>
+	<bins>1024</bins>
+</Configuration>
+
 <Configuration>
 	<configurationID>SK06S</configurationID>
 	<sections>4</sections>
diff --git a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml
index ef8122fbd93888eb898f0629bb12074630619c62..759140ae0667759647440b5223d38ffcc60f6738 100644
--- a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml
+++ b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml
@@ -14,7 +14,7 @@
     <toolAgainstInterfaceRepository></toolAgainstInterfaceRepository>
     <toolAgainstNameService></toolAgainstNameService>
     <containers>
-        <select>32</select>
+        <select>35</select>
         <againstManagerHost></againstManagerHost>
         <againstManagerPort></againstManagerPort>
         <againstCDB></againstCDB>
@@ -82,6 +82,24 @@
             <remoteHost>MASTERHOST</remoteHost>
             <remoteAccount>discos</remoteAccount>
         </container>
+        <container>
+            <name>LocalOscillatorCContainer</name>
+            <type>py</type>
+            <heapSizeMB></heapSizeMB>
+            <useDedicatedSettings>true</useDedicatedSettings>
+            <scriptBase>0</scriptBase>
+            <remoteHost>MASTERHOST</remoteHost>
+            <remoteAccount>discos</remoteAccount>
+        </container>
+        <container>
+            <name>LocalOscillatorKContainer</name>
+            <type>py</type>
+            <heapSizeMB></heapSizeMB>
+            <useDedicatedSettings>true</useDedicatedSettings>
+            <scriptBase>0</scriptBase>
+            <remoteHost>MASTERHOST</remoteHost>
+            <remoteAccount>discos</remoteAccount>
+        </container>
         <container>
             <name>LoggerContainer</name>
             <type>cpp</type>
@@ -154,6 +172,15 @@
             <remoteHost>MASTERHOST</remoteHost>
             <remoteAccount>discos</remoteAccount>
         </container>
+        <container>
+            <name>PyCalmuxContainer</name>
+            <type>py</type>
+            <heapSizeMB></heapSizeMB>
+            <useDedicatedSettings>true</useDedicatedSettings>
+            <scriptBase>0</scriptBase>
+            <remoteHost>MASTERHOST</remoteHost>
+            <remoteAccount>discos</remoteAccount>
+        </container>
         <container>
             <name>SardaraContainer</name>
             <type>cpp</type>
diff --git a/SystemMake/Makefile b/SystemMake/Makefile
index 0cb74ffd3606619609b970c1a52181f80582c8b0..404a25456b47ca720ea1f0c456c2c7ea1e5a05b9 100644
--- a/SystemMake/Makefile
+++ b/SystemMake/Makefile
@@ -34,7 +34,7 @@ COMMON_LIBRARIES:=SlaLibrary IRALibrary DiscosVersion TextWindowLibrary ParserLi
 COMMON_SERVERS:=AntennaBoss Observatory OTF PointingModel Refraction SkySource \
                 Moon FitsWriter Scheduler ReceiversBoss ExternalClients \
                 CalibrationTool TotalPower NoiseGenerator CustomLogger \
-                XBackend PyDewarPositioner Sardara PyLocalOscillator MFKBandBaseReceiver
+                XBackend PyDewarPositioner Sardara PyLocalOscillator MFKBandBaseReceiver PyCalmux
 COMMON_CLIENTS:=AntennaBossTextClient ObservatoryTextClient \
                 GenericBackendTextClient ReceiversBossTextClient \
                 SystemTerminal CaltoolClient CustomLoggingClient \