Skip to content

vuthanhtung2412/ODMR-FOTON

Repository files navigation

Control interface for ODMR and Rabi experiments

Description: This project is for study the quantum information present in NV defects with ODMR and Rabi pulses experiments.

Machines used:

Demos

First version

ODMR & Rabi version

Required set up

Install conda on Linux

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh

Install conda on Window

  1. Download the miniconda installer: https://docs.conda.io/projects/miniconda/en/latest/

  2. Add conda to env var with following code

     # execute the code below as administrator
     setx PATH "%PATH%;C:\Users\<nom d'utilisateur>\miniconda3" /M
    
  3. Test conda installation

     conda list
    

Install RsVISA (this module is for dectecting R&S instruments) :

Pull project

git clone https://github.com/FOTON-Quantum-Lab/Rabi-ODMR.git
cd Rabi-ODMR

Set up conda env

conda env create --name <ur-env-name> --file environment.yml

Run the program

# rabi odmr version 
python odmr_rabi_version/ODMRRabiMain.py
# or intial version
pyhon initial_version/main.py

Futher Optional set up

VSCode extension

  • Gitlens
  • Jupyter
  • Prettier
  • Python
  • Python Environment managemen

VSCode setup

Change default terminal to cmd :

  1. Press Ctrl + Shift + P to show all commands.
  2. Select Terminal: Select Default Profile.
  3. Select Command Prompt (cmd.exe)

Create QtDesigner shortcut

C:\Users\user_name\ .conda\envs\env-name\Lib\site-packages\PySide6\designer.exe

Workflows

  1. Design GUI with QtDesigner

  2. Generate .py file from .ui file

     pyside6-uic MainWindow.ui -o ui_mainwindow.py
    
  3. Rewrite .py fil, create helper classes so that the GUI is dynamic

  4. Connect fonctionali to UI elements

Explain file structure

  • demos : images to flex
  • initial_version : first version
  • odmr_rabi_version : the current version which connect to both generator and pulse streamer. It can do both ODMR and Rabi experiments.
  • RsSmbv_examples : this dir is used to test Python API of the generator
  • moku_examples : this dir is used to test Python API of the moku
  • pulseStreamer_examples : this dir is used to test Python API of the pulseStreamer

Useful ressources

Futures works:

Error handling non found machine

Load frequency list to Rohde & Schwarz SMB100A

Ensure every thing is loaded before execution

Moku integration

Rohde & Schwarz SMB100A List mode (load list of frequency)

Switch frequency when receive signal from the Pulse Streamer

Save Pulse Sequence (with a text file) + update UI when load file

Notify when machine is disconnected

QUDI (doc) might be interesting to look at, however i find it not very promising

About

GUI for ODMR and Rabi experiment 🔬

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages