diff --git a/CDB/stations/DTS_ConfigDb.json b/CDB/stations/DTS_ConfigDb.json
index c5bbf009334e47e2dd0eed89dbddea6889f83933..741d9dc910e6ff35d04e993dab21dbd3eb08cc01 100644
--- a/CDB/stations/DTS_ConfigDb.json
+++ b/CDB/stations/DTS_ConfigDb.json
@@ -1,5 +1,18 @@
 {
     "servers": {
+        "boot": {
+            "STAT": {
+                "Boot": {
+                    "STAT/Boot/1": {
+                        "properties": {
+                            "Initialise_Hardware": [
+                                "True"
+                            ]
+                        }
+                    }
+                }
+            }
+        },
         "APSCT": {
             "STAT": {
                 "APSCT": {
diff --git a/CDB/stations/LTS_ConfigDb.json b/CDB/stations/LTS_ConfigDb.json
index 7c03ff1434f5e88860d6d174ad7ce952750606b6..faa42937967fe6e1514414d4606556033fcf1959 100644
--- a/CDB/stations/LTS_ConfigDb.json
+++ b/CDB/stations/LTS_ConfigDb.json
@@ -1,5 +1,18 @@
 {
     "servers": {
+        "boot": {
+            "STAT": {
+                "Boot": {
+                    "STAT/Boot/1": {
+                        "properties": {
+                            "Initialise_Hardware": [
+                                "True"
+                            ]
+                        }
+                    }
+                }
+            }
+        },
         "RECV": {
             "STAT": {
                 "RECV": {
diff --git a/CDB/stations/simulators_ConfigDb.json b/CDB/stations/simulators_ConfigDb.json
index df2ffc1c1194282f7cc92cd0e7df1e5eb90b3a58..c9c1b8135f389e8df23b266fbda4246139590a22 100644
--- a/CDB/stations/simulators_ConfigDb.json
+++ b/CDB/stations/simulators_ConfigDb.json
@@ -1,5 +1,18 @@
 {
     "servers": {
+        "boot": {
+            "STAT": {
+                "Boot": {
+                    "STAT/Boot/1": {
+                        "properties": {
+                            "Initialise_Hardware": [
+                                "False"
+                            ]
+                        }
+                    }
+                }
+            }
+        },
         "APSCT": {
             "STAT": {
                 "APSCT": {
diff --git a/tangostationcontrol/tangostationcontrol/devices/boot.py b/tangostationcontrol/tangostationcontrol/devices/boot.py
index 574464d6cbc611375ee497bc1700a9ff55ce426a..c4df70bf5027a8068a1e58326c5ad442e63ad4fc 100644
--- a/tangostationcontrol/tangostationcontrol/devices/boot.py
+++ b/tangostationcontrol/tangostationcontrol/devices/boot.py
@@ -49,8 +49,9 @@ class DevicesInitialiser(object):
         the start() method, and progress can be followed by inspecting the
         members progress (0-100), status (string), and is_running() (bool).
     """
-    def __init__(self, device_names, ignore_unavailable_devices=True, proxy_timeout=10.0):
+    def __init__(self, device_names, ignore_unavailable_devices=True, initialise_hardware=True, proxy_timeout=10.0):
         self.ignore_unavailable_devices = ignore_unavailable_devices
+        self.initialise_hardware = initialise_hardware
 
         self.device_names = device_names
         self.proxy_timeout = proxy_timeout
@@ -207,8 +208,9 @@ class DevicesInitialiser(object):
         self.set_status(f"[restarting {device_name}] Setting defaults.")
         proxy.set_defaults()
 
-        self.set_status(f"[restarting {device_name}] Initialising hardware.")
-        proxy.initialise_hardware()
+        if self.initialise_hardware:
+            self.set_status(f"[restarting {device_name}] Initialising hardware.")
+            proxy.initialise_hardware()
 
         # mark as ready for service
         self.set_status(f"[restarting {device_name}] Turning on device.")
@@ -230,6 +232,13 @@ class Boot(lofar_device):
         default_value=10.0,
     )
 
+    # Initialise the hardware when initialising a station. Can end badly when using simulators.
+    Initialise_Hardware = device_property(
+        dtype='DevBoolean',
+        mandatory=False,
+        default_value=True,
+    )
+
     # Which devices to initialise, and in which order
     Device_Names = device_property(
         dtype='DevVarStringArray',
@@ -291,7 +300,7 @@ class Boot(lofar_device):
     @log_exceptions()
     def configure_for_initialise(self):
         # create an initialiser object so we can query it even before starting the (first) initialisation
-        self.initialiser = DevicesInitialiser(self.Device_Names, self.Ignore_Unavailable_Devices, self.DeviceProxy_Time_Out)
+        self.initialiser = DevicesInitialiser(self.Device_Names, self.Ignore_Unavailable_Devices, self.Initialise_Hardware, self.DeviceProxy_Time_Out)
 
     @command()
     @DebugIt()
@@ -322,7 +331,7 @@ class Boot(lofar_device):
             pass
 
         # start new initialisation attempt
-        self.initialiser = DevicesInitialiser(self.Device_Names, self.Ignore_Unavailable_Devices, self.DeviceProxy_Time_Out)
+        self.initialiser = DevicesInitialiser(self.Device_Names, self.Ignore_Unavailable_Devices, self.Initialise_Hardware, self.DeviceProxy_Time_Out)
         self.initialiser.start()
 
     @command()