diff --git a/Common/Libraries/ComponentProxy/include/BackendsProxy.h b/Common/Libraries/ComponentProxy/include/BackendsProxy.h
index 0b11e0f0133b2e89434168e2e21fc8725d1fd864..c86b6b83abf1b2fb1eb33909bddb58ddb1b6b140 100644
--- a/Common/Libraries/ComponentProxy/include/BackendsProxy.h
+++ b/Common/Libraries/ComponentProxy/include/BackendsProxy.h
@@ -6,6 +6,7 @@
 #include <HolographyC.h>
 #include <NoiseGeneratorC.h>
 #include <TotalPowerC.h>
+#include <CalMuxC.h>
 
 #include "ComponentProxy.h"
 
@@ -16,6 +17,7 @@ namespace Backends
     PROXY_COMPONENT(Holography);
     PROXY_COMPONENT(NoiseGenerator);
     PROXY_COMPONENT(TotalPower);
+    PROXY_COMPONENT(CalMux);
 };
 
 #endif
diff --git a/Common/Servers/ReceiversBoss/include/RecvBossCore.h b/Common/Servers/ReceiversBoss/include/RecvBossCore.h
index 10f98bcd0da2ed3a053d02c3cb289ca37daa0d68..cd613ff691fbf74089bea658d076c1623e4733e2 100644
--- a/Common/Servers/ReceiversBoss/include/RecvBossCore.h
+++ b/Common/Servers/ReceiversBoss/include/RecvBossCore.h
@@ -28,6 +28,7 @@
 #include <acsncSimpleSupplier.h>
 #include <ParserConnector.h>
 #include "Configuration.h"
+#include <BackendsProxy.h>
 #define _RECVBOSSCORE_MAX_IFS 4
 
 #elif COMPILE_TARGET_NT
@@ -350,6 +351,7 @@ private:
 	ACS::Time m_feedsEpoch;
 	ACS::Time m_IFsEpoch;
 	ACS::Time m_modeEpoch;
+	Backends::CalMux_proxy m_xalMux_proxy;
 
 #elif COMPILE_TARGET_NT
 
diff --git a/Common/Servers/ReceiversBoss/src/RecvBossCore_mc.i b/Common/Servers/ReceiversBoss/src/RecvBossCore_mc.i
index d071c6858f2e5e70761b36519c76b0f0d0e57d96..773bc67cb49cc0f77899cbc1da2b6a1a390d477c 100644
--- a/Common/Servers/ReceiversBoss/src/RecvBossCore_mc.i
+++ b/Common/Servers/ReceiversBoss/src/RecvBossCore_mc.i
@@ -45,6 +45,8 @@ void CRecvBossCore::initialize(maci::ContainerServices* services,CConfiguration
 	catch (...) {
 		_THROW_EXCPT(ComponentErrors::UnexpectedExImpl,"CRecvBossCore::initialize()");
 	}
+	m_calMux_proxy.setContainerServices(services);
+   m_calMux_proxy.setComponentName("IDL:alma/Backends/CalMux:1.0");
 	ACS_LOG(LM_FULL_INFO,"CRecvBossCore::initialize()",(LM_INFO,"ReceiversBoss notification channel open"));
 }
 
@@ -108,13 +110,14 @@ void CRecvBossCore::calOn() throw (ComponentErrors::ValidationErrorExImpl,Compon
 		}
 	}
 	else if (m_currentRecvCode=="XXP") {
+		m_calMux_proxy->calOn();
 		// turn the marca on through the FS
-		IRA::CString fsBuffer("calon\n");
+		/*IRA::CString fsBuffer("calon\n");
 		if (!sendToFS((const void *)fsBuffer,fsBuffer.GetLength())) {
 			_EXCPT(ComponentErrors::SocketErrorExImpl,impl,"CRecvBossCore::calOn()");
 			m_status=Management::MNG_FAILURE;
 			throw impl;
-		}
+		}*/
 	}
 	else {
 		_EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CRecvBossCore::calOn()");
@@ -173,12 +176,13 @@ void CRecvBossCore::calOff() throw (ComponentErrors::ValidationErrorExImpl,Compo
 	}
 	else if (m_currentRecvCode=="XXP") {
 		// turn the marca on through thr FS
-		IRA::CString fsBuffer("caloff\n");
+		/*IRA::CString fsBuffer("caloff\n");
 		if (!sendToFS((const void *)fsBuffer,fsBuffer.GetLength())) {
 			_EXCPT(ComponentErrors::SocketErrorExImpl,impl,"CRecvBossCore::calOff()");
 			m_status=Management::MNG_FAILURE;
 			throw impl;
-		}				
+		}*/
+		m_calMux_proxy->calOff();			
 	}
 	else {
 		_EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CRecvBossCore::calOff()");
diff --git a/Medicina/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml b/Medicina/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml
new file mode 100644
index 0000000000000000000000000000000000000000..46583798773e85cea63de52652496d767c0bc3b7
--- /dev/null
+++ b/Medicina/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/Medicina/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/Medicina/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6563a97be273ebaf5e0081e044894672271110e2
--- /dev/null
+++ b/Medicina/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/Medicina/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml b/Medicina/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7097b113041f4af42773117a07b9bcfbd881ca64
--- /dev/null
+++ b/Medicina/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!--
+     Andrea Orlati, andrea.orlati@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/Medicina/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml b/Medicina/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml
new file mode 100755
index 0000000000000000000000000000000000000000..a76f12d5f416a1fbd002d24f07a707e9dd251d77
--- /dev/null
+++ b/Medicina/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>TotalPower</Backend><Channel>0</Channel><Polarity>1</Polarity></BackendEntry>
+<BackendEntry><Backend>DBBC</Backend><Channel>6</Channel><Polarity>0</Polarity></BackendEntry>
+
+</CalMuxTable>
diff --git a/Medicina/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/Medicina/CDB/alma/Procedures/StationProcedures/StationProcedures.xml
index 3bb13f44db1d54e68d80e075ff095ff5bbcc5283..5d40085f314a64287d783a30576fdec8a7c62a3e 100644
--- a/Medicina/CDB/alma/Procedures/StationProcedures/StationProcedures.xml
+++ b/Medicina/CDB/alma/Procedures/StationProcedures/StationProcedures.xml
@@ -12,6 +12,8 @@
 	initialize=CCC
 	setSection=0,*,730.0,*,*,*,*
 	setSection=1,*,730.0,*,*,*,*
+	dmed=default
+	calmux=TotalPower
 	device=0
 	calOff
 	restFrequency=0
@@ -29,6 +31,8 @@
 	setSection=1,*,300.0,*,*,*,*
 	setAttenuation=0,8
 	setAttenuation=1,12
+	dmed=default
+	calmux=TotalPower
 	device=0
 	calOff
 	restFrequency=0
@@ -42,6 +46,8 @@
 	servoSetup=KKC
 	chooseBackend=TotalPower
 	initialize=KKC
+	dmed=default
+	calmux=TotalPower
 	device=0
 	setAttenuation=0,9
 	setAttenuation=1,9
@@ -61,6 +67,8 @@
 	initialize=XXP
 	setSection=0,*,730.0,*,*,*,*
 	setSection=1,*,730.0,*,*,*,*
+	dmed=default
+	calmux=TotalPower
 	device=0
 	calOff
 	restFrequency=0
@@ -77,6 +85,8 @@
 	initialize=CCCL
 	setSection=0,*,300.0,*,*,*,*
 	setSection=1,*,300.0,*,*,*,*
+	dmed=default
+	calmux=TotalPower
 	setAttenuation=0,8
 	setAttenuation=1,8
 	device=0
@@ -95,6 +105,8 @@
 	initialize=CHCL
 	setSection=0,*,300.0,*,*,*,*
 	setSection=1,*,300.0,*,*,*,*
+	dmed=default
+	calmux=TotalPower
 	setAttenuation=0,8
 	setAttenuation=1,8
 	device=0
diff --git a/Medicina/Configuration/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml b/Medicina/Configuration/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml
new file mode 100644
index 0000000000000000000000000000000000000000..46583798773e85cea63de52652496d767c0bc3b7
--- /dev/null
+++ b/Medicina/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/Medicina/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6563a97be273ebaf5e0081e044894672271110e2
--- /dev/null
+++ b/Medicina/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/Medicina/Configuration/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml b/Medicina/Configuration/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml
new file mode 100644
index 0000000000000000000000000000000000000000..403442ffc319e48627b7f71890717ef28f6b196f
--- /dev/null
+++ b/Medicina/Configuration/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!--
+     Andrea Orlati, andrea.orlati@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.51.202"
+    PORT="5003"/>
diff --git a/Medicina/Configuration/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml b/Medicina/Configuration/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml
new file mode 100755
index 0000000000000000000000000000000000000000..a76f12d5f416a1fbd002d24f07a707e9dd251d77
--- /dev/null
+++ b/Medicina/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>TotalPower</Backend><Channel>0</Channel><Polarity>1</Polarity></BackendEntry>
+<BackendEntry><Backend>DBBC</Backend><Channel>6</Channel><Polarity>0</Polarity></BackendEntry>
+
+</CalMuxTable>
diff --git a/Medicina/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/Medicina/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml
index a63c30bbd1d360249911fc5dd1b15ea14f271120..c449277ccdb5006053c9e09f80573877956410af 100644
--- a/Medicina/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml
+++ b/Medicina/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml
@@ -11,6 +11,7 @@
 	chooseBackend=TotalPower
 	initialize=CCC
 	dmed=default
+	calmux=TotalPower
 	setSection=0,*,730.0,*,*,*,*
 	setSection=1,*,730.0,*,*,*,*
 	device=0
@@ -27,6 +28,7 @@
 	chooseBackend=TotalPower
 	initialize=CHC
 	dmed=default
+	calmux=TotalPower
 	setSection=0,*,300.0,*,*,*,*
 	setSection=1,*,300.0,*,*,*,*
 	setAttenuation=0,8
@@ -45,6 +47,7 @@
 	chooseBackend=TotalPower
 	initialize=KKC
 	dmed=default
+	calmux=TotalPower
 	device=0
 	setAttenuation=0,9
 	setAttenuation=1,9
@@ -63,6 +66,7 @@
 	chooseBackend=TotalPower
 	initialize=XXP
 	dmed=default
+	calmux=TotalPower
 	setSection=0,*,730.0,*,*,*,*
 	setSection=1,*,730.0,*,*,*,*
 	device=0
@@ -80,6 +84,7 @@
 	chooseBackend=TotalPower
 	initialize=CCCL
 	dmed=default
+	calmux=TotalPower
 	setSection=0,*,300.0,*,*,*,*
 	setSection=1,*,300.0,*,*,*,*
 	setAttenuation=0,8
@@ -99,6 +104,7 @@
 	chooseBackend=TotalPower
 	initialize=CHCL
 	dmed=default
+	calmux=TotalPower
 	setSection=0,*,300.0,*,*,*,*
 	setSection=1,*,300.0,*,*,*,*
 	setAttenuation=0,8
diff --git a/Medicina/Misc/MedScripts/app-defaults/discosStartup.xml b/Medicina/Misc/MedScripts/app-defaults/discosStartup.xml
index c0e00968c12e8d9ed35fed43e7935f2f90a406b7..acc5a3bd5c59ed186bf76f6295e7dce8df1a4f9b 100644
--- a/Medicina/Misc/MedScripts/app-defaults/discosStartup.xml
+++ b/Medicina/Misc/MedScripts/app-defaults/discosStartup.xml
@@ -118,6 +118,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>PointContainer</name>
             <type>cpp</type>