In this repository a GUI is provided to control the MiniPTI as also presented in Waveguide based passively demodulated photothermal interferometer for light absorption measurements of trace substances. In addition to the GUI, Python implementations of the presented algorithms and the driver software for the MiniPTI hardware are also provided as libraries.
The library and GUI are tested for Ubuntu 22.04 LTS, Windows 10, Windows 11 and Raspberry Pi OS.
If hardware access is needed (i.e. serial ports) it works only on Windows and Unix.
** Warning ** PIP is still not up to date, use GitHub only.
To install the library + GUI you can use the pip package manager. Just type in the console
pip install minipti
The GUI is designed to be highly configurable. In minipti/gui/configs you will find is a configs folder from which the desired functionality can be selected. Bloew are shown some example configurations.
In the interferometry GUI, only DC signals and interferometric phase are shown in the home tab. While pressing "run" the probe laser (if existing) and motherboard are running.
The GUI supports dark mode
and detect as well a theme detection of the OS to light theme.
In the PTI GUI (used for the Passepartout project), DC signals, interferometric phase and PTI Signal are displayed only on the home tab. While pressing "run" the probe laser (if existing), pump laser and motherboard are running.
It is possible to use the GUI to controll a custom build probe laser driver together with a custom build tec driver of the FHNW. An example GUI is shown (configured such, that only Probe Laser relevant features are their) below.
Laser Driver
Tec Driver
It is also possible to use the GUI with the pump laser only if proberly configured. Note that the Pump Laser is moduldated with 80 Hz, but the transmitted values of current are average on the driver.
The subpackage Algorithm contains the implementation of the algorithms and can be divided into the subpackages interferometry and pti. interferometry contains the algorithms for the interferometric phase and characterisation of the interferometer. pti contains the algorithms for decimation and PTI inversion.
It is also possible to use only the interferometer subpackage without having to install dependencies for the other packages.
interferometry contains the classes interferometer and characterisation. Examples of usage can be found under examples/interferometer.py and examples/characterisation.py.
pti contains the classes decimation inversion. Example calls can be found under examples/pti_inversion.py
Hardware contains the classes to control the motherboard (DAQ + BMS), laser (Probe and Pump Laser) and TEC driver as well as the valve control.
For the GUI some external public licence pictures were used which are listed below:
https://freesvg.org/qubodup-cog-cogwheel-gear-zahnrad
Budget icons created by Freepik - Flaticon
https://iconspng.com/image/138798/play-blue-button
https://commons.wikimedia.org/wiki/File:Breathe-system-shutdown.svg
https://iconspng.com/image/5801/windows-media-player-pause-button
https://commons.wikimedia.org/wiki/File:Blue_folder_seth_yastrov_01.svg
https://www.svgrepo.com/svg/203212/gas-pipe-valve
https://commons.wikimedia.org/wiki/File:Batteries-1379208.svg
https://commons.wikimedia.org/wiki/File:Antu_battery-charging-060.svg