Description: This project is for study the quantum information present in NV defects with ODMR and Rabi pulses experiments.
Machines used:
- Pulse Streamer 8/2 : https://www.swabianinstruments.com/pulse-streamer-8-2/
- Moku Pro : https://www.liquidinstruments.com/products/hardware-platforms/mokupro/
- Rohde & Schwarz SMB100A
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
-
Download the miniconda installer: https://docs.conda.io/projects/miniconda/en/latest/
-
Add conda to env var with following code
# execute the code below as administrator setx PATH "%PATH%;C:\Users\<nom d'utilisateur>\miniconda3" /M
-
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
- Gitlens
- Jupyter
- Prettier
- Python
- Python Environment managemen
Change default terminal to cmd :
- Press Ctrl + Shift + P to show all commands.
- Select Terminal: Select Default Profile.
- Select Command Prompt (cmd.exe)
C:\Users\user_name\ .conda\envs\env-name\Lib\site-packages\PySide6\designer.exe
-
Design GUI with QtDesigner
-
Generate .py file from .ui file
pyside6-uic MainWindow.ui -o ui_mainwindow.py
-
Rewrite .py fil, create helper classes so that the GUI is dynamic
-
Connect fonctionali to UI elements
- 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
-
PySide 6 tutorial : https://www.pythonguis.com/pyside6-tutorial/
-
Moku Python API : https://apis.liquidinstruments.com/examples/python/
-
Pulse Streamer Python API : https://www.swabianinstruments.com/static/documentation/PulseStreamer/
-
Rohde & Schwarz SMB100A :
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