Skip to content

Qudi v0.9 (Analog In, scientific SpinBox, waveform sampling)

Compare
Choose a tag to compare
@Neverhorst Neverhorst released this 06 Mar 15:11
· 201 commits to v0.9 since this release

Changes/New features:

  • Huge amount of small and medium sized bug fixes and usability/stability improvements
  • Replaced scientific SpinBoxes with a new implementation that is more powerful and does not use pyqtgraph
  • Fixed Python crash upon closing qudi which was related to saving images with matplotlib (Windows)
  • Added hardware module to control Coherent OBIS lasers
  • Manager GUI now properly reflects the state of each module
  • Full multichannel support for slow counting / confocal / ODMR
  • Moved to fysom v2.1.4
  • Module base classes now nest fysom state machine in module_state instead of subclassing it. The current state is accessible via module_state.current or module_state()
  • Changed the sampling algorithm for waveforms. Formerly each PulseBlockElement was sampled to match the specified length as closely as possible. Now the ideal time on which a transition between elements should occur is matched to a global quantized timeline. The sampled waveform length will now not deviate more than one timebin from the ideal length. However ideally identical elements can slightly vary (1 bin) in length throughout the entire waveform. This should lead in general to better results since the overall definition of the waveform is more closely matched to a quantized timeline
  • Commonly used parameters in pulsed measurements are now shared for all predefined methods (less input widgets / clean UI). Each generate_* method still needs all parameters but input widgets are reused by name. Available names are:
    ['mw_channel', 
     'gate_count_channel', 
     'sync_trig_channel', 
     'mw_amp', 
     'mw_freq', 
     'channel_amp', 
     'delay_length', 
     'wait_time', 
     'laser_length', 
     'rabi_period']
    
  • Generalized APT motor stages class (multi-axis support via config)
  • Simple digital channel based switch on/off capability added to hardware/ni_card.py
  • National Instruments X series card hardware module renamed from ni_card.py to national_instruments_x_series.py
  • qudikernel.py moved to core
  • Listening address and port of qudi can now be changed in config (default: localhost)
  • Analog signal input (for PDMR measurements) now supported for slow counter/confocal/ODMR (see config changes)
  • Use of rpyc became optional (does not need to be installed if no remote module capability is needed)
  • Mayor cleanup/overhaul of the microwave_interface.py and adaption of all affected modules (hardware/logic)

Config changes:

  • New remote server declaration (old one working but deprecated):
[global]
module_server:
    address: ''
    port: 12345
    certfile: 'filename.cert'
    keyfile: 'filename.key'
  • New full example config for national_instruments_x_series.py:
mynicard:
    module.Class: 'national_instruments_x_series.NationalInstrumentsXSeries'
    clock_channel: '/Dev1/Ctr0'
    scanner_clock_channel: '/Dev1/Ctr2'
    photon_sources:
        - '/Dev1/PFI8'
        - '/Dev1/PFI9'
    counter_channels:
        - '/Dev1/Ctr1'
    counter_ai_channels:  # optional
        - '/Dev1/AI1'
    scanner_counter_channels:
        - '/Dev1/Ctr3'
    scanner_ai_channels:  # optional
        - '/Dev1/AI0'
    scanner_ao_channels:
        - '/Dev1/AO0'
        - '/Dev1/AO1'
        - '/Dev1/AO2'
        - '/Dev1/AO3'
    scanner_position_ranges:
        - [0e-6, 200e-6]
        - [0e-6, 200e-6]
        - [-100e-6, 100e-6]
        - [-10, 10]
    scanner_voltage_ranges:
        - [-10, 10]
        - [-10, 10]
        - [-10, 10]
        - [-10, 10]
    default_samples_number: 10
    default_clock_frequency: 100
    default_scanner_clock_frequency: 100
    gate_in_channel: '/Dev1/PFI9'
    counting_edge_rising: True
    odmr_trigger_channel: '/Dev1/PFI15'