[qudi-dev] Pulsed 3.0 update hitting master

  • From: Nikolas Tomek <tomek.qudi@xxxxxxxxx>
  • To: qudi-dev@xxxxxxxxxxxxx, qudi-announce@xxxxxxxxxxxxx, Quantenoptik <qo-ag@xxxxxxxxxxxxxxxx>
  • Date: Tue, 4 Sep 2018 13:48:06 +0200

Hello everyone,

since 3 month the "Pulsed 3.0" pull request has been waiting to be merged
into master... and this update is hitting now!
It is a mayor overhaul of all pulsed measurement related modules inspired
by the community feedback of the last years.

The GUI layout has not changed too much so you should be able to continue
working with it as usual.
Under the hood however the logic modules and hardware interfaces have
changed drastically in order to provide a more flexible logic design that
reduces the need for invasive code changes in the future.
As a consequence all your custom unmaintained measurement notebooks will
require rework.
You should exclusively access PulsedMasterLogic for scripting measurements
so it should be easy to adjust your scripts and avoid errors due to
threading.

For a more detailed listing of changes please refer to
"/documentation/changelog.md".
Some mayor changes are:
- All pulse generator hardware modules implement the (hardware specific)
writing of waveforms and sequences on their own. (allows for direct sample
upload from memory without writing to file)
- SequenceGeneratorLogic is now solely responsible to control
waveform/sequence generation and to control the pulse generator hardware
(PulsedMeasurementLogic is only starting/stopping the pulse generator).
- The PulserInterface has been changed. Not all pulse generator hardware
modules could be tested here and nobody responded to the pull request so it
is up to you to adjust the hardware modules to the new interface. They will
not work currently!!! (except some Tektronix AWGs)
- There is a more general and less invasive procedure now to add new pulse
extraction and analysis methods as well as predefined pulsed measurements
and waveform shapes. Please refer to "how_to_add_analysis_methods.md",
"how_to_add_extraction_methods.md", "how_to_add_predefined_methods.md" and
"how_to_add_sampling_functions.md" for details.
- The "invoke_settings" option in the analysis tab of the pulsed GUI is now
functional if used together with predefined methods.
- Sequencing is now fully functional (provided the hardware module is
properly implemented)

Of course this also comes with some config file changes:

*- ALL* pulsed related logic module paths need to be changed because they
have been moved in the logic subfolder "pulsed". As an example instead of

module.Class: 'pulsed_master_logic.PulsedMasterLogic'

it should be now

module.Class: 'pulsed.pulsed_master_logic.PulsedMasterLogic'


- PulseExtractionLogic and PulseAnalysisLogic are no qudi logic modules
anymore and must be
removed from the config. Also remember to remove them from the "connect"
section of all other
modules (probably just PulsedMeasurementLogic).

- The connection to SaveLogic has been removed from PulsedMeasurementGui
and thus needs to be removed from the "connect" section in the config. So
the GUI entry in the config should look somewhat like:

pulsedmeasurement:

module.Class: 'pulsed.pulsed_maingui.PulsedMeasurementGui'

connect:

pulsedmasterlogic: 'pulsedmasterlogic'


- The connectors and ConfigOptions for SequenceGeneratorLogic have changed.
The new config should look somewhat like:

sequencegeneratorlogic:

module.Class: 'pulsed.sequence_generator_logic.SequenceGeneratorLogic'

assets_storage_path: 'C:/Users/username/saved_pulsed_assets' # optional

additional_predefined_methods_path: 'C:\\Custom_dir' # optional

additional_sampling_functions_path: 'C:\\Custom_dir' # optional

connect:

pulsegenerator: 'mydummypulser'


Essentially "additional_predefined_methods_path" and
"additional_sampling_functions_path" only need to be specified when you
want to import sampling functions or predefined methods from an additional
directory other than the default directories situated in qudi.logic.pulsed.
"assets_storage_path" is the directory where the object instances for
blocks, ensembles and
sequences are saved to. If not specified this directory will default to a
subfolder in the home
directory.

- The connectors and ConfigOptions for PulsedMeasurementLogic have changed.
The new config should look somewhat like:

pulsedmeasurementlogic:

module.Class: 'pulsed.pulsed_measurement_logic.PulsedMeasurementLogic'

raw_data_save_type: 'text' # optional

additional_extraction_path: 'C:\\Custom_dir' # optional

additional_analysis_path: 'C:\\Custom_dir' # optional

connect:

fastcounter: 'mydummyfastcounter'

pulsegenerator: 'mydummypulser'

fitlogic: 'fitlogic'

savelogic: 'savelogic'

microwave: 'microwave_dummy'


Essentially "additional_extraction_path" and "additional_analysis_path"
only need to be
specified when you want to import sampling functions or predefined methods
from an additional
directory other than the default directories situated in qudi.logic.pulsed.

At some point it had to be done so please take the time and update your lab
PC soon. All future updates will depend on these changes. If you encounter
any bugs, please create a ticket on GitHub as usual.

Cheers
Nikolas

Other related posts:

  • » [qudi-dev] Pulsed 3.0 update hitting master - Nikolas Tomek