AlexShkarin / pyLabLib

Python package for device control and experiment automation
http://pylablib.readthedocs.io
GNU General Public License v3.0
125 stars 28 forks source link

BUG: Cannot create Thorlabs.KinesisMotor from a serial number #43

Closed kadykov closed 1 year ago

kadykov commented 1 year ago

Cannot connect to a Thorlabs KST101 motor controller. pylablib.devices.Thorlabs.list_kinesis_devices() detects a correct serial number, but creation an instance of pylablib.devices.Thorlabs.KinesisMotor(sernumber) crashes with ThorlabsBackendError: backend exception: 'read returned less data than expected'.

Minimal example to reproduce:

from pylablib.devices import Thorlabs

devices = Thorlabs.list_kinesis_devices()
sernumber = devices[0][0]
print(sernumber)

Thorlabs.KinesisMotor(sernumber)
Output ``` 26000280 --------------------------------------------------------------------------- ThorlabsBackendError Traceback (most recent call last) [c:\Users\Username\Documents\prog\packagename\packagename\temp\thorlabs-stage-dev.py](file:///C:/Users/Username/Documents/prog/packagename/packagename/temp/thorlabs-stage-dev.py) in line 8 [5](file:///c%3A/Users/Username/Documents/prog/packagename/packagename/temp/thorlabs-stage-dev.py?line=4) sernumber = devices[0][0] [6](file:///c%3A/Users/Username/Documents/prog/packagename/packagename/temp/thorlabs-stage-dev.py?line=5) print(sernumber) ----> [8](file:///c%3A/Users/Username/Documents/prog/packagename/packagename/temp/thorlabs-stage-dev.py?line=7) Thorlabs.KinesisMotor(sernumber) File [c:\Users\Username\mambaforge\envs\envname\Lib\site-packages\pylablib\devices\Thorlabs\kinesis.py:1031](file:///C:/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py:1031), in KinesisMotor.__init__(self, conn, scale, default_channel, is_rack_system) [1029](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=1028) self._add_settings_variable("limit_switch_parameters",self.get_limit_switch_parameters,self.setup_limit_switch) [1030](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=1029) with self._close_on_error(): -> [1031](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=1030) self._stage=self._get_stage(scale) [1032](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=1031) self._scale,self._scale_units=self._calculate_scale(scale) [1033](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=1032) if self.get_device_info().model_no in ["KDC101","KST101","KBD101"]: File [c:\Users\Username\mambaforge\envs\envname\Lib\site-packages\pylablib\devices\Thorlabs\kinesis.py:1048](file:///C:/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py:1048), in KinesisMotor._get_stage(self, scale) [1047](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=1046) def _get_stage(self, scale): -> [1048](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=1047) model=self.get_device_info().model_no [1049](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=1048) if scale=="stage": [1050](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=1049) return self._autodetect_stage(model) File [c:\Users\Username\mambaforge\envs\envname\Lib\site-packages\pylablib\devices\Thorlabs\kinesis.py:201](file:///C:/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py:201), in BasicKinesisDevice.get_device_info(self, dest) [195](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=194) def get_device_info(self, dest="host"): [196](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=195) """ [197](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=196) Get device info. [198](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/devices/Thorlabs/kinesis.py?line=197) ... --> [922](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/core/devio/comm_backend.py?line=921) raise self.Error("read returned less data than expected") [923](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/core/devio/comm_backend.py?line=922) self.cooldown("read") [924](file:///c%3A/Users/Username/mambaforge/envs/envname/Lib/site-packages/pylablib/core/devio/comm_backend.py?line=923) self._log("read",result) ThorlabsBackendError: backend exception: 'read returned less data than expected' ('read returned less data than expected') ```

Thorlabs KST101 connected to USB3 port via Micro Type B cable OS: Windows 10 Python: 3.10.12, 3.11.3 Pylablib: 1.4.1 pyft232: 0.12

Full environment ``` # Name Version Build Channel appdirs 1.4.4 pyh9f0ad1d_0 conda-forge asciitree 0.3.3 py_2 conda-forge astropy 5.3 py311h59ca53f_0 conda-forge asttokens 2.2.1 pyhd8ed1ab_0 conda-forge async_generator 1.10 py_0 conda-forge attrs 23.1.0 pyh71513ae_1 conda-forge aws-c-auth 0.6.28 habb20d3_5 conda-forge aws-c-cal 0.5.27 hc655790_0 conda-forge aws-c-common 0.8.20 hcfcfb64_0 conda-forge aws-c-compression 0.2.17 h0a579c1_0 conda-forge aws-c-event-stream 0.3.0 h92d84d2_6 conda-forge aws-c-http 0.7.8 haeac8d2_4 conda-forge aws-c-io 0.13.26 hf956cbd_0 conda-forge aws-c-mqtt 0.8.13 h73587ab_2 conda-forge aws-c-s3 0.3.4 h26b4012_5 conda-forge aws-c-sdkutils 0.1.10 h0a579c1_0 conda-forge aws-checksums 0.1.16 h0a579c1_0 conda-forge aws-crt-cpp 0.20.2 h0db1998_9 conda-forge aws-sdk-cpp 1.10.57 ha442f66_14 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 pyhd8ed1ab_3 conda-forge backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge baselineremoval 0.1.4 pypi_0 pypi bcrypt 3.2.2 py311ha68e1ae_1 conda-forge blas 2.117 mkl conda-forge blas-devel 3.9.0 17_win64_mkl conda-forge bleach 6.0.0 pyhd8ed1ab_0 conda-forge blosc2 2.0.0 pypi_0 pypi bokeh 3.1.1 pyhd8ed1ab_0 conda-forge bottleneck 1.3.7 py311h59ca53f_0 conda-forge bqplot 0.12.39 pyhd8ed1ab_0 conda-forge brotli 1.0.9 hcfcfb64_8 conda-forge brotli-bin 1.0.9 hcfcfb64_8 conda-forge bzip2 1.0.8 h8ffe710_4 conda-forge c-ares 1.19.1 hcfcfb64_0 conda-forge ca-certificates 2023.5.7 h56e8100_0 conda-forge cached-property 1.5.2 hd8ed1ab_1 conda-forge cached_property 1.5.2 pyha770c72_1 conda-forge caproto 1.1.0 pyhd8ed1ab_0 conda-forge certifi 2023.5.7 pyhd8ed1ab_0 conda-forge cffi 1.15.1 py311h7d9ee11_3 conda-forge cftime 1.6.2 py311h59ca53f_1 conda-forge chardet 5.1.0 pypi_0 pypi charset-normalizer 3.1.0 pyhd8ed1ab_0 conda-forge click 8.1.3 win_pyhd8ed1ab_2 conda-forge cloudpickle 2.2.1 pyhd8ed1ab_0 conda-forge clr_loader 0.2.5 pyhd8ed1ab_0 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge comm 0.1.3 pyhd8ed1ab_0 conda-forge comtypes 1.2.0 py311h1ea47a8_0 conda-forge contourpy 1.1.0 py311h005e61a_0 conda-forge cpuonly 2.0 0 pytorch cryptography 41.0.1 py311h28e9c30_0 conda-forge curio 1.4 py_0 conda-forge curl 8.1.2 h68f0423_0 conda-forge cycler 0.11.0 pyhd8ed1ab_0 conda-forge cython 0.29.35 pypi_0 pypi cytoolz 0.12.0 py311ha68e1ae_1 conda-forge dask 2023.6.0 pyhd8ed1ab_0 conda-forge dask-core 2023.6.0 pyhd8ed1ab_0 conda-forge dataproperty 0.55.1 pypi_0 pypi debugpy 1.6.7 py311h12c1d0e_0 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge deprecation 2.1.0 pyh9f0ad1d_0 conda-forge distlib 0.3.6 pypi_0 pypi distributed 2023.6.0 pyhd8ed1ab_0 conda-forge docutils 0.17.1 pypi_0 pypi dpkt 1.9.8 pyhd8ed1ab_0 conda-forge easydict 1.10 pypi_0 pypi entrypoints 0.4 pyhd8ed1ab_0 conda-forge epics-base 7.0.7.0 h63175ca_0 conda-forge exceptiongroup 1.1.1 pyhd8ed1ab_0 conda-forge executing 1.2.0 pyhd8ed1ab_0 conda-forge farama-notifications 0.0.4 pyhd8ed1ab_0 conda-forge fasteners 0.17.3 pyhd8ed1ab_0 conda-forge filelock 3.12.2 pyhd8ed1ab_0 conda-forge fonttools 4.40.0 py311ha68e1ae_0 conda-forge freetype 2.12.1 h546665d_1 conda-forge fsspec 2023.6.0 pyh1a96a4e_0 conda-forge gettext 0.21.1 h5728263_0 conda-forge gflags 2.2.2 ha925a31_1004 conda-forge glib 2.76.3 h12be248_0 conda-forge glib-tools 2.76.3 h12be248_0 conda-forge glog 0.6.0 h4797de2_0 conda-forge gst-plugins-base 1.22.4 h001b923_0 conda-forge gstreamer 1.22.4 hb4038d2_0 conda-forge gymnasium 0.28.1 py311h3810d55_0 conda-forge h5netcdf 1.2.0 pyhd8ed1ab_0 conda-forge h5py 3.8.0 nompi_py311h3a26632_100 conda-forge hdf4 4.2.15 h1b1b6ef_5 conda-forge hdf5 1.12.2 nompi_h57737ce_101 conda-forge icu 70.1 h0e60522_0 conda-forge idna 3.4 pyhd8ed1ab_0 conda-forge importlib-metadata 6.7.0 pyha770c72_0 conda-forge importlib_metadata 6.7.0 hd8ed1ab_0 conda-forge iniconfig 2.0.0 pyhd8ed1ab_0 conda-forge intake 0.7.0 pyhd8ed1ab_0 conda-forge intake-xarray 0.7.0 pyhd8ed1ab_0 conda-forge intel-openmp 2023.1.0 h57928b3_46319 conda-forge ipykernel 6.23.3 pyh6817e22_0 conda-forge ipython 8.14.0 pyh08f2357_0 conda-forge ipython-genutils 0.2.0 pypi_0 pypi ipywidgets 8.0.6 pyhd8ed1ab_0 conda-forge jax-jumpy 1.0.0 pyhd8ed1ab_0 conda-forge jedi 0.18.2 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge joblib 1.2.0 pyhd8ed1ab_0 conda-forge jpeg 9e hcfcfb64_3 conda-forge jsonschema 4.17.3 pypi_0 pypi jupyter_client 8.3.0 pyhd8ed1ab_0 conda-forge jupyter_core 5.3.1 py311h1ea47a8_0 conda-forge jupyterlab_widgets 3.0.7 pyhd8ed1ab_1 conda-forge kiwisolver 1.4.4 py311h005e61a_1 conda-forge krb5 1.20.1 heb0366b_0 conda-forge lcms2 2.15 ha5c8aab_0 conda-forge lerc 4.0.0 h63175ca_0 conda-forge libabseil 20230125.2 cxx17_h63175ca_2 conda-forge libaec 1.0.6 h63175ca_1 conda-forge libarrow 12.0.0 h5f84808_8_cpu conda-forge libblas 3.9.0 17_win64_mkl conda-forge libbrotlicommon 1.0.9 hcfcfb64_8 conda-forge libbrotlidec 1.0.9 hcfcfb64_8 conda-forge libbrotlienc 1.0.9 hcfcfb64_8 conda-forge libcblas 3.9.0 17_win64_mkl conda-forge libclang 15.0.7 default_h77d9078_2 conda-forge libclang13 15.0.7 default_h77d9078_2 conda-forge libcrc32c 1.1.2 h0e60522_0 conda-forge libcurl 8.1.2 h68f0423_0 conda-forge libdeflate 1.17 hcfcfb64_0 conda-forge libevent 2.1.12 h3671451_1 conda-forge libexpat 2.5.0 h63175ca_1 conda-forge libffi 3.4.2 h8ffe710_5 conda-forge libglib 2.76.3 he8f3873_0 conda-forge libgoogle-cloud 2.11.0 hec1a1f0_1 conda-forge libgrpc 1.55.1 h0c1e3fa_1 conda-forge libhwloc 2.9.1 hbb18f9a_1 conda-forge libiconv 1.17 h8ffe710_0 conda-forge liblapack 3.9.0 17_win64_mkl conda-forge liblapacke 3.9.0 17_win64_mkl conda-forge libnetcdf 4.9.1 nompi_hc41bf00_101 conda-forge libogg 1.3.4 h8ffe710_1 conda-forge libpng 1.6.39 h19919ed_0 conda-forge libprotobuf 4.23.2 h1975477_5 conda-forge libsodium 1.0.18 h8d14728_1 conda-forge libsqlite 3.42.0 hcfcfb64_0 conda-forge libssh2 1.11.0 h7dfc565_0 conda-forge libthrift 0.18.1 h06f6336_2 conda-forge libtiff 4.5.0 hf8721a0_2 conda-forge libusb 1.0.26 h8ffe710_100 conda-forge libutf8proc 2.8.0 h82a8f57_0 conda-forge libuv 1.44.2 h8ffe710_0 conda-forge libvorbis 1.3.7 h0e60522_0 conda-forge libwebp-base 1.3.0 hcfcfb64_0 conda-forge libxcb 1.13 hcd874cb_1004 conda-forge libxml2 2.10.4 hc3477c8_0 conda-forge libzip 1.9.2 h519de47_1 conda-forge libzlib 1.2.13 hcfcfb64_5 conda-forge linkify-it-py 2.0.0 pyhd8ed1ab_0 conda-forge llvmlite 0.40.0 py311h5bc0dda_0 conda-forge locket 1.0.0 pyhd8ed1ab_0 conda-forge lxml 4.9.2 pypi_0 pypi lz4 4.3.2 py311haddf500_0 conda-forge lz4-c 1.9.4 hcfcfb64_0 conda-forge m2w64-gcc-libgfortran 5.3.0 6 conda-forge m2w64-gcc-libs 5.3.0 7 conda-forge m2w64-gcc-libs-core 5.3.0 7 conda-forge m2w64-gmp 6.1.0 2 conda-forge m2w64-libwinpthread-git 5.0.0.4634.697f757 2 conda-forge markdown 3.4.3 pyhd8ed1ab_0 conda-forge markdown-it-py 2.2.0 pyhd8ed1ab_0 conda-forge markupsafe 2.1.3 py311ha68e1ae_0 conda-forge matplotlib-base 3.7.1 py311h6e989c2_0 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mbstrdecoder 1.1.2 pypi_0 pypi mdit-py-plugins 0.4.0 pyhd8ed1ab_0 conda-forge mdurl 0.1.0 pyhd8ed1ab_0 conda-forge mkl 2022.1.0 h6a75c08_874 conda-forge mkl-devel 2022.1.0 h57928b3_875 conda-forge mkl-include 2022.1.0 h6a75c08_874 conda-forge mpmath 1.3.0 pyhd8ed1ab_0 conda-forge msgpack-python 1.0.5 py311h005e61a_0 conda-forge msl-loadlib 0.9.0 pypi_0 pypi msys2-conda-epoch 20160418 1 conda-forge multipledispatch 0.6.0 pypi_0 pypi munkres 1.1.4 pyh9f0ad1d_0 conda-forge mypy 1.4.0 py311ha68e1ae_0 conda-forge mypy_extensions 1.0.0 pyha770c72_0 conda-forge nest-asyncio 1.5.6 pyhd8ed1ab_0 conda-forge netcdf4 1.6.3 nompi_py311hd70422a_100 conda-forge netifaces 0.11.0 py311ha68e1ae_1 conda-forge networkx 3.1 pyhd8ed1ab_0 conda-forge nidaqmx-python 0.7.0 pyhd8ed1ab_0 conda-forge numba 0.57.0 py311h2c0921f_2 conda-forge numcodecs 0.11.0 py311h12c1d0e_1 conda-forge numexpr 2.8.4 pypi_0 pypi numpy 1.24.3 py311h0b4df5a_0 conda-forge openjpeg 2.5.0 ha2aaf27_2 conda-forge openssl 3.1.1 hcfcfb64_1 conda-forge ophyd 1.7.0 pyhd8ed1ab_0 conda-forge orc 1.8.4 h08d22ad_0 conda-forge outcome 1.2.0 pyhd8ed1ab_0 conda-forge packaging 23.1 pyhd8ed1ab_0 conda-forge pandas 2.0.2 py311hf63dbb6_0 conda-forge panel 1.1.1 pyhd8ed1ab_0 conda-forge param 1.13.0 pyh1a96a4e_0 conda-forge paramiko 3.2.0 pyhd8ed1ab_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge partd 1.4.0 pyhd8ed1ab_0 conda-forge pathvalidate 2.5.2 pypi_0 pypi patsy 0.5.3 pyhd8ed1ab_0 conda-forge pcre2 10.40 h17e33f8_0 conda-forge pickleshare 0.7.5 py_1003 conda-forge pillow 9.4.0 py311h76d9071_1 conda-forge pint 0.22 pyhd8ed1ab_1 conda-forge pint-xarray 0.3 pyhd8ed1ab_0 conda-forge pip 23.1.2 pyhd8ed1ab_0 conda-forge platformdirs 3.8.0 pyhd8ed1ab_0 conda-forge pluggy 1.0.0 pyhd8ed1ab_5 conda-forge plumbum 1.8.2 pyhd8ed1ab_0 conda-forge ply 3.11 py_1 conda-forge pooch 1.7.0 pyha770c72_3 conda-forge portion 2.4.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.38 pyha770c72_0 conda-forge prompt_toolkit 3.0.38 hd8ed1ab_0 conda-forge psutil 5.9.5 py311ha68e1ae_0 conda-forge pthread-stubs 0.4 hcd874cb_1001 conda-forge pthreads-win32 2.9.1 hfa6e2cd_3 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge py-cpuinfo 9.0.0 pypi_0 pypi py4j 0.10.9.7 pyhd8ed1ab_0 conda-forge pyarrow 12.0.0 py311h6a6099b_8_cpu conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pyepics 3.5.0 py311h1ea47a8_3 conda-forge pyerfa 2.0.0.3 py311h59ca53f_0 conda-forge pyft232 0.12 pypi_0 pypi pygments 2.15.1 pyhd8ed1ab_0 conda-forge pylablib 1.4.1 pyhd8ed1ab_0 conda-forge pymeasure 0.11.1 pyhd8ed1ab_0 conda-forge pymodaq 4.0.2 pypi_0 pypi pymodaq-plugin-manager 1.0.1 pypi_0 pypi pymodaq-plugins-mock 4.0.2 pypi_0 pypi pynacl 1.5.0 py311hd53affc_2 conda-forge pyparsing 3.1.0 pyhd8ed1ab_0 conda-forge pyqt 5.15.7 py311h125bc19_3 conda-forge pyqt5-sip 12.11.0 py311h12c1d0e_3 conda-forge pyqtgraph 0.13.3 pyhd8ed1ab_0 conda-forge pyrsistent 0.19.3 pypi_0 pypi pyserial 3.5 pyhd8ed1ab_0 conda-forge pysocks 1.7.1 pyh0701188_6 conda-forge pytablewriter 0.64.2 pypi_0 pypi pytest 7.4.0 pyhd8ed1ab_0 conda-forge python 3.11.4 h2628c8c_0_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-tzdata 2023.3 pyhd8ed1ab_0 conda-forge python_abi 3.11 3_cp311 conda-forge pythonnet 3.0.1 pyhd8ed1ab_0 conda-forge pytorch 2.0.1 py3.11_cpu_0 pytorch pytorch-mutex 1.0 cpu pytorch pytz 2023.3 pyhd8ed1ab_0 conda-forge pyusb 1.2.1 pyhd8ed1ab_0 conda-forge pyvisa 1.13.0 py311h1ea47a8_0 conda-forge pyviz_comms 2.3.2 pyhd8ed1ab_0 conda-forge pywin32 304 py311h12c1d0e_2 conda-forge pywin32-on-windows 0.1.0 pyh07e9846_2 conda-forge pyyaml 6.0 py311ha68e1ae_5 conda-forge pyzmq 25.1.0 py311h7b3f143_0 conda-forge qdarkstyle 3.1 pypi_0 pypi qt-main 5.15.8 h720456b_6 conda-forge qtconsole 5.4.3 pypi_0 pypi qtpy 2.3.1 pypi_0 pypi re2 2023.03.02 hd4eee63_0 conda-forge readme-renderer 37.3 pypi_0 pypi requests 2.31.0 pyhd8ed1ab_0 conda-forge rpyc 5.3.0 pyhd8ed1ab_0 conda-forge scikit-learn 1.2.2 py311h142b183_2 conda-forge scipy 1.10.1 py311h37ff6ca_3 conda-forge seaborn 0.12.2 hd8ed1ab_0 conda-forge seaborn-base 0.12.2 pyhd8ed1ab_0 conda-forge setuptools 68.0.0 pyhd8ed1ab_0 conda-forge simple-pid 2.0.0 pypi_0 pypi sip 6.7.9 py311h12c1d0e_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge snappy 1.1.10 hfb803bf_0 conda-forge sniffio 1.3.0 pyhd8ed1ab_0 conda-forge sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge statsmodels 0.14.0 py311h59ca53f_1 conda-forge sympy 1.12 pyh04b8f61_3 conda-forge tabledata 1.3.1 pypi_0 pypi tables 3.8.0 pypi_0 pypi tbb 2021.9.0 h91493d7_0 conda-forge tblib 1.7.0 pyhd8ed1ab_0 conda-forge tcolorpy 0.1.3 pypi_0 pypi threadpoolctl 3.1.0 pyh8a188c0_0 conda-forge tk 8.6.12 h8ffe710_0 conda-forge tmm 0.1.8 pypi_0 pypi tmm-fast 0.1 pypi_0 pypi toml 0.10.2 pyhd8ed1ab_0 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge toolz 0.12.0 pyhd8ed1ab_0 conda-forge torchaudio 2.0.2 py311_cpu pytorch torchvision 0.15.2 py311_cpu pytorch tornado 6.3.2 py311ha68e1ae_0 conda-forge tqdm 4.65.0 pyhd8ed1ab_1 conda-forge traitlets 5.9.0 pyhd8ed1ab_0 conda-forge traittypes 0.2.1 pyh9f0ad1d_2 conda-forge trio 0.22.0 py311h1ea47a8_1 conda-forge typepy 1.3.0 pypi_0 pypi typing-extensions 4.6.3 hd8ed1ab_0 conda-forge typing_extensions 4.6.3 pyha770c72_0 conda-forge tzdata 2023c h71feb2d_0 conda-forge uc-micro-py 1.0.1 pyhd8ed1ab_0 conda-forge ucrt 10.0.22621.0 h57928b3_0 conda-forge urllib3 2.0.3 pyhd8ed1ab_0 conda-forge vc 14.3 hb25d44b_16 conda-forge vc14_runtime 14.36.32532 hfdfe4a8_16 conda-forge vs2015_runtime 14.36.32532 h05e6639_16 conda-forge wcwidth 0.2.6 pyhd8ed1ab_0 conda-forge webencodings 0.5.1 py_1 conda-forge wheel 0.40.0 pyhd8ed1ab_0 conda-forge widgetsnbextension 4.0.7 pyhd8ed1ab_0 conda-forge win_inet_pton 1.1.0 pyhd8ed1ab_6 conda-forge xarray 2023.5.0 pyhd8ed1ab_0 conda-forge xorg-libxau 1.0.11 hcd874cb_0 conda-forge xorg-libxdmcp 1.1.3 hcd874cb_0 conda-forge xyzservices 2023.5.0 pyhd8ed1ab_1 conda-forge xz 5.2.6 h8d14728_0 conda-forge yaml 0.2.5 h8ffe710_2 conda-forge yawrap 0.4.10 pypi_0 pypi zarr 2.15.0 pyhd8ed1ab_0 conda-forge zeromq 4.3.4 h0e60522_1 conda-forge zict 3.0.0 pyhd8ed1ab_0 conda-forge zipp 3.15.0 pyhd8ed1ab_0 conda-forge zlib 1.2.13 hcfcfb64_5 conda-forge zstd 1.5.2 h12be248_6 conda-forge ```
AlexShkarin commented 1 year ago

Unfortunately, the traceback got truncated in the middle, but it looks like the device is simply not replying to any commands (since this is the first time the code expects a reply).

To double-check, could you run the following code

dev=Thorlabs.BasicKinesisDevice(sernumber)
dev.blink()
dev.get_device_info()

and check whether

Also, just to check that it's not a hardware issue: can you connect to the same device using the Thorlabs Kinesis software? And have you tried pylablib for other Kinesis devices, connected to the same PC, if you have any?

kadykov commented 1 year ago

You are right, it was just a problem with the controller itself. A proper reboot solved the problem. It seems that a quick on-off power cycle does not actually reboot the device, it is necessary to wait at least 5 seconds before switching it on again.

Thank you very much for your help.