qudi
qudi copied to clipboard
Instrument libraries
There are a lot of instrument libraries out there trying to interface various scientific instruments. In this issue these shall be reviewed for possible inclusion into qudi with the benefit of enabling access to a larger pool of hardware.
I will start with a list of libraries I found (only ones that appear actively maintained)
- Instrumental
- InstrumentKit
- pymeasure
- Qcodes -- more a competitor, but also has some instrument drivers
- qtlab -- last commit Nov, 9th, 2016
Please add if you know more.
InstrumentKit
-
hardware interfaces classes, however the existing ones seem to be very rudimentary and not well designed (yet?)
-
very nice abstraction of the actual connection to the hardware + possibility of specifying an URI (nice for specifying the connection in our configuration file)
-
still supports python 2.7 (-> requires us to support it if we contribute drivers)
-
in some drivers they declare support classes inside a class (I'm not so a fan of that and it confused me at first - I prefer them outside with a leading underscore), in other drivers however they declare them outside (as I prefer)
-
includes a Thorlabs APT driver connecting via Thorlabs' communication protocol. However, only a patched version is compatible with python3 and it's far from working with my stage.
-
they consider an effort to include instruments implemented in the other libraries mentioned here
-
all quantities have associated units (using the quantities package)
-
I actually have none of the instruments they have drivers for, so testing is a bit hard
Dependencies
- numpy
- pyserial
- quantities
- future>=0.15
- enum34
- python-vxi11>=0.8
- pyusb
- python-usbtmc
- pyyaml
quantities is currently incompatible with the newest version of numpy.
License compatibility:
- Instrumental: GPLv3, no code use or sharing problems
- InstrumentKit: AGPLv3, do not copy code from here under any circumstances, library use is fine, contributions must be fully your own
- pymeasure: MIT, code is copyable, needs attribution, contributions must be fully your own
- Qcodes: MIT, code is copyable, needs attribution, contributions must be fully your own
- qtlab: unclear situation, some files have GPLv2+ headers and could be incorporated, contributions must be fully your own
python-ivi: MIT code is copyable, needs attribution, contributions must be fully your own
From a quick glance, python-ivi looks like one could write a general wrapper for it and use the implemented instruments.
I'm working on that right now starting with the oscilloscopes, scope_interface branch. It's not worth checking out right now though.
On 12/24/2017 02:41 PM, Jan Binder wrote:
From a quick glance, python-ivi looks like one could write a general wrapper for it and use the implemented instruments.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Ulm-IQO/qudi/issues/226#issuecomment-353784928, or mute the thread https://github.com/notifications/unsubscribe-auth/ABV7UqCYo4wyhlUCcVuFw1YJt7yDoWIlks5tDlSZgaJpZM4OYSJL.