Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue76 improve scan save for qt3scan application #80

Closed
wants to merge 125 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
88588de
Merge pull request #1 from gadamc/adding-cwodmr-experimental-setup
Jun 29, 2022
387e8bd
adds padding around rabi rf pulse to ensure no overlap between aom an…
gadamc Jul 2, 2022
eb0b9ac
adds attempt to make compatible with a t1 measurement
gadamc Jul 5, 2022
91ac18e
adds podmr
gadamc Jul 6, 2022
c82d3fc
july 6
gadamc Jul 7, 2022
a2f75e2
Merge pull request #3 from gadamc/add-pulsed-odmr-class
Jul 13, 2022
1feac30
Adds new function to control the qcsapphire. Can now get much smaller RF
gadamc Jul 13, 2022
9498da5
removes merge crud
gadamc Jul 13, 2022
46851c0
removes merge crud
gadamc Jul 13, 2022
93203b8
Merge pull request #4 from gadamc/update-with-new-pulser-settings
Jul 13, 2022
6f62261
Moved to programs
gadamc Jul 25, 2022
8fda5d8
Fixes scope by removing blit option, which allows for dynamic scaling
gadamc Aug 23, 2022
c6cbd27
Adds robustness to lower bound to ensure always > 0
gadamc Aug 23, 2022
45e2b66
adds better random signal for testing
gadamc Aug 23, 2022
f625cd3
Adds console entry point for oscilloscope.
gadamc Aug 23, 2022
5345fdf
Updates help
gadamc Aug 23, 2022
b2badce
Remove line to reset DAQ when starting (this has serious
gadamc Aug 24, 2022
46f4ff3
Updates README
gadamc Aug 23, 2022
c001837
Update README.md
Aug 24, 2022
5446967
Creates TKinter GUI application for oscilloscope and piezo scan
gadamc Aug 26, 2022
6e53e6e
Merge pull request #9 from gadamc/add-confocal-piezo-scan2
Sep 2, 2022
beea5d4
removes temp folder
gadamc Sep 2, 2022
527da4a
Merge pull request #10 from gadamc/rm-temp-directory
Sep 2, 2022
9d18abd
fixes issue #7
gadamc Sep 2, 2022
5af1c2d
Merge pull request #11 from gadamc/remove-reset-daq-calls
Sep 2, 2022
2c8ab6e
Adds examples from qt3-defaultexperiments (which will be retired)
gadamc Sep 2, 2022
833bf44
Merge pull request #13 from gadamc/move-examples-from-qt3-default
Sep 2, 2022
f299ae6
Makes sure x and y axis in image were labeled correctly.
gadamc Sep 2, 2022
ca0493e
adds ipynb checkpoints to ignore
gadamc Sep 2, 2022
b662e92
fixes scan figure x axis to include step size
gadamc Sep 2, 2022
228e99e
adds qt3scan to applications section of readme. adds link to examples
gadamc Sep 2, 2022
966516f
moves applications to directory one level up. This more clearly separ…
gadamc Sep 3, 2022
d1b40d5
change from master to main_frame where possible
gadamc Sep 4, 2022
de03a20
adds method to return raw sample counts
gadamc Sep 5, 2022
28d3c4b
adds generic method to scan any axis over any range
gadamc Sep 5, 2022
e6bcf28
Adds optimization functionality
gadamc Sep 6, 2022
f393b5c
Adds guassian fit to optimize position buttons.
gadamc Sep 6, 2022
53bf31b
Moves optimize scan to the piezoscanner class so can be used outside …
gadamc Sep 6, 2022
8cc2c5d
removed commented out code
gadamc Sep 6, 2022
fd131a3
removes old code
gadamc Sep 6, 2022
627cf48
update application names
gadamc Sep 7, 2022
1ad5fe7
changes parameter name for optimize_position. adds docstring
gadamc Sep 8, 2022
0519461
improves scan range and optimziation
gadamc Sep 12, 2022
3547a62
improves optimizaton
gadamc Sep 13, 2022
b21ac0e
Merge pull request #24 from gadamc/add-optimization-to-scanner
Sep 13, 2022
7eac20e
Changes default values to match current hardware setup in lab.
gadamc Sep 22, 2022
0f49c0e
Updates example notebook with successful example of CWODMR
gadamc Sep 22, 2022
1a376e7
Adds example of how to read a saved piezo scan.
gadamc Sep 23, 2022
ef239a0
Merge pull request #31 from gadamc/add-example-notebook-to-read-scan
Sep 23, 2022
b4697a2
Creates separate thread function for position optimization in qt3scan
gadamc Sep 23, 2022
6a46712
Merge pull request #32 from gadamc/move-optimization-to-seprate-thread
Sep 23, 2022
03761f4
Merge pull request #33 from gadamc/fix-example-cwodmr
Sep 23, 2022
5099b37
moves more model calls into thread. adds exception handling. fixes fo…
gadamc Sep 27, 2022
3bc9566
adds pause between raster line scans
gadamc Sep 27, 2022
6f53dec
add real data example scan
gadamc Sep 27, 2022
c09e1f2
Merge pull request #37 from gadamc/debug-scanner-sep27
Sep 30, 2022
6b991fe
wip
gadamc Sep 30, 2022
0c429c4
fixes full cycle width
gadamc Oct 3, 2022
2c4360f
updates podmr notebook
gadamc Oct 3, 2022
dcaa348
fixes handful of small bugs. updates example notebooks
gadamc Oct 4, 2022
db738c6
Merge pull request #39 from gadamc/update-experiments
Oct 4, 2022
a8b784d
updates examples. cleans up output and removes the autoreload cells
gadamc Oct 5, 2022
d18352e
small cleanup
gadamc Oct 5, 2022
50a9d67
remove confusing plt. add example secondary analysis and data saving.…
gadamc Oct 5, 2022
502d923
Changes object name NiDaqSampler to NiDaqDigitalInputRateCounter. Cha…
gadamc Oct 10, 2022
1788d82
Merge pull request #43 from gadamc/change-nidaqsampler-name
Oct 10, 2022
324cc90
changes name of piezo controller variable to match recent merge
gadamc Oct 10, 2022
fe82f4a
Adds pulsers submodule
gadamc Oct 12, 2022
c30a733
Updates cwodmr example notebook to use new QCSapphCWODMRPulser
gadamc Oct 13, 2022
e5aa490
Changes interface to 'program_pulser_state'
gadamc Oct 13, 2022
5c71c91
Adds QCSapphPulsedODMRPulser object
gadamc Oct 13, 2022
ff13fc8
Updates experiment.Rabi to use pulsed odmr object.
gadamc Oct 13, 2022
46a8ac2
changes function to raise_for_pulse_width so that it's
gadamc Oct 13, 2022
dab7b05
Updates Rabi example.
gadamc Oct 13, 2022
c043a20
Merge pull request #46 from gadamc/add-pulsers-submodule
Oct 13, 2022
a6955f3
Adds PulseBlasterCWODMRPulser object.
gadamc Oct 14, 2022
6261609
Adds PulseBlasterPulsedODMR class
gadamc Oct 14, 2022
2bb76a5
Fixes bug where start_progamming call to spinapi
gadamc Oct 17, 2022
eddabb3
Merge pull request #49 from gadamc/add-pulse-blaster-cwodmr-podmr
Oct 17, 2022
21c0c5e
Adds PulseBlasterRamsey object
gadamc Oct 14, 2022
ecbc0ca
Adds PulseBlasterRamHahnDD for programming Ramsey, Hahn Echo and Dyna…
gadamc Oct 14, 2022
f4e8e72
Small bug fix and usage of base class start and stop programming
gadamc Oct 17, 2022
7f15772
Merge pull request #50 from gadamc/add-pulse-blaster-ramsey-hahn-echo
Oct 17, 2022
f605a02
Adds experiments.ramsey and example usage
gadamc Oct 17, 2022
4f1b961
Merge pull request #53 from gadamc/add-ramsey-experiment
Oct 21, 2022
c35cb7f
Adds exception handling around the scan for loop.
gadamc Oct 22, 2022
3d4cbe1
Moves aggregation and constract measurement functions
gadamc Oct 24, 2022
2f1ca16
removes analysis subpackage. raw experiment data analysis routines ha…
gadamc Oct 24, 2022
6e53d18
update readme to reflect new support for pulseblaster
gadamc Oct 25, 2022
2b71e66
removes comments
gadamc Oct 27, 2022
4bf67d2
adds try catch around experiments so that cleans up nicely when error…
gadamc Oct 28, 2022
9436c63
adding verbosity to exception detection during data acquisition
gadamc Oct 31, 2022
305727d
Adds amplifier module to specify RF amplifier, and future, ampflicati…
gadamc Nov 1, 2022
0519e3e
moves pulser outside of experiment folder
gadamc Nov 2, 2022
1b2a5b4
changes all instances of rf_width to rf_pulse_duration
gadamc Oct 27, 2022
8beed8a
Merge pull request #61 from gadamc/change-rf-width-to-rf-pulse-duration
Nov 9, 2022
4243272
fixes some bugs with qt3scope when using an external clock. however, …
gadamc Nov 9, 2022
f3074db
Merge branch 'main' of https://github.com/gadamc/qt3-utils
gadamc Nov 9, 2022
7e59aba
finished changes of rf_width to rf_pulse_duration. There were, appare…
gadamc Nov 11, 2022
20fdaf5
Adds trigger channel option to NiDaqDigitalInputRateCounter.
gadamc Nov 10, 2022
87bb5ae
Merge pull request #65 from gadamc/update-nidaqdigitalinputratecounter
Nov 15, 2022
93c3573
adds new arbitrary pulser. tests okay on scope
gadamc Nov 9, 2022
83ad838
rewrites PulseBlasterHoldAOM using PulseBlasterArb class
gadamc Nov 11, 2022
c9eab9c
fixes initialization of super class. fixes return of program_pulser_s…
gadamc Nov 15, 2022
1d04de3
Merge pull request #62 from gadamc/add_arbitrary_pulse_blaster_class
gadamc Nov 15, 2022
8f71b39
updates default values of qt3scope. gives a smoother count rate and s…
gadamc Nov 15, 2022
8c407c7
adds button to use pulse blaster to hold open AOM. necessary to do be…
gadamc Nov 16, 2022
3a52f80
removes leftover print statements
gadamc Nov 22, 2022
151e1c2
fixes minor bug where random_order was not function arg
gadamc Dec 6, 2022
d012436
remove error messages
gadamc Dec 6, 2022
9f2333a
Create LICENSE
mfparsons314 Dec 10, 2022
10df20e
adds line to ignore pycharm settings
gadamc Jan 31, 2023
14b7171
Merge pull request #72 from qt3uw/ignore_pycharm_idea_folder
mfparsons314 Feb 1, 2023
341ca01
Modifies DAQ sampler objects for purpose of improved data storage.
gadamc Feb 1, 2023
ab9da3a
Adds sample_counts function to BasePiezoScanner subclasses
gadamc Feb 1, 2023
f5c6a60
changes sample_count_rate function to return a single count rate valu…
gadamc Feb 3, 2023
835eaf6
Puts random sampler and nidaq sampler on equal footing.
gadamc Feb 3, 2023
72f0fba
Simplifies scanning object to generic CounterAndScanner
gadamc Feb 3, 2023
5eeb5f5
Changes internal variable from model to counter_scanner for clarity.
gadamc Feb 3, 2023
47c3d3c
Updates datagenerators __init__.py so as to maintain current API
gadamc Feb 3, 2023
13454da
adds h5py as a requirement
gadamc Feb 3, 2023
0ec2dc3
Adds support for new saved file formats.
gadamc Feb 3, 2023
b9308a3
makes optimize routine compatible with changes to sample_counts
gadamc Feb 3, 2023
191249a
sends fit error to logger instead of print
gadamc Feb 3, 2023
fb669bf
adds clock rate to saved data
gadamc Feb 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@ build/*
.DS_Store
*.egg-info
*__pycache__
*.ipynb_checkpoints
.idea*
702 changes: 28 additions & 674 deletions LICENSE

Large diffs are not rendered by default.

82 changes: 71 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,92 @@
# Utility Classes and Functions for the QT3 Lab

This package provides a number of tools and fully-packaged programs for usage
in the Quantum Technologies Teaching and Test-Bed (QT3) lab at the University of Washington.

The QT3 lab confocal microscope utilizes the following hardware to perform
various spin-control experiments on quantum systems, such as NV centers in diamond:

* TTL pulsers
* Quantum Composer Sapphire
* Spin Core PulseBlaster
* Excelitas SPCM for photon detection
* NI-DAQ card (PCIx 6363) for data acquisition and control
* Jena System's Piezo Actuator Stage Control Amplifier
* [Future] spectrometer

The code in this package facilitates usages of these devices to perform
experiments.

# Setup

### Requirements
### Prerequisites

The utilities in this package depend on publicly available Python packages found
on PyPI and on packages developed in-house. This public packages will be installed
automatically when you run the setup script (below). However, you will
need to manually install the in-house packages
on PyPI and on packages currently only on github. The public packages will be installed
automatically when you run the installation script. However, you will first
need to manually install the following packages

* gadamc/qcsapphire
* gadamc/qt3RFSynthControl
* [gadamc/qcsapphire](https://github.com/gadamc/qcsapphire)
* [gadamc/qt3RFSynthControl](https://github.com/gadamc/qt3RFSynthControl)
* [gadamc/nipiezeojenapy](https://github.com/gadamc/nipiezeojenapy)
* [zeeshawnkazi/pulseblaster](https://github.com/zeeshawnkazi/pulseblaster)

## Installation

Once the prerequisite packages have been installed

```
git clone https://github.com/gadamc/qt3nidaq-config
cd qt3nidaq-config
git clone https://github.com/gadamc/qt3-utils
cd qt3-utils
python -m pip install .
```

# Usage

In general, it's encouraged to supply usage instructions within
the docstrings for the modules, classes and functions found in this package.
The simplest way to get started is to see one of the [example](examples) notebooks.

# Applications

## QT3 Oscilloscope

The console program `qt3scope` comes with this package. It allows you to run
a simple program from the command-line that reads the count rate on a particular
digital input terminal on the NI DAQ.

Review the available command line options for the program. Pay special attention
to the `--signal-terminal` option, ensuring that terminal value matches the current
hardware setup.

```
> qt3scope --help
```

If default settings are correct, then should be able to run without options

# Examples
```
> qt3scope
```

## QT3 Confocal Scan

The console program `qt3scan` comes with this package. This program launches
a GUI applications that will perform a confocal scan using the Jena system
piezo actuator.

The run-time options available are very similar to `qt3scope`.
Review the available command line options for the program. Pay special attention
to the `--signal-terminal` option, ensuring that terminal value matches the current
hardware setup.

```
> qt3scan --help
```

If default settings are correct, then should be able to run without options

```
> qt3scan
```

# Debugging

Expand Down
517 changes: 517 additions & 0 deletions examples/confocal-scan.ipynb

Large diffs are not rendered by default.

Loading