Python/PyUSB interface to the FL593FL evaluation board for the TeamWavelength FL500 laser diode driver.
USB communication is handled by PyUSB, which can operate with several backends, i.e. libusb-0.1, libusb-1.0 or OpenUSB. Any of these should do the job as the grimy details are thankfully hidden away.
The module ships with a basic REPL CLI. In most cases, this is enough to toggle the Remote (software) Enable and configure channel setpoints and limits, while modulation is applied externally (TTL/analog modulation).
For more detailed interactions, a Qt4 interface with basic controls allows the same functions comfortably.
To allow for remote operation, a tornado webserver provides a browser based interface.
At minimum, PyUSB is required, see below. PyQt4 is required for the Qt interface, tornado webserver (and its big tail of dependencies) for the WebUI. Pyserial and numpy are required for the (not exposed yet) interface to a microcontroller.
To install the driver, use Zadig and install a libusb-win32 driver as per instructions (For this exact model: vendor id: 0x1a45, product id: 0x2001). Very easy. Then install PyUSB.
Use the resources/42-fl593fl-eval-board.rules udev file for access without super user rights.
Installing on distributions using apt goes something along the lines of:
$ sudo apt-get install libusb-dev
Or for specifically installing libusb-1.0 at the time of writing:
$ sudo apt-get install libusb-1.0-0-dev
Many distributions pull the old 0.x branch when using their package manager, but the 1.0.0+ version of PyUSB is required. As the latter is a pure python library, installing from the github repo should work just fine:
$ git clone https://github.com/walac/pyusb.git
$ cd pyusb
$ python setup.py install
- Browser based interface
- Replace the current directly coupled Qt interface with a separate server, handling the USB interface, and a Qt based client. The two communicate via ZMQ.
- Easy time-stamped note taking
- Realtime display and recording via microcontroller
- Full calibration suite