Repository: tektronix/tm_devices (language: python)

Issue:
[FEAT]: Customizable default VISA timeout
### Description

I would like to be able to customize what the default VISA timeout for all new VISA connections is. The current default of 30 seconds is really long.

### Additional Information

_No response_


Discussion / hints:

Fix patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 328632f2..c22c3b03 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,9 +18,14 @@ Valid subsections within a version are:
 
 Things to be included in the next release go here.
 
+### Added
+
+- Added a config option (`default_visa_timeout`) to specify the default VISA timeout for all initial VISA device connections.
+
 ### Changed
 
 - Switched all workflows to use the new [`tektronix/python-package-ci-cd`](https://github.com/tektronix/python-package-ci-cd) reusable workflows.
+- Reduced the out-of-the box `default_visa_timeout` value from 30 seconds to 5 seconds.
 
 ---
 
diff --git a/docs/configuration.md b/docs/configuration.md
index f88a571e..38ca35ee 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -32,7 +32,7 @@ things change, but does not require modification with every script execution.
 
 A config file can be **overruled** by an
 [environment variable](#environment-variable) configuration. That means that if
-you have both a config file defined and the environment variables set, the
+you have both a config file defined and **either** of the environment variables set, the
 config parser will **always** prioritize the environment variables. Make sure to
 delete the environment variables if you want to switch back to the config file.
 
@@ -228,6 +228,7 @@ options:
   setup_cleanup: false
   teardown_cleanup: false
   retry_visa_connection: false
+  default_visa_timeout: 5000
   check_for_updates: false
 ```
 
@@ -252,6 +253,9 @@ runtime behavior configuration.
 - `retry_visa_connection`
     - This config option will enable a second attempt when creating VISA connections,
         the second attempt is made after waiting, to allow the device time to become available.
+- `default_visa_timeout`
+    - This config option is used to set the default VISA timeout value in milliseconds.
+        The default value of this config option is 5000 ms.
 - `check_for_updates`
     - This config option will enable a check for any available updates on pypi.org for the
         package when the `DeviceManager` is instantiated.
@@ -314,6 +318,7 @@ options:
   verbose_mode: false
   verbose_visa: false
   retry_visa_connection: false
+  default_visa_timeout: 10000  # 10 second default VISA timeout
   check_for_updates: false
 ```
 
@@ -388,6 +393,7 @@ standalone = false
 verbose_mode = false
 verbose_visa = false
 retry_visa_connection = false
+default_visa_timeout = 10000  # 10 second default VISA timeout
 check_for_updates = false
 ```
 
@@ -399,7 +405,9 @@ Two environment variables, `TM_OPTIONS` and `TM_DEVICES`, can be used for
 runtime configurations and have a **HIGHER** priority than the config file.
 
 - `TM_OPTIONS` is a comma-delimited, all-uppercase list of enabled options
-    names.
+    names and values. Config options that act as boolean flags can be set simply by
+    adding the option name to the environment variable. Config options that require non-boolean
+    inputs should be specified with the option name followed by an equals sign and the value.
 - `TM_DEVICES` is a `~~~`-delimited list of device entries.
     - Each device entry is a comma-delimited list of `<key>=<value>` pairs.
 
@@ -409,8 +417,8 @@ execution scenarios where the list of devices needs to be temporary and
 workspace variables can be changed easily per script executor.
 
 There is no mechanism for merging the options and devices between the two config
-methods; if either of the `TM_DEVICES` or `TM_OPTIONS` environment variables is
-defined, the config file is ignored. If the environment variable(s) exist,
+methods; if **either** of the `TM_DEVICES` or `TM_OPTIONS` environment variables is
+defined, the config file is completely ignored. If **either** of the environment variable(s) exist,
 either permanently or temporarily, for the lifetime of the shell instance, they
 will override any existing config file you have.
 
@@ -424,8 +432,8 @@ environment variable)
 TM_OPTIONS = "STANDALONE"
 TM_DEVICES = "address=123.45.67.255,device_type=SMU"
 
-# Sample scope using hostname and AFG using IP address with cleanup
-TM_OPTIONS = "SETUP_CLEANUP,TEARDOWN_CLEANUP"
+# Sample scope using hostname and AFG using IP address with cleanup and a non-standard default VISA timeout
+TM_OPTIONS = "SETUP_CLEANUP,TEARDOWN_CLEANUP,DEFAULT_VISA_TIMEOUT=10000"
 TM_DEVICES = "address=MDO9876-C543210,device_type=SCOPE~~~address=123.45.67.255,device_type=AFG"
 
 # Sample scope using IP address and AWG using hostname
diff --git a/docs/known_words.txt b/docs/known_words.txt
index b7941ab8..e6aed8e1 100644
--- a/docs/known_words.txt
+++ b/docs/known_words.txt
@@ -55,6 +55,7 @@ mailto
 md
 mixin
 mixins
+ms
 multimeters
 mv
 namespace
diff --git a/pyproject.toml b/pyproject.toml
index 1a2790ef..2af869dc 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -426,6 +426,7 @@ deps =
 passenv =
     PYRIGHT_PYTHON_GLOBAL_NODE  # If set outside of tox, this will cause python-pyright to use nodeenv to install node rather than use the system node
 setenv =
+    COVERAGE_FILE = .coverage_{envname}
     DOC_PYTHON_VERSION = python3.11  # Keep this in sync with .readthedocs.yml and any CI scripts
     # Skip pre-commit checks that are not needed (yamlfix should be removed from this list once Python 3.8 support is dropped)
     SKIP = file-contents-sorter,yamlfix
diff --git a/src/tm_devices/components/dm_config_parser.py b/src/tm_devices/components/dm_config_parser.py
index 3396ad72..53ec8b2b 100644
--- a/src/tm_devices/components/dm_config_parser.py
+++ b/src/tm_devices/components/dm_config_parser.py
@@ -314,18 +314,17 @@ def write_config_to_file(
         """
         if config_file_path is None:
             config_file_path = self.defined_config_file_path
-        else:
-            config_file_path = cast(str, config_file_path)
 
-        with open(config_file_path, "w", encoding="utf-8") as config_file:
-            file_type = (
-                DMConfigParser.FileType.TOML
-                if config_file_path.lower().endswith(".toml")
-                else DMConfigParser.FileType.YAML
-            )
-            config_file.write(self.to_config_file_text(file_type=file_type))
+        config_path_obj = pathlib.Path(config_file_path)
 
-        return config_file_path
+        file_type = (
+            DMConfigParser.FileType.TOML
+            if config_path_obj.as_posix().lower().endswith(".toml")
+            else DMConfigParser.FileType.YAML
+        )
+        config_path_obj.write_text(self.to_config_file_text(file_type=file_type), encoding="utf-8")
+
+        return config_path_obj.as_posix()
 
     ################################################################################################
     # Private Methods
@@ -353,17 +352,24 @@ def __parse_env_options(self) -> DMConfigOptions:
         Raises:
             KeyError: Indicates unrecognized option name.
         """
-        options_list = [
-            arg.strip() for arg in os.getenv(self.OPTIONS_ENV_VARIABLE, "").split(",") if arg
-        ]
+        options_dict = {
+            arg.strip().split("=", maxsplit=1)[0]: bool(arg)
+            if "=" not in arg
+            else arg.split("=", maxsplit=1)[-1]
+            for arg in os.getenv(self.OPTIONS_ENV_VARIABLE, "").split(",")
+            if arg
+        }
         valid_config_options = {option.upper() for option in get_type_hints(DMConfigOptions)}
-        if valid_config_options.issuperset(options_list):
+        if valid_config_options.issuperset(options_dict):
             options = {
-                arg_name.lower(): arg_name in options_list for arg_name in valid_config_options
+                arg_name.lower(): int(options_dict[arg_name])
+                if isinstance(options_dict[arg_name], str) and options_dict[arg_name].isdigit()  # pyright: ignore[reportUnknownMemberType,reportAttributeAccessIssue]
+                else options_dict[arg_name]
+                for arg_name in options_dict
             }
-            return DMConfigOptions(**options)
+            return DMConfigOptions(**options)  # pyright: ignore[reportArgumentType]
         msg = (
-            f"Invalid configuration options found: {list(set(options_list) - valid_config_options)}"
+            f"Invalid configuration options found: {list(set(options_dict) - valid_config_options)}"
         )
         raise KeyError(msg)
 
diff --git a/src/tm_devices/device_manager.py b/src/tm_devices/device_manager.py
index 422540fe..0dc2f270 100644
--- a/src/tm_devices/device_manager.py
+++ b/src/tm_devices/device_manager.py
@@ -1376,7 +1376,12 @@ def __select_visa_device_driver(
         try:
             model_series = get_model_series(idn_response.split(",")[1])
             device_driver = cast(Type[PIDevice], device_drivers[model_series])
-            new_device = device_driver(device_config, self.__verbose, visa_resource)
+            new_device = device_driver(
+                device_config,
+                self.__verbose,
+                visa_resource,
+                self.__config.options.default_visa_timeout,
+            )
         except (KeyError, IndexError) as error:
             visa_resource.close()
             message = "Unable to determine which device driver to use."
diff --git a/src/tm_devices/drivers/device.py b/src/tm_devices/drivers/device.py
index 72749ee4..9566b840 100644
--- a/src/tm_devices/drivers/device.py
+++ b/src/tm_devices/drivers/device.py
@@ -262,7 +262,7 @@ def name(self) -> str:
 
         Usually something like "SCOPE 1"
         """
-        return f"{self.device_type} {self.device_number}"
+        return f"{self.device_type} {max(0, self.device_number) or ''}".strip()
 
     @property
     def port(self) -> Optional[int]:
diff --git a/src/tm_devices/drivers/pi/data_acquisition_systems/daq6510.py b/src/tm_devices/drivers/pi/data_acquisition_systems/daq6510.py
index 6df3e413..48a767b8 100644
--- a/src/tm_devices/drivers/pi/data_acquisition_systems/daq6510.py
+++ b/src/tm_devices/drivers/pi/data_acquisition_systems/daq6510.py
@@ -28,6 +28,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DAQ6510 device.
 
@@ -35,8 +36,9 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/digital_multimeters/dmm6500.py b/src/tm_devices/drivers/pi/digital_multimeters/dmm6500.py
index ba3e1561..d6e63820 100644
--- a/src/tm_devices/drivers/pi/digital_multimeters/dmm6500.py
+++ b/src/tm_devices/drivers/pi/digital_multimeters/dmm6500.py
@@ -25,6 +25,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DMM6500 device.
 
@@ -32,9 +33,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm7510.py b/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm7510.py
index 65de8646..613c89d2 100644
--- a/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm7510.py
+++ b/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm7510.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DMM7510 device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm7512.py b/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm7512.py
index f64643f9..f98f6285 100644
--- a/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm7512.py
+++ b/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm7512.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DMM7512 device.
 
@@ -24,9 +25,10 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm75xx.py b/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm75xx.py
index fa1e1d7b..6425b261 100644
--- a/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm75xx.py
+++ b/src/tm_devices/drivers/pi/digital_multimeters/dmm75xx/dmm75xx.py
@@ -25,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DMM75xx device.
 
@@ -32,9 +33,10 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/pi_device.py b/src/tm_devices/drivers/pi/pi_device.py
index 2b83e5cb..ef994f80 100644
--- a/src/tm_devices/drivers/pi/pi_device.py
+++ b/src/tm_devices/drivers/pi/pi_device.py
@@ -32,7 +32,6 @@
 
 # noinspection PyPep8Naming
 from tm_devices.helpers import ReadOnlyCachedProperty as cached_property  # noqa: N813
-from tm_devices.helpers.constants_and_dataclasses import UNIT_TEST_TIMEOUT
 
 
 class PIDevice(Device, ABC):  # pylint: disable=too-many-public-methods
@@ -50,6 +49,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a PI device.
 
@@ -57,6 +57,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         super().__init__(config_entry, verbose)
         self._visa_resource: visa.resources.MessageBasedResource = visa_resource
@@ -69,11 +70,7 @@ def __init__(
             # Mark this as a simulated VISA backend
             self._visa_library_path += "@sim"
         # Use a default timeout of 30 seconds, if running unit tests use a smaller amount.
-        self._default_visa_timeout = (
-            30000
-            if not bool(os.environ.get("TM_DEVICES_UNIT_TESTS_RUNNING"))
-            else UNIT_TEST_TIMEOUT
-        )
+        self._default_visa_timeout = default_visa_timeout
         self._ieee_cmds = self._IEEE_COMMANDS_CLASS(self)
         self.reset_visa_timeout()
 
@@ -948,7 +945,7 @@ def _cleanup(self) -> None:
         self.visa_timeout = (
             120000
             if not bool(os.environ.get("TM_DEVICES_UNIT_TESTS_RUNNING"))
-            else UNIT_TEST_TIMEOUT
+            else self.default_visa_timeout
         )
         self.ieee_cmds.cls()
         self.reset()
diff --git a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2220.py b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2220.py
index fe37c0ca..027f34f0 100644
--- a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2220.py
+++ b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2220.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a PSU2220 device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2230.py b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2230.py
index d16bdb3e..b18a0f57 100644
--- a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2230.py
+++ b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2230.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a PSU2230 device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2231.py b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2231.py
index 0e1208f8..24a399d7 100644
--- a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2231.py
+++ b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2231.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a PSU2231 device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2231a.py b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2231a.py
index fcf2ddfa..40d55e0f 100644
--- a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2231a.py
+++ b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2231a.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a PSU2231A device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2280.py b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2280.py
index 2ba236bf..f0deb740 100644
--- a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2280.py
+++ b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2280.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a PSU2280 device.
 
@@ -24,9 +25,10 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2281.py b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2281.py
index 1119df16..cb1bfaf4 100644
--- a/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2281.py
+++ b/src/tm_devices/drivers/pi/power_supplies/psu2200/psu2281.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a PSU2281 device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/lpd6.py b/src/tm_devices/drivers/pi/scopes/tekscope/lpd6.py
index 63d18646..8259a62f 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/lpd6.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/lpd6.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO6 device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/mso2.py b/src/tm_devices/drivers/pi/scopes/tekscope/mso2.py
index fbfe576f..c6aeee35 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/mso2.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/mso2.py
@@ -23,6 +23,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO2 device.
 
@@ -30,8 +31,9 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
         # MSO2 takes 15-20 seconds for shutdown, needs more time before opening visa connection.
         self._reboot_quiet_period = 20
         # the DCH1 channel has 16 bit lanes
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/mso4.py b/src/tm_devices/drivers/pi/scopes/tekscope/mso4.py
index 89d9bf94..77946b98 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/mso4.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/mso4.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO4 device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/mso4b.py b/src/tm_devices/drivers/pi/scopes/tekscope/mso4b.py
index 10d2435a..89d7bd5a 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/mso4b.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/mso4b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO4B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/mso5.py b/src/tm_devices/drivers/pi/scopes/tekscope/mso5.py
index 76930ef2..8ca8ab3d 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/mso5.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/mso5.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO5 device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/mso5b.py b/src/tm_devices/drivers/pi/scopes/tekscope/mso5b.py
index 2308762b..e26c0d7e 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/mso5b.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/mso5b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO5B device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Private Methods
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/mso5lp.py b/src/tm_devices/drivers/pi/scopes/tekscope/mso5lp.py
index 0156f30b..c8b5cd53 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/mso5lp.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/mso5lp.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO5LP device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/mso6.py b/src/tm_devices/drivers/pi/scopes/tekscope/mso6.py
index fd9ae872..cca44a57 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/mso6.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/mso6.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO6 device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/mso6b.py b/src/tm_devices/drivers/pi/scopes/tekscope/mso6b.py
index dcc1b77a..09857e9a 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/mso6b.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/mso6b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO6B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/tekscope.py b/src/tm_devices/drivers/pi/scopes/tekscope/tekscope.py
index 548e8a6c..d8104db8 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/tekscope.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/tekscope.py
@@ -47,7 +47,6 @@
 
 # noinspection PyPep8Naming
 from tm_devices.helpers import ReadOnlyCachedProperty as cached_property  # noqa: N813
-from tm_devices.helpers.constants_and_dataclasses import UNIT_TEST_TIMEOUT
 from tm_devices.helpers.enums import (
     SignalGeneratorFunctionsIAFG,
     SignalGeneratorOutputPathsBase,
@@ -106,6 +105,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a TekScope device.
 
@@ -113,8 +113,9 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
         self.write("HEADER OFF", verbose=False)
 
         # TODO: this should be a property of the probe attribute on the channel object
@@ -130,7 +131,9 @@ def channel(self) -> "MappingProxyType[str, TekScopeChannel]":
         channel_map: Dict[str, TekScopeChannel] = {}
 
         with self.temporary_verbose(False) and self.temporary_visa_timeout(
-            500 if not bool(os.environ.get("TM_DEVICES_UNIT_TESTS_RUNNING")) else UNIT_TEST_TIMEOUT
+            500
+            if not bool(os.environ.get("TM_DEVICES_UNIT_TESTS_RUNNING"))
+            else self.default_visa_timeout
         ):
             # Set scope PI to be verbose
             old_pi_verbosity = self.query(":VERBose?")
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope/tekscopesw.py b/src/tm_devices/drivers/pi/scopes/tekscope/tekscopesw.py
index 94adb547..f5acac39 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope/tekscopesw.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope/tekscopesw.py
@@ -22,6 +22,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a TekScopePC device.
 
@@ -29,8 +30,9 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_2k/dpo2k.py b/src/tm_devices/drivers/pi/scopes/tekscope_2k/dpo2k.py
index 0b5c2976..33493ebb 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_2k/dpo2k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_2k/dpo2k.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO2K device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_2k/dpo2kb.py b/src/tm_devices/drivers/pi/scopes/tekscope_2k/dpo2kb.py
index 89d38ee0..a2aeb170 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_2k/dpo2kb.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_2k/dpo2kb.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO2KB device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_2k/mso2k.py b/src/tm_devices/drivers/pi/scopes/tekscope_2k/mso2k.py
index 4fa5c91f..5390f23b 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_2k/mso2k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_2k/mso2k.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO2K device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_2k/mso2kb.py b/src/tm_devices/drivers/pi/scopes/tekscope_2k/mso2kb.py
index 1a673e74..4e6c1183 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_2k/mso2kb.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_2k/mso2kb.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO2KB device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/dpo4k.py b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/dpo4k.py
index 48bf3eb9..fb5a8f95 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/dpo4k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/dpo4k.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO4K device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/dpo4kb.py b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/dpo4kb.py
index 6f0e677c..458458bf 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/dpo4kb.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/dpo4kb.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO2KB device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo3.py b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo3.py
index 11b4cd88..27991c0a 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo3.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo3.py
@@ -21,6 +21,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MDO3 device.
 
@@ -28,9 +29,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo3k.py b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo3k.py
index 9dca8f1a..5f9dfbed 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo3k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo3k.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MDO3K device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4k.py b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4k.py
index 0a049321..d48d0f76 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4k.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MDO4K device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4kb.py b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4kb.py
index 81a1de53..f7101c23 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4kb.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4kb.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MDO4KB device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4kc.py b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4kc.py
index 5b572a2b..dc6bc382 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4kc.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mdo4kc.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MDO4KC device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mso4k.py b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mso4k.py
index 9119f3cf..66bc0770 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mso4k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mso4k.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO4K device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mso4kb.py b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mso4kb.py
index 6b52b205..5fb08c41 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mso4kb.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_3k_4k/mso4kb.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO4KB device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo5k.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo5k.py
index 507e44cd..3a1c7751 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo5k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo5k.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO5K device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo5kb.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo5kb.py
index 7901fa07..9cfb5cdc 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo5kb.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo5kb.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO5KB device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70k.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70k.py
index e71b4cae..470253bc 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70k.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO70K device.
 
@@ -24,9 +25,10 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kc.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kc.py
index e1b8f251..353d819b 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kc.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kc.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO70KC device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kd.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kd.py
index 6a6f85cf..495f191b 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kd.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kd.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO70KD device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kdx.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kdx.py
index 10402a08..e241af62 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kdx.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70kdx.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO70KDX device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70ksx.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70ksx.py
index 46023de1..fbb76c73 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70ksx.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo70ksx.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO70KSX device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo7k.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo7k.py
index d6f4f9d5..30704e89 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo7k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo7k.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO7K device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo7kc.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo7kc.py
index d438dd47..e5c3c2fb 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo7kc.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dpo7kc.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DPO7KC device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70k.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70k.py
index aee1f407..6d695ef9 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70k.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DSA70K device.
 
@@ -24,9 +25,10 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70kc.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70kc.py
index b6db4c5b..c5b0f42c 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70kc.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70kc.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DSA70KC device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70kd.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70kd.py
index fa463a63..cce35029 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70kd.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/dsa70kd.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a DSA70KD device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso5k.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso5k.py
index a3157b1a..4a90b54e 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso5k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso5k.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO5K device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso5kb.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso5kb.py
index 8968ebc6..569fb117 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso5kb.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso5kb.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO5KB device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70k.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70k.py
index 2a3a4dd9..0df3d177 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70k.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO70K device.
 
@@ -24,9 +25,10 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70kc.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70kc.py
index ec42070e..80761cf3 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70kc.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70kc.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO70KC device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70kdx.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70kdx.py
index df38b9ab..0e6e97d9 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70kdx.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/mso70kdx.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a MSO70KDX device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/tekscope_5k_7k_70k.py b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/tekscope_5k_7k_70k.py
index ef675c33..bad76748 100644
--- a/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/tekscope_5k_7k_70k.py
+++ b/src/tm_devices/drivers/pi/scopes/tekscope_5k_7k_70k/tekscope_5k_7k_70k.py
@@ -24,6 +24,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a TekScope5k7k70k device.
 
@@ -31,8 +32,9 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
         self.write("HEADER OFF", verbose=False)
         # Extract the numeric part as string from the model number
         digits = "".join(char for char in self.model if char.isdigit())
diff --git a/src/tm_devices/drivers/pi/scopes/tso/tsovu.py b/src/tm_devices/drivers/pi/scopes/tso/tsovu.py
index 5fd717ae..76f78785 100644
--- a/src/tm_devices/drivers/pi/scopes/tso/tsovu.py
+++ b/src/tm_devices/drivers/pi/scopes/tso/tsovu.py
@@ -19,6 +19,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a TSOVu device.
 
@@ -26,8 +27,9 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
         self.write("HEADER OFF", verbose=False)
 
     ################################################################################################
diff --git a/src/tm_devices/drivers/pi/signal_generators/afgs/afg31k.py b/src/tm_devices/drivers/pi/signal_generators/afgs/afg31k.py
index aec2038a..4e9e8c34 100644
--- a/src/tm_devices/drivers/pi/signal_generators/afgs/afg31k.py
+++ b/src/tm_devices/drivers/pi/signal_generators/afgs/afg31k.py
@@ -36,6 +36,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AFG31K device.
 
@@ -43,9 +44,10 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/signal_generators/afgs/afg3k.py b/src/tm_devices/drivers/pi/signal_generators/afgs/afg3k.py
index aa1e381b..103cd119 100644
--- a/src/tm_devices/drivers/pi/signal_generators/afgs/afg3k.py
+++ b/src/tm_devices/drivers/pi/signal_generators/afgs/afg3k.py
@@ -34,6 +34,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AFG3K device.
 
@@ -41,9 +42,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Private Methods
diff --git a/src/tm_devices/drivers/pi/signal_generators/afgs/afg3kb.py b/src/tm_devices/drivers/pi/signal_generators/afgs/afg3kb.py
index 0c4a6d82..6172c517 100644
--- a/src/tm_devices/drivers/pi/signal_generators/afgs/afg3kb.py
+++ b/src/tm_devices/drivers/pi/signal_generators/afgs/afg3kb.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AFG3KB device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Public Methods
diff --git a/src/tm_devices/drivers/pi/signal_generators/afgs/afg3kc.py b/src/tm_devices/drivers/pi/signal_generators/afgs/afg3kc.py
index 781515c8..e0936972 100644
--- a/src/tm_devices/drivers/pi/signal_generators/afgs/afg3kc.py
+++ b/src/tm_devices/drivers/pi/signal_generators/afgs/afg3kc.py
@@ -22,6 +22,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AFG3KC device.
 
@@ -29,9 +30,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/signal_generators/awgs/awg5200.py b/src/tm_devices/drivers/pi/signal_generators/awgs/awg5200.py
index b4af9756..761aca98 100644
--- a/src/tm_devices/drivers/pi/signal_generators/awgs/awg5200.py
+++ b/src/tm_devices/drivers/pi/signal_generators/awgs/awg5200.py
@@ -49,6 +49,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AWG5200 device.
 
@@ -56,9 +57,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/signal_generators/awgs/awg5k.py b/src/tm_devices/drivers/pi/signal_generators/awgs/awg5k.py
index ebce2d0e..515e718e 100644
--- a/src/tm_devices/drivers/pi/signal_generators/awgs/awg5k.py
+++ b/src/tm_devices/drivers/pi/signal_generators/awgs/awg5k.py
@@ -38,6 +38,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AWG5K device.
 
@@ -45,9 +46,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/signal_generators/awgs/awg5kb.py b/src/tm_devices/drivers/pi/signal_generators/awgs/awg5kb.py
index 524a2628..6ad1050f 100644
--- a/src/tm_devices/drivers/pi/signal_generators/awgs/awg5kb.py
+++ b/src/tm_devices/drivers/pi/signal_generators/awgs/awg5kb.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AWG5KB device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/signal_generators/awgs/awg5kc.py b/src/tm_devices/drivers/pi/signal_generators/awgs/awg5kc.py
index 63981ffd..fee75449 100644
--- a/src/tm_devices/drivers/pi/signal_generators/awgs/awg5kc.py
+++ b/src/tm_devices/drivers/pi/signal_generators/awgs/awg5kc.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AWG5KC device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/signal_generators/awgs/awg70ka.py b/src/tm_devices/drivers/pi/signal_generators/awgs/awg70ka.py
index 6a14b1f8..1e4c1c66 100644
--- a/src/tm_devices/drivers/pi/signal_generators/awgs/awg70ka.py
+++ b/src/tm_devices/drivers/pi/signal_generators/awgs/awg70ka.py
@@ -43,6 +43,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AWG70KA device.
 
@@ -50,9 +51,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/signal_generators/awgs/awg70kb.py b/src/tm_devices/drivers/pi/signal_generators/awgs/awg70kb.py
index 958d31b2..25a1a850 100644
--- a/src/tm_devices/drivers/pi/signal_generators/awgs/awg70kb.py
+++ b/src/tm_devices/drivers/pi/signal_generators/awgs/awg70kb.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AWG70KB device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/signal_generators/awgs/awg7k.py b/src/tm_devices/drivers/pi/signal_generators/awgs/awg7k.py
index 45e8dfa9..99b6b3db 100644
--- a/src/tm_devices/drivers/pi/signal_generators/awgs/awg7k.py
+++ b/src/tm_devices/drivers/pi/signal_generators/awgs/awg7k.py
@@ -42,6 +42,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AWG7K device.
 
@@ -49,9 +50,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/drivers/pi/signal_generators/awgs/awg7kb.py b/src/tm_devices/drivers/pi/signal_generators/awgs/awg7kb.py
index c4ab72d6..e844cc04 100644
--- a/src/tm_devices/drivers/pi/signal_generators/awgs/awg7kb.py
+++ b/src/tm_devices/drivers/pi/signal_generators/awgs/awg7kb.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AWG7KB device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/signal_generators/awgs/awg7kc.py b/src/tm_devices/drivers/pi/signal_generators/awgs/awg7kc.py
index ef4c7191..e6d9ca64 100644
--- a/src/tm_devices/drivers/pi/signal_generators/awgs/awg7kc.py
+++ b/src/tm_devices/drivers/pi/signal_generators/awgs/awg7kc.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create an AWG7KC device.
 
@@ -25,9 +26,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Public Methods
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2400.py b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2400.py
index cd48039d..aa5c4c7c 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2400.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2400.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2400 device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2401.py b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2401.py
index 9bb699f5..5dd87d67 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2401.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2401.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2401 device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2410.py b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2410.py
index bc3db5cd..967a5cc0 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2410.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2410.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2410 device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2450.py b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2450.py
index bd10a87b..cba74e88 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2450.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2450.py
@@ -20,6 +20,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2450 device.
 
@@ -27,6 +28,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2460.py b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2460.py
index cd3fd89c..2bb9143f 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2460.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2460.py
@@ -20,6 +20,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2460 device.
 
@@ -27,6 +28,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2461.py b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2461.py
index 93db75a0..228fd86a 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2461.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2461.py
@@ -20,6 +20,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2461 device.
 
@@ -27,6 +28,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2470.py b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2470.py
index ce23d25c..ab3d3b48 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2470.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu24xx/smu2470.py
@@ -20,6 +20,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2470 device.
 
@@ -27,6 +28,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601a.py
index 4c40aa06..8ca00bfe 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601a.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2601A device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601b.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601b.py
index 7829abd3..bd57580d 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2601B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601b_pulse.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601b_pulse.py
index 98aa3d68..751d9fef 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601b_pulse.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2601b_pulse.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2601B-PULSE device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2602a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2602a.py
index d09029c2..cff79b73 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2602a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2602a.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2602A device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2602b.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2602b.py
index fbf88427..ddc16fb0 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2602b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2602b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2602B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2604a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2604a.py
index 3e2ae2e9..cbbfa628 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2604a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2604a.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2604A device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2604b.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2604b.py
index fb694fb1..e4dd00ba 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2604b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2604b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2604B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2606b.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2606b.py
index 2eaa0c65..c3739ddf 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2606b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2606b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2606B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2611a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2611a.py
index 419300bf..05b9035d 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2611a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2611a.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2611A device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2611b.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2611b.py
index 9b7f3ca0..626dac09 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2611b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2611b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2611B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2612a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2612a.py
index 322d63e9..32d3a5ea 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2612a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2612a.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2612A device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2612b.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2612b.py
index 57e2a4ad..80f6f73f 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2612b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2612b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2612B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2614a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2614a.py
index 05e2fef3..f4529077 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2614a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2614a.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2614A device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2614b.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2614b.py
index 9c0670b7..8949a17f 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2614b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2614b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2614B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2634a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2634a.py
index bb7f05b9..a421690a 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2634a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2634a.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2634A device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2634b.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2634b.py
index 489785a3..6e641f3f 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2634b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2634b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2634B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2635a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2635a.py
index 9838ccac..eacd691a 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2635a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2635a.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2635A device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2635b.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2635b.py
index bb76c8b7..ebaeab63 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2635b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2635b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2635B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2636a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2636a.py
index 0240ae0f..921de1e7 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2636a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2636a.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2636A device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2636b.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2636b.py
index caffbe96..39749fa7 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2636b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2636b.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2636B device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2651a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2651a.py
index bd31931c..13c88da8 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2651a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2651a.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2651A device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2657a.py b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2657a.py
index 565f9378..e89ca878 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2657a.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu26xx/smu2657a.py
@@ -18,6 +18,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU2657A device.
 
@@ -25,6 +26,7 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6430.py b/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6430.py
index 6874a5b0..7358fe93 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6430.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6430.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU6430 device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6514.py b/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6514.py
index 8a9e8cec..ae311dfc 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6514.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6514.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU6514 device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6517b.py b/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6517b.py
index 8abd2658..ac5fc42d 100644
--- a/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6517b.py
+++ b/src/tm_devices/drivers/pi/source_measure_units/smu60xx/smu6517b.py
@@ -17,6 +17,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SMU6517B device.
 
@@ -24,6 +25,7 @@ def __init__(  # pylint: disable=useless-parent-delegation
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
diff --git a/src/tm_devices/drivers/pi/systems_switches/ss3706a.py b/src/tm_devices/drivers/pi/systems_switches/ss3706a.py
index a7a9a00e..b2008e4e 100644
--- a/src/tm_devices/drivers/pi/systems_switches/ss3706a.py
+++ b/src/tm_devices/drivers/pi/systems_switches/ss3706a.py
@@ -25,6 +25,7 @@ def __init__(
         config_entry: DeviceConfigEntry,
         verbose: bool,
         visa_resource: visa.resources.MessageBasedResource,
+        default_visa_timeout: int,
     ) -> None:
         """Create a SS3706A device.
 
@@ -32,9 +33,10 @@ def __init__(
             config_entry: A config entry object parsed by the DMConfigParser.
             verbose: A boolean indicating if verbose output should be printed.
             visa_resource: The VISA resource object.
+            default_visa_timeout: The default VISA timeout value in milliseconds.
         """
         # NOTE: This method must be defined for the documentation to properly generate
-        super().__init__(config_entry, verbose, visa_resource)
+        super().__init__(config_entry, verbose, visa_resource, default_visa_timeout)
 
     ################################################################################################
     # Properties
diff --git a/src/tm_devices/helpers/constants_and_dataclasses.py b/src/tm_devices/helpers/constants_and_dataclasses.py
index 69a6ca27..977b63d3 100644
--- a/src/tm_devices/helpers/constants_and_dataclasses.py
+++ b/src/tm_devices/helpers/constants_and_dataclasses.py
@@ -438,6 +438,11 @@ class DMConfigOptions(AsDictionaryMixin):
     """A verbosity flag to enable extremely verbose VISA logging to stdout."""
     retry_visa_connection: Optional[bool] = None
     """A flag to enable retrying the first VISA connection attempt."""
+    default_visa_timeout: int = 5000
+    """A default VISA timeout value (in milliseconds) to use when creating VISA connections.
+
+    When this option is not set, a default value of 5000 milliseconds (5 seconds) is used.
+    """
     check_for_updates: Optional[bool] = None
     """A flag indicating if a check for updates for the package should be performed on creation of the DeviceManager."""  # noqa: E501
 
@@ -445,7 +450,7 @@ def __str__(self) -> str:
         """Complete config entry line for an environment variable."""
         return ",".join(
             [
-                opt_key.upper()
+                opt_key.upper() + (f"={opt_val}" if not isinstance(opt_val, bool) else "")
                 for opt_key, opt_val in self.to_dict(ignore_none=True).items()
                 if opt_val
             ]
@@ -502,9 +507,6 @@ def __str__(self) -> str:
 )
 """A regex pattern used to capture pieces of VISA resource expressions."""
 
-UNIT_TEST_TIMEOUT: Final[int] = 50
-"""The VISA timeout value to use during unit tests, in milliseconds."""
-
 VALID_DEVICE_CONNECTION_TYPES: Final[Mapping[DeviceTypes, Tuple[ConnectionTypes, ...]]] = (
     MappingProxyType(
         {


Test patch:
diff --git a/tests/conftest.py b/tests/conftest.py
index 33ecd062..e6e04dd2 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -13,7 +13,7 @@
 from mock_server import mocker_server, PORT
 from tm_devices import DeviceManager
 from tm_devices.components import DMConfigParser
-from tm_devices.helpers import validate_address
+from tm_devices.helpers import DMConfigOptions, validate_address
 
 os.environ["TM_DEVICES_UNIT_TESTS_RUNNING"] = "true"
 # Make sure to not use any local config files
@@ -21,6 +21,7 @@
 
 PROJECT_ROOT_DIR = Path(__file__).parent.parent
 SIMULATED_VISA_LIB = str(Path(__file__).parent / "sim_devices/devices.yaml@sim")
+UNIT_TEST_TIMEOUT = 50
 
 
 def mock_gethostbyname(address: str) -> str:
@@ -81,23 +82,44 @@ def fixture_device_manager() -> Generator[DeviceManager, None, None]:
     ), mock.patch(
         "pyvisa.resources.messagebased.MessageBasedResource.clear",
         mock.MagicMock(return_value=pyvisa.constants.StatusCode.success),
-    ), DeviceManager(verbose=True) as dev_manager:
+    ), DeviceManager(
+        verbose=True, config_options=DMConfigOptions(default_visa_timeout=UNIT_TEST_TIMEOUT)
+    ) as dev_manager:
         dev_manager.visa_library = SIMULATED_VISA_LIB
         yield dev_manager
 
 
+@pytest.fixture(name="unit_test_config_file", scope="session")
+def fixture_unit_test_config_file(
+    tmpdir_factory: pytest.TempdirFactory, device_manager: DeviceManager
+) -> Path:
+    """Save the unit test configuration file.
+
+    Args:
+        tmpdir_factory: The temporary directory path.
+        device_manager: The device manager fixture.
+    """
+    config_file = tmpdir_factory.mktemp("tests") / "unit_test_config.yaml"
+    device_manager.write_current_configuration_to_config_file(config_file)
+    return Path(config_file)
+
+
 @pytest.fixture(autouse=True)
-def _reset_dm(device_manager: DeviceManager) -> Generator[None, None, None]:  # pyright: ignore[reportUnusedFunction]
+def _reset_dm(  # pyright: ignore[reportUnusedFunction]
+    device_manager: DeviceManager, unit_test_config_file: Path
+) -> Generator[None, None, None]:
     """Reset the device_manager settings after each test.
 
     Args:
         device_manager: The device manager fixture.
+        unit_test_config_file: The unit test configuration file.
     """
     saved_setup_enable = device_manager.setup_cleanup_enabled
     saved_teardown_enable = device_manager.teardown_cleanup_enabled
     yield
     device_manager.setup_cleanup_enabled = saved_setup_enable
     device_manager.teardown_cleanup_enabled = saved_teardown_enable
+    device_manager.load_config_file(unit_test_config_file)
 
 
 @pytest.fixture(name="mock_http_server", scope="session")
diff --git a/tests/samples/sample_devices.toml b/tests/samples/sample_devices.toml
index 7b0f9971..7d931743 100644
--- a/tests/samples/sample_devices.toml
+++ b/tests/samples/sample_devices.toml
@@ -28,6 +28,7 @@ baud_rate = 9600
 end_input = "none"
 
 [options]
+default_visa_timeout = 1000
 setup_cleanup = false
 standalone = true
 teardown_cleanup = false
diff --git a/tests/samples/sample_devices.yaml b/tests/samples/sample_devices.yaml
index e466be37..9082a5fd 100644
--- a/tests/samples/sample_devices.yaml
+++ b/tests/samples/sample_devices.yaml
@@ -21,6 +21,7 @@ devices:
       baud_rate: 9600
       end_input: none
 options:
+  default_visa_timeout: 1000
   setup_cleanup: false
   standalone: true
   teardown_cleanup: false
diff --git a/tests/test_afgs.py b/tests/test_afgs.py
index 04592ab0..ceb2e937 100644
--- a/tests/test_afgs.py
+++ b/tests/test_afgs.py
@@ -8,6 +8,7 @@
 
 from packaging.version import Version
 
+from conftest import UNIT_TEST_TIMEOUT
 from tm_devices import DeviceManager
 from tm_devices.drivers.pi.signal_generators.afgs.afg import (
     AFGSourceDeviceConstants,
@@ -15,7 +16,6 @@
     ParameterBounds,
     SignalGeneratorFunctionsAFG,
 )
-from tm_devices.helpers.constants_and_dataclasses import UNIT_TEST_TIMEOUT
 
 
 def test_afg3k(device_manager: DeviceManager) -> None:  # noqa: PLR0915  # pylint: disable=too-many-locals
diff --git a/tests/test_config_parser.py b/tests/test_config_parser.py
index a8597ab0..82a643b8 100644
--- a/tests/test_config_parser.py
+++ b/tests/test_config_parser.py
@@ -32,7 +32,7 @@ def test_nested_config_prefix_mapping() -> None:
 
 def test_environment_variable_config(capsys: pytest.CaptureFixture[str]) -> None:
     """Test the environment variable config method."""
-    options = ["STANDALONE"]
+    options = ["STANDALONE", "DEFAULT_VISA_TIMEOUT=10000"]
     expected_device_string = (
         "address=MSO54-123456,connection_type=TCPIP,device_type=SCOPE,lan_device_name=hislip0"
     )
@@ -54,12 +54,16 @@ def test_environment_variable_config(capsys: pytest.CaptureFixture[str]) -> None
     assert str(expected_device) == expected_device_string
     assert not config.options.teardown_cleanup
     assert config.options.standalone
+    assert config.options.default_visa_timeout == 10000
     assert (
         config.devices == expected_entry
     ), f"\nDevice dictionaries don't match:\n{expected_entry}\n{config.devices}"
 
     # test that the config string representation looks like env declaration
-    expected_entry_string = f"TM_OPTIONS=STANDALONE\nTM_DEVICES=~~~{expected_device_string}~~~"
+    expected_entry_string = (
+        f"TM_OPTIONS=DEFAULT_VISA_TIMEOUT=10000,STANDALONE\n"
+        f"TM_DEVICES=~~~{expected_device_string}~~~"
+    )
     print(config)
     assert capsys.readouterr().out.strip() == expected_entry_string
 
@@ -96,7 +100,10 @@ def test_environment_variable_config(capsys: pytest.CaptureFixture[str]) -> None
     assert (
         config.devices == expected_entry
     ), f"\nDevice dictionaries don't match:\n{expected_entry}\n{config.devices}"
-    expected_entry_string = f"TM_OPTIONS=STANDALONE\nTM_DEVICES=~~~{expected_device_string}~~~"
+    expected_entry_string = (
+        f"TM_OPTIONS=DEFAULT_VISA_TIMEOUT=10000,STANDALONE\n"
+        f"TM_DEVICES=~~~{expected_device_string}~~~"
+    )
     print(config)
     assert capsys.readouterr().out.strip() == expected_entry_string
 
@@ -141,6 +148,7 @@ def test_file_config_default_path() -> None:
   standalone: false
   verbose_mode: false
   verbose_visa: false
+  default_visa_timeout: 10000
   """
     expected_options = DMConfigOptions(
         standalone=False,
@@ -148,6 +156,7 @@ def test_file_config_default_path() -> None:
         teardown_cleanup=True,
         verbose_mode=False,
         verbose_visa=False,
+        default_visa_timeout=10000,
     )
     expected_devices = {
         "SCOPE 1": DeviceConfigEntry(
@@ -204,6 +213,7 @@ def test_file_config_non_default_path(
         teardown_cleanup=False,
         verbose_mode=False,
         verbose_visa=False,
+        default_visa_timeout=1000,
     )
     expected_devices = {
         "SCOPE 1": DeviceConfigEntry(
diff --git a/tests/test_device_manager.py b/tests/test_device_manager.py
index 4a99d6ef..8e521ea3 100644
--- a/tests/test_device_manager.py
+++ b/tests/test_device_manager.py
@@ -11,7 +11,7 @@
 import pyvisa as visa
 import pyvisa.constants
 
-from conftest import SIMULATED_VISA_LIB
+from conftest import SIMULATED_VISA_LIB, UNIT_TEST_TIMEOUT
 from tm_devices import DeviceManager
 from tm_devices.helpers import ConnectionTypes, DeviceTypes, PYVISA_PY_BACKEND, SerialConfig
 
@@ -73,7 +73,7 @@ def test_get_config_methods_with_devices(self, device_manager: DeviceManager) ->
                 text = temp_config.read()
             assert (
                 text
-                == """[[devices]]
+                == f"""[[devices]]
 address = "1"
 alias = "TESTING"
 connection_type = "SERIAL"
@@ -93,6 +93,7 @@ def test_get_config_methods_with_devices(self, device_manager: DeviceManager) ->
 device_type = "SCOPE"
 
 [options]
+default_visa_timeout = {UNIT_TEST_TIMEOUT}
 setup_cleanup = false
 standalone = false
 teardown_cleanup = false
@@ -105,7 +106,7 @@ def test_get_config_methods_with_devices(self, device_manager: DeviceManager) ->
                 print(text)
             assert (
                 text
-                == """---
+                == f"""---
 devices:
   - address: '1'
     alias: TESTING
@@ -122,6 +123,7 @@ def test_get_config_methods_with_devices(self, device_manager: DeviceManager) ->
     connection_type: TCPIP
     device_type: SCOPE
 options:
+  default_visa_timeout: {UNIT_TEST_TIMEOUT}
   setup_cleanup: false
   standalone: false
   teardown_cleanup: false
@@ -135,7 +137,7 @@ def test_get_config_methods_with_devices(self, device_manager: DeviceManager) ->
 
         assert (
             device_manager.get_current_configuration_as_environment_variable_strings()
-            == "TM_OPTIONS=VERBOSE_MODE\n"
+            == f"TM_OPTIONS=DEFAULT_VISA_TIMEOUT={UNIT_TEST_TIMEOUT},VERBOSE_MODE\n"
             "TM_DEVICES=~~~address=1,alias=TESTING,connection_type=SERIAL,device_type=SMU,"
             "serial_baud_rate=115200,serial_data_bits=8,serial_end_input=none,"
             "serial_flow_control=xon_xoff,serial_parity=none,serial_stop_bits=one"
diff --git a/tests/test_docs.py b/tests/test_docs.py
index 32ea3e0c..66e2a133 100644
--- a/tests/test_docs.py
+++ b/tests/test_docs.py
@@ -40,7 +40,7 @@ def fixture_docs_server(site_dir: str) -> Generator[str, None, None]:
 def fixture_site_dir(pytestconfig: pytest.Config) -> str:
     """Create the site directory path for testing."""
     site_path = (
-        Path(__file__).parent / f".site_{sys.version_info.major}{sys.version_info.minor}/"
+        Path(__file__).parent.parent / f".site_{sys.version_info.major}{sys.version_info.minor}/"
     ).resolve()
     if xml_path := pytestconfig.getoption("xmlpath"):
         site_path = (Path(xml_path).parent / ".site_html/").resolve()  # pyright: ignore[reportArgumentType]
diff --git a/tests/test_scopes.py b/tests/test_scopes.py
index d547dbf2..4debce3d 100644
--- a/tests/test_scopes.py
+++ b/tests/test_scopes.py
@@ -520,6 +520,7 @@ def test_tekscope2k(device_manager: DeviceManager, tmp_path: pathlib.Path) -> No
     with pytest.raises(AssertionError):
         scope.curve_query(5, wfm_type="FreqDomain")
 
-    assert scope.curve_query(5, wfm_type="TimeDomain") == []
+    with pytest.warns(UserWarning, match="source not available for curve query: CH5"):
+        assert scope.curve_query(5, wfm_type="TimeDomain") == []
 
     assert scope.curve_query(0, wfm_type="Digital") == [1, 0, 1, 0, 1]
diff --git a/tests/test_smu.py b/tests/test_smu.py
index 175600a9..b49975cf 100644
--- a/tests/test_smu.py
+++ b/tests/test_smu.py
@@ -14,8 +14,8 @@
 
 from packaging.version import Version
 
+from conftest import UNIT_TEST_TIMEOUT
 from tm_devices import DeviceManager
-from tm_devices.helpers.constants_and_dataclasses import UNIT_TEST_TIMEOUT
 
 if TYPE_CHECKING:
     from tm_devices.drivers import SMU2460, SMU2601B