From bef7f263184b2d3de289c570ea9276e55e44e9d9 Mon Sep 17 00:00:00 2001 From: marcos frenkel Date: Wed, 25 Mar 2026 15:34:14 -0500 Subject: [PATCH] adding_support_for_kdc101 --- src/pqnstack/pqn/drivers/rotator.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/pqnstack/pqn/drivers/rotator.py b/src/pqnstack/pqn/drivers/rotator.py index fb997e91..6ef3ddd3 100644 --- a/src/pqnstack/pqn/drivers/rotator.py +++ b/src/pqnstack/pqn/drivers/rotator.py @@ -9,6 +9,7 @@ from dataclasses import field import serial +from thorlabs_apt_device import KDC101 from thorlabs_apt_device import TDC001 from pqnstack.base.errors import DeviceNotStartedError @@ -21,12 +22,16 @@ @dataclass(slots=True) class APTRotator(RotatorInstrument): _degrees: float = field(default=0.0, init=False) - _device: TDC001 = field(init=False, repr=False) + _device: TDC001 | KDC101 = field(init=False, repr=False) _encoder_units_per_degree: float = field(default=86384 / 45, init=False, repr=False) def start(self) -> None: # Additional setup for APT Rotator - self._device = TDC001(serial_number=self.hw_address) + try: + self._device = TDC001(serial_number=self.hw_address) + except RuntimeError: + self._device = KDC101(self.hw_address) + offset_eu = round(self.offset_degrees * self._encoder_units_per_degree) # NOTE: Velocity units seem to not match position units