Code Monkey home page Code Monkey logo

shg_frog's Introduction

shg_frog

MIT licensed

Software for measurement and characterization of ultra-fast laser pulses using the SHG FROG technique.

Want to know more about FROG? R. Trebino, Frequency-Resolved Optical Gating: the Measurement of Ultrashort Laser Pulses, Kluwer, Boston (2002)

Commercial devices exist, but are rather expensive. A home-built device can save a lot of money. The code in this repository provides:

  • A graphical user interface for the measurement of the so-called FROG trace.
  • The possibility to choose between two different phase retrieval algorithms:
  • A list of possible hardware components that integrate nicely with this software. But also alternative devices can be used and easily integrated.

The main window:

frog_gui_main

The phase retrieval window:

frog_gui_retrieval

Setting up

Software dependencies

  • Python version = 3.7

  • most of the dependencies (pyqt5, pyqtgraph, pyyaml, matplotlib, imageio) are installed automatically with the pip command. Additionally you need to install

  • QtDesigner, in case you want to modify the GUI

Download and start

Install the FROG software (ideally in a virtual python environment) by

pip install git+https://github.com:jkrauth/shg_frog.git

Run it by

shg_frog [-h]

with '-h' to see available options.

After you started the software once, you will have a .frog_config folder in your home directory. It contains a config.yml file that should be adapted to your setup.

Measurement data will be saved into a frog_datafolder, also in your home directory.

Upon startup you will have example data loaded which you can use for a first pulse reconstruction. This is overwritten as soon as you do a measurement.

Notes on Terminology and Parameter options

Phase Retrieval

  • The GP algorithm gives generally better results with a lower error (G in the phase retrieval GUI). In some cases, however, it does not converge. In these cases the ptychographic algorithm provides a solution.
  • The "prepFrog" parameter should be 128 unless modifications to the Phase Retrieval GUI are made.

Stage

  • Offset refers to the stage position (i.e. mirror position) at which the FROG signal is maximum and is the point around which the FROG trace is measured, over a range specified by "Number of steps" and "Step size".

Hardware

Newport Stage

  • The best and cheapest solution to get a motorized translation stage in our case was to buy an actuator (Newport TRA25-CC) and combine it with an existing manual stage. The stage can be controlled via the Newport SMC100-CC controller.
  • The minimum incremental motion of the above mentioned device is 0.2 micron. For laser pulses with a pulse length of <=20 fs a better actuator might be considered. For ~200 fs pulses it works fine.
  • A driver for that setup is included in the labdevices package (see requirements).

Spectrometer

  • We use the Allied Vision Manta G235B camera in combination with a grating. Other Allied Vision Manta GigE cameras should also work.

  • Trigger the camera externally if the laser has a low repetition rate (e.g. 30Hz). External trigger (TTL) has to be at least 6 microseconds long with an amplitude of min. 2V. More information on triggering the camera is found in the Manta Tech Manual from page 193 on.

  • Currently not fully implemented: There is also an option to measure with a Spectrometer for comparison. In our case we used the ANDO Spectrometer AQ-6315A in combination with a prologix-gpib-ethernet adapter. This option is not ideal because the measurements take much more time which you might want to avoid if your laser is not too stable. Still, for calibration it might be useful.

  • The driver for camera and spectrometer is included in the labdevices package (see requirements).

Contact

  • Repo owner: Julián Krauth, [email protected]
  • Institution: Vrije Universiteit Amsterdam, Faculty of Sciences, The Netherlands

shg_frog's People

Contributors

jkrauth avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.