diff --git a/tangostationcontrol/tangostationcontrol/devices/beam.py b/tangostationcontrol/tangostationcontrol/devices/beam.py
index 3330d3a3b2be83035d9915ccb5b421e7912a995b..2ad554c3e1285f28f04c071c5fdfa33146173300 100644
--- a/tangostationcontrol/tangostationcontrol/devices/beam.py
+++ b/tangostationcontrol/tangostationcontrol/devices/beam.py
@@ -47,6 +47,12 @@ class Beam(lofar_device):
         default_value = numpy.tile(numpy.array([3826923.546, 460915.441, 5064643.489]),(96,16,1)) # CS001LBA, in ITRF2005 timestamp 2012.5
     )
 
+    HBAT_signal_input_delays = device_property(
+        dtype='DevVarFloatArray',
+        mandatory=False,
+        default_value = numpy.zeros((96,32), dtype=numpy.float64)
+    )
+
     # ----------
     # Attributes
     # ----------
@@ -99,16 +105,19 @@ class Beam(lofar_device):
         return delays
 
     @staticmethod
-    def _calculate_HBAT_bf_delays(delays: numpy.ndarray):
+    def _calculate_HBAT_bf_delays(delays: numpy.ndarray, HBAT_signal_input_delays: numpy.ndarray):
         """
         Helper function that converts a signal path delay (in seconds) to an analog beam weight,
         which is a value per tile per dipole per polarisation.
         """
         # Duplicate delay values per polarisation
-        polarised_delays = numpy.tile(delays, 2)                      # output dims -> 96x32             
+        polarised_delays = numpy.tile(delays, 2)                      # output dims -> 96x32           
 
+        # Add signal input delay
+        summed_delays = numpy.add(polarised_delays,HBAT_signal_input_delays)
+        
         # Divide by 0.5ns and round
-        HBAT_bf_delays = numpy.array(polarised_delays / 0.5e-09, dtype=numpy.int64)
+        HBAT_bf_delays = numpy.array(summed_delays / 0.5e-09, dtype=numpy.int64)
 
         return HBAT_bf_delays
 
@@ -118,8 +127,9 @@ class Beam(lofar_device):
         """
         # Retrieve delays from casacore
         delays = self._HBAT_delays(pointing_direction, timestamp)
+        
         # Convert delays into beam weights
-        HBAT_bf_delays = self._calculate_HBAT_bf_delays(delays)
+        HBAT_bf_delays = self._calculate_HBAT_bf_delays(delays, self.HBAT_signal_input_delays)
 
         # Write weights to RECV
         self.recv_proxy.HBAT_BF_delays_RW = HBAT_bf_delays
diff --git a/tangostationcontrol/tangostationcontrol/test/devices/test_beam_device.py b/tangostationcontrol/tangostationcontrol/test/devices/test_beam_device.py
index 06a6d858114b30a1dc1f1f6ba7314aadf1a2c5c3..71d6745c9333dd1e981d9191003a76e697bce95c 100644
--- a/tangostationcontrol/tangostationcontrol/test/devices/test_beam_device.py
+++ b/tangostationcontrol/tangostationcontrol/test/devices/test_beam_device.py
@@ -68,7 +68,14 @@ class TestBeamDevice(base.TestCase):
             proxy.on()
             self.assertEqual(DevState.ON, proxy.state())
         
+            # verify property is retrieved (workaround)
+            HBAT_signal_input_delays = beam.Beam.HBAT_signal_input_delays.default_value
+            self.assertTrue((HBAT_signal_input_delays==numpy.zeros((96,32), dtype=numpy.float64)).all())
+
             # verify if values are actually transformed
-            HBAT_delays = proxy.HBAT_delays(numpy.array([["J2000","0deg","0deg"]] * 96).flatten())
-            HBAT_bf_delays = beam.Beam._calculate_HBAT_bf_delays(HBAT_delays)
+            HBAT_delays_flat = proxy.HBAT_delays(numpy.array([["J2000","0deg","0deg"]] * 96).flatten()) 
+            HBAT_delays = numpy.array(HBAT_delays_flat).reshape(96,16)
+
+            HBAT_bf_delays = beam.Beam._calculate_HBAT_bf_delays(HBAT_delays, HBAT_signal_input_delays)
             self.assertNotEqual(HBAT_delays, HBAT_bf_delays)
+            self.assertTrue(HBAT_bf_delays[0][0]==numpy.int64((HBAT_delays[0][0]+HBAT_signal_input_delays[0][0])/0.5e-09))