diff --git a/tangostationcontrol/tangostationcontrol/devices/sdp/beamlet.py b/tangostationcontrol/tangostationcontrol/devices/sdp/beamlet.py
index e3eebee2b0da505922ff0d270d02c4ed532c7dc1..e490722440967062030e20df8ba0dec97b2ffb78 100644
--- a/tangostationcontrol/tangostationcontrol/devices/sdp/beamlet.py
+++ b/tangostationcontrol/tangostationcontrol/devices/sdp/beamlet.py
@@ -8,10 +8,10 @@
 """
 
 # PyTango imports
-from tango.server import device_property
-from tango import AttrWriteType
-# Additional import
+from tango.server import device_property, command
+from tango import AttrWriteType, DevVarFloatArray, DevVarULongArray
 
+# Additional import
 from tangostationcontrol.common.entrypoint import entry
 from tangostationcontrol.clients.attribute_wrapper import attribute_wrapper
 from tangostationcontrol.devices.opcua_device import opcua_device
@@ -130,9 +130,23 @@ class Beamlet(opcua_device):
     # Overloaded functions
     # --------
 
+    # --------
+    # internal functions
+    # --------
+    def _calculate_bf_weights(self, phases: numpy.ndarray):
+        pass
+
     # --------
     # Commands
     # --------
+    @command(dtype_in=DevVarFloatArray, dtype_out=DevVarULongArray)
+    def calculate_bf_weights(self, phases: numpy.ndarray):
+        """ converts a difference in phase (in radiants) to a FPGA weight (in complex number) """
+        
+        # Calculate the FPGA weight array
+        bf_weights = self._calculate_bf_weights(phases)      
+        
+        return bf_weights
 
 # ----------
 # Run server