Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 11
Created over 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

Laser Control: Python Project for Sacher TEC Laser Control

PySacherECLManager (Python Sacher External Cavity Laser) is a Python project developed to control Sacher TEC lasers. This project offers a convenient interface for users to interact with the laser, adjust parameters, and perform various operations for laser control and management. Features

Features

  • Laser Parameter Adjustment: Modify settings such as wavelength and speed for specific requirements.
  • Intuitive GUI: Easy-to-navigate graphical user interface.
  • Integration Support: Includes examples for integration with other tools.

Requirements

  • Python 3.x: Ensure a compatible version is installed.
  • Sacher TEC Laser Hardware: Required for functionality.
  • Dependencies: Listed in the requirements.txt file.

Limitation:

  • Platform: Currently only tested on Windows.

Installation

  1. Clone the repository: bash git clone https://github.com/agentsmith29/PySacherECLControl.git ### Install dependencies: The Library requires to have a couple of files that are not directly included in this repository #### Maxon Motor Driver
  2. Maxon Motor drivers as a zip. You can either use the included zip file
  3. Maxon Motor Drivers from the official website

Sacher Laser Driver

In order to make the library work, you need to include the Sacher Laser Libary, which can be requested by Sacher: 1. Set the path to the EposCmd64.dll and the SacherMotorControl.pyd ```python conf.eposdll.set(pathlib.Path( f'{Laser.rootdir_}/libs/SacherLib/PythonMotorControlClass/EposCmd64.dll'))

conf.motorcontrolpyd.set(pathlib.Path( f'{Laser.rootdir}/libs/SacherLib/PythonMotorControlClass/' f'lib/Python312/SacherMotorControl.pyd')) ```

Virtual Environment and Dependencies

  1. Create a virtual environment (optional, but highly recommended) bash # Create a virtual environment python -m venv .venv
  2. Activate the virtual environment 2.1 On Linux and max bash source .venv/bin/activate # Linux/MacOS 2.2 On Windows using cmd cmd .venv\Scripts\activate # Windows 2.3 Alternativily, if you are using Bash on Windows: bash . .venv/Scripts/activate

  3. Install dependencies The full list of depdendecies can be found in requirements.txt bash pip install -r requirements.txt

Usage

Configuration File

After installing, make sure you create a config. The libary uses the confpy6 payhton module, to allow working with configuration files, build in the yaml file: python conf = Laser.Config() conf.save() #conf.load('./LaserConfig.yaml', as_auto_save=True) conf.autosave(True, './LaserConfig.yaml') See (main.py)[./examples/main.py] for an example.

Base configuration

The base configuration LaserConfig.py, gives default vaules for the initialization. These values serve as the default values for initializing the whole application. You should find a similar file after initialization in your startup directory: ```yaml

- Configuration file stored 2024-11-28 16:28:24.693820 -

LaserConfig: #!!python/object:controller.LaserConfig eposdll: "@Path:<./EposCmd64.dll>" # eposdll: None motorcontrolpyd: "@Path:<./Python312/SacherMotorControl.pyd>" # motorcontrolpyd: None wlsweepstart: 845 # wlsweepstart: None wlsweepstop: 855 # wlsweepstop: None velocity: 1.6540566248074888 # velocity: None acceleration: 1.9904737652227005 # acceleration: None deceleration: 1.9904737652227005 # deceleration: None availableports: ['USB0', 'USB1', 'USB2', 'USB3', 'USB4', 'USB5', 'USB6', 'USB7', 'USB8', 'USB9'] # availableports: None port: "USB0" # port: None ```

Starting the script

Run the main script. An example can be found in src-root: bash python ./src/lasercontrol.py Use the graphical interface to adjust laser parameters, monitor data, and control the laser. Refer to the user manual or documentation for detailed instructions on specific operations and functionalities.

Making an exectuable

bash source .venv/bin/activate pip install -r requirements.txt pyinstaller ./pyinstaller/lasercontrol.spec

Contributing

Contributions to Laser Control are welcome! If you have suggestions for improvements, encounter any issues, or would like to add new features, please feel free to open an issue or submit a pull request on the GitHub repository.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Citing

This project is part of the Software FlexSensor whgich has been published under DOI 10.2139/ssrn.4828876.

Please cite it correctly. Schmidt, Christoph and Hinum-Wagner, Jakob Wilhelm and Klambauer, Reinhard and Bergmann, Alexander, Flexsensor: Automated Measurement Software for Rapid Photonic Circuits Capturing. Available at SSRN: https://ssrn.com/abstract=4828876 or http://dx.doi.org/10.2139/ssrn.4828876

Acknowledgements

Owner

  • Name: Christoph Schmidt
  • Login: agentsmith29
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: >-
  FlexSensor: Automated measurement software for rapid
  photonic circuits capturing
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Christoph
    family-names: Schmidt
    affiliation: Graz University of Technology
    email: christoph.schmidt@tugraz.at
    orcid: 'https://orcid.org/0009-0000-6625-3316'
  - given-names: Jakob Wilhelm
    family-names: Hinum-Wagner
    affiliation: ams-OSRAM AG
  - given-names: 'Reinhard '
    family-names: Klambauer
    affiliation: Graz University of Technology
  - given-names: Alexander
    family-names: Bergmann
    affiliation: Graz University of Technology
identifiers:
  - type: doi
    value: 10.1016/j.softx.2024.101879
repository-code: 'https://github.com/agentsmith29/flexsensor'
url: 'https://github.com/agentsmith29/flexsensor'
abstract: >-
  This paper introduces the automation measurement software
  FlexSensor for capturing resonant spectra, an innovative
  and extensible software program developed explicitly for
  measuring and evaluating wafer-level Silicon Photonic
  (SiPh) circuits. Wafer-level Silicon Photonics allows the
  integration of numerous optical components and structures
  on a single wafer. However, researchers and engineers need
  precise and repeatable measurements to characterize them
  and face significant challenges when dealing with large
  numbers of complex systems on a single wafer. A toolchain
  gap hampers the measuring of such highly integrated
  photonic structures: While the setup necessitates the
  integration of an optimized hardware and software
  toolchain, there is neither software nor a standardized
  way to implement a reproducible measurement routine for a
  massive set of measurements.


  FlexSensor allows integration and control of external
  hardware (tunable lasers, analog–digital converters) and
  supports measurement data storage and evaluation. The
  software enables researchers and engineers to efficiently
  analyze the spectral response of photonic structures and
  facilitate rapid measuring.
keywords:
  - Silicon photonics
  - Wafer-level measurements
  - Measurement automation
  - Graphical user interface
license: CC-BY-4.0

GitHub Events

Total
  • Release event: 9
  • Watch event: 1
  • Delete event: 7
  • Push event: 26
  • Create event: 17
Last Year
  • Release event: 9
  • Watch event: 1
  • Delete event: 7
  • Push event: 26
  • Create event: 17

Dependencies

pyproject.toml pypi
  • PySide6 *
  • captdevicecontrol @git+https://gitlab.tugraz.at/flexsensor-public/captdevicecontrol.git@develop
  • cmp @git+https://gitlab.tugraz.at/flexsensor-public/modules/cmp.git@develop
  • confighandler @git+https://gitlab.tugraz.at/flexsensor-public/modules/confighandler.git@develop
  • fswidgets @git+https://gitlab.tugraz.at/flexsensor-public/modules/fswidgets.git@develop
  • pyyaml *
  • rich *
requirements.txt pypi
  • PySide6 *
  • matplotlib *
  • numpy *
  • pandas *
  • pyyaml *
  • rich *
  • scipy *
.github/workflows/python-publish.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite
  • sigstore/gh-action-sigstore-python v2.1.1 composite