diff --git a/docs/source/contributing/software_architecture.rst b/docs/source/contributing/software_architecture.rst index 10b101391..4c9efee0e 100644 --- a/docs/source/contributing/software_architecture.rst +++ b/docs/source/contributing/software_architecture.rst @@ -6,6 +6,8 @@ Software Architecture :align: center :alt: Software Architecture +------------------ + .. _software-architecture-section: Model View Controller (MVC) @@ -26,9 +28,11 @@ The architecture of **navigate** is designed following the industry-standard Mod It relays user input in the form of traces and commands to the model and relays model output in the form of images and data to the view. +------------------ + -Communication Enhancements ----------------------------- +Extendability +============================ To maximize the extendability of **navigate**, it incorporates: @@ -39,8 +43,11 @@ To maximize the extendability of **navigate**, it incorporates: - **Plugin Layer**: Offers the flexibility to integrate non-supported devices through plugins, enhancing the system's adaptability to various hardware. +------------------ + + Data Acquisition and Processing --------------------------------- +=============================== **navigate** employs a feature container for running acquisition routines, characterized by: @@ -55,8 +62,11 @@ Data Acquisition and Processing **navigate** during run-time. Image analysis is performed on images in memory that are stored as numpy arrays, ensuring rapid processing. +------------------ + + Feature Lists -------------------- +============================ Feature lists are highly versatile, capable of: diff --git a/docs/source/index.rst b/docs/source/index.rst index e6a0a4d13..c584b84b7 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -57,7 +57,7 @@ technology developers. :caption: User Guide :maxdepth: 1 - user_guide/hardware_overview + user_guide/hardware/hardware_home user_guide/file_formats user_guide/gui_walkthrough user_guide/setup_microscope diff --git a/docs/source/user_guide/hardware/camera.rst b/docs/source/user_guide/hardware/camera.rst new file mode 100644 index 000000000..a72ab638c --- /dev/null +++ b/docs/source/user_guide/hardware/camera.rst @@ -0,0 +1,209 @@ + +.. _camera_configuration: +======= +Cameras +======= + +The software supports camera-based acquisition. It can run both normal and rolling +shutter modes of contemporary scientific CMOS cameras. + +Hamamatsu +--------- + +.. note:: + + **navigate** has been tested with the following versions of the Hamamatsu's + drivers: + + - DCAM API: 20.7.641, 21.7.4321, 22.9.6509, 22.11.4321, 23.12.6736 + - Camera Firmware: 2.21B, 2.53.A, 3.20.A, 4.30.B, + - Active Silicon CoaXpress: 1.10, 1.13, 1.21. + + +----------------- + +ORCA-Flash4.0 V3 +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :ref:`Install Directions `. +- `ORCA-Flash 4.0 v3 Manual `_. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + camera: + hardware: + type: HamamatsuOrca + serial_number: 111 + camera_connection: + defect_correct_mode: 2.0 + delay: 1.0 #ms + settle_down: 0.1 #ms + flip_x: False + flip_y: False + + +| + +------------------ + + +ORCA-Fusion +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :ref:`Install Directions `. +- `ORCA-Fusion Manual `_. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + camera: + hardware: + type: HamamatsuOrcaFusion + serial_number: 111 + camera_connection: + defect_correct_mode: 2.0 + delay: 1.0 #ms + settle_down: 0.1 #ms + flip_x: False + flip_y: False + + +| + +------------------ + + +ORCA-Lightning +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :ref:`Install Directions `. +- `ORCA-Lightning Manual `_. + + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + camera: + hardware: + type: HamamatsuOrcaLightning + serial_number: 111 + camera_connection: + defect_correct_mode: 2.0 + delay: 1.0 #ms + settle_down: 0.1 #ms + flip_x: False + flip_y: False + + +| + +------------------ + + +ORCA-Fire +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +- :ref:`Install Directions `. +- `ORCA-Fire Manual `_. + + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + camera: + hardware: + type: HamamatsuOrcaFire + serial_number: 111 + camera_connection: + defect_correct_mode: 2.0 + delay: 1.0 #ms + settle_down: 0.1 #ms + flip_x: False + flip_y: False + +| + +------------------ + +Photometrics +------------ + +- :ref:`Install Directions `. + + +.. note:: + + **navigate** has been tested with the following versions of the Photometric's + drivers: + + - PVCAM: 3.9.13 + +----------------- + +Iris 15 +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + camera: + hardware: + type: Photometrics + serial_number: 111 + camera_connection: PMPCIECam00 + defect_correct_mode: 2.0 + delay: 1.0 #ms + settle_down: 0.1 #ms + flip_x: False + flip_y: False + + +| + +------------------ + + +Synthetic Camera +---------------- + +The synthetic camera simulates noise images from an sCMOS camera. If no camera is present, +the synthetic camera class must be used. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + camera: + hardware: + type: synthetic + serial_number: 111 + camera_connection: + defect_correct_mode: 2.0 + delay: 1.0 #ms + settle_down: 0.1 #ms + flip_x: False + flip_y: False + +| diff --git a/docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml b/docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml index e586fda3a..8a3bdfcea 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml +++ b/docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml @@ -1,315 +1,164 @@ -# Specify all necessary information to find and connect to each hardware -# device that will be used on any of the scopes. -hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrca - serial_number: 304064 - filter_wheel: - type: SyntheticFilterWheel - port: COM6 - baudrate: 9600 - number_of_wheels: 1 - stage: - - - type: SyntheticStage - serial_number: 123 - - type: GalvoNIStage - serial_number: 123 - zoom: - type: SyntheticZoom - servo_id: 1 - -# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible -microscopes: - OPMv2: - daq: - hardware: - name: daq - type: NI - - # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. - # Sampling rate in Hz - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: /Dev5/port0/line1 - camera_trigger_out_line: /Dev5/ctr0 - trigger_source: /Dev5/PFI0 - - zoom: - hardware: - name: zoom - type: SyntheticZoom - servo_id: 1 - position: - 1x: 0 - pixel_size: - 1x: 0.15 - shutter: - hardware: - name: shutter - type: SyntheticShutter - channel: none/line0 - shutter_min_do: 0 - shutter_max_do: 5 - camera: - hardware: - name: camera - type: HamamatsuOrca - serial_number: 304064 - x_pixels: 2048.0 - y_pixels: 2048.0 - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. - readout_direction: Bottom-to-Top # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 10 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 1.0 - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 7.5 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - remote_focus_device: - hardware: - name: daq - type: NI - channel: Dev5/ao3 - min: 0 - max: 5 - # Optotune EL-16-40-TC-VIS-5D-1-C - delay_percent: 5 - ramp_rising_percent: 92.5 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - galvo: - # - - # name: xgalvo - # hardware: - # name: daq - # type: NI - # channel: Dev5/ao0 - # min: -5 - # max: 5 - # frequency: 99.9 - # amplitude: 2.5 - # offset: 0 - # duty_cycle: 50 - # phase: 1.57079 # pi/2 - - - name: ygalvo - hardware: - name: daq - type: NI - channel: Dev5/ao1 - min: -5 - max: 5 - frequency: 99.9 - amplitude: 2.5 - offset: 0 - duty_cycle: 50 - phase: 1.57079 # pi/2 - - - name: sheargalvo - hardware: - name: daq - type: NI - channel: Dev5/ao2 - min: -5 - max: 5 - frequency: 99.9 - amplitude: 2.5 - offset: 0 - duty_cycle: 50 - phase: 1.57079 # pi/2 - stage: - hardware: - - - name: fake_stage - type: SyntheticStage - serial_number: 123 - axes: [x,y,theta,f] - - - name: galvo-stage - type: GalvoNIStage - serial_number: 123 - axes: [z] - axes_mapping: [Dev5/ao0] - min: -5 - max: 5 - volts_per_micron: 0.01*x + 0 - y_unload_position: 10000 - y_load_position: 90000 - - startfocus: 75000 - x_max: 500 - x_min: -500 - y_max: 500 - y_min: -500 - z_max: 500 - z_min: -500 - f_max: 100000 - f_min: -100000 - theta_max: 360 - theta_min: 0 - - x_rot_position: 2000 - y_rot_position: 2000 - z_rot_position: 2000 - - x_step: 500 - y_step: 500 - z_step: 10 - theta_step: 30 - f_step: 500 - - position: - x_pos: 25250 - y_pos: 40000 - z_pos: 0 - f_pos: 70000 - theta_pos: 0 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - f_offset: 0 - theta_offset: 0 - filter_wheel: - hardware: - name: filter_wheel - type: SyntheticFilterWheel - wheel_number: 1 - filter_wheel_delay: .030 # in seconds - available_filters: - FRFP - BLP01-664R-25: 0 - RFP - FF01-598/25-25: 1 - GFP - 527/20: 2 - GFPRFP - ZET488/561m: 3 - Empty-Alignment: 4 - Blocked2: 5 - Blocked3: 6 - Blocked4: 7 - Blocked5: 8 - Blocked6: 9 - lasers: - # Omicron LightHub Ultra - # 488 and 640 are LuxX+ Lasers - # 561 is a Coherent OBIS Laser - # Digital Laser Outputs - - wavelength: 488 - power: - hardware: - name: daq - type: NI - channel: Dev5/ao12 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 562 - onoff: - hardware: - name: daq - type: NI - channel: Dev5/port1/line5 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: Dev5/ao13 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 642 - power: - hardware: - name: daq - type: NI - channel: Dev5/ao14 - min: 0 - max: 5 - type: LuxX - index: 2 - delay_percent: 10 - pulse_percent: 87 - -gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.200 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 - confocal_projection: - scanrange: - min: 0 - max: 600 - step: 1 - offset_start: - min: -300 - max: 300 - step: 0.1 - offset_end: - min: -300 - max: 300 - step: 0.1 - n_plane: - min: 1 - max: 200 - step: 1 +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + OPMv2: + daq: + hardware: + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + + # triggers + master_trigger_out_line: /Dev5/port0/line1 + camera_trigger_out_line: /Dev5/ctr0 + trigger_source: /Dev5/PFI0 + + zoom: + hardware: + type: SyntheticZoom + servo_id: 1 + position: + 1x: 0 + pixel_size: + 1x: 0.15 + shutter: + hardware: + type: SyntheticShutter + channel: none/line0 + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 304064 + defect_correct_mode: 2.0 + delay: 7.5 #ms + settle_down: 0.0 #ms + remote_focus_device: + hardware: + type: NI + channel: Dev5/ao3 + min: 0 + max: 5 + # Optotune EL-16-40-TC-VIS-5D-1-C + galvo: + # - + # name: xgalvo + # hardware: + # name: daq + # type: NI + # channel: Dev5/ao0 + # min: -5 + # max: 5 + # frequency: 99.9 + # amplitude: 2.5 + # offset: 0 + # duty_cycle: 50 + # phase: 1.57079 # pi/2 + - + name: ygalvo + hardware: + type: NI + channel: Dev5/ao1 + min: -5 + max: 5 + phase: 1.57079 # pi/2 + - + name: sheargalvo + hardware: + name: daq + type: NI + channel: Dev5/ao2 + min: -5 + max: 5 + phase: 1.57079 # pi/2 + stage: + hardware: + - + name: fake_stage + type: SyntheticStage + serial_number: 123 + axes: [x,y,theta,f] + - + name: galvo-stage + type: GalvoNIStage + serial_number: 123 + axes: [z] + axes_mapping: [Dev5/ao0] + min: -5 + max: 5 + volts_per_micron: 0.01*x + 0 + + x_max: 500 + x_min: -500 + y_max: 500 + y_min: -500 + z_max: 500 + z_min: -500 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + filter_wheel: + hardware: + type: SyntheticFilterWheel + wheel_number: 1 + port: COM6 + baudrate: 9600 + filter_wheel_delay: .030 # in seconds + available_filters: + FRFP - BLP01-664R-25: 0 + RFP - FF01-598/25-25: 1 + GFP - 527/20: 2 + GFPRFP - ZET488/561m: 3 + Empty-Alignment: 4 + Blocked2: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 488 + power: + hardware: + type: NI + channel: Dev5/ao12 + min: 0 + max: 5 + type: LuxX + - wavelength: 562 + onoff: + hardware: + type: NI + channel: Dev5/port1/line5 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: Dev5/ao13 + min: 0 + max: 5 + type: Obis + - wavelength: 642 + power: + hardware: + type: NI + channel: Dev5/ao14 + min: 0 + max: 5 + type: LuxX + +gui: + channels: + count: 5 diff --git a/docs/source/user_guide/hardware/configurations/configuration_OPMv3.yaml b/docs/source/user_guide/hardware/configurations/configuration_OPMv3.yaml index ab180cfad..fd50423a9 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_OPMv3.yaml +++ b/docs/source/user_guide/hardware/configurations/configuration_OPMv3.yaml @@ -1,535 +1,311 @@ -# Specify all necessary information to find and connect to each hardware -# device that will be used on any of the scopes. -hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrca - serial_number: 001301 - filter_wheel: - type: SyntheticFilterWheel - port: COM6 - baudrate: 9600 - number_of_wheels: 1 - stage: - - - type: SyntheticStage - serial_number: 123 - - - type: GalvoNIStage - serial_number: 124 - - - type: GalvoNIStage - serial_number: 125 - zoom: - type: SyntheticZoom - servo_id: 1 - mirror: - type: ImagineOpticsMirror - -# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible -microscopes: - ProjectionScope: - daq: - hardware: - name: daq - type: NI - - # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. - # Sampling rate in Hz - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: /PCIe-6738/port0/line1 - camera_trigger_out_line: /PCIe-6738/ctr0 #PFI7 Camera trigger - trigger_source: /PCIe-6738/PFI0 - - mirror: - hardware: - name: mirror - type: ImagineOpticsMirror - flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs - n_modes: 32 - - zoom: - hardware: - name: zoom - type: SyntheticZoom - servo_id: 1 - position: - 1x: 0 - pixel_size: - 1x: 0.15 - shutter: - hardware: - name: shutter - type: SyntheticShutter - channel: none/line0 - shutter_min_do: 0 - shutter_max_do: 5 - camera: - hardware: - name: camera - type: HamamatsuOrca - serial_number: 001301 - x_pixels: 2048.0 - y_pixels: 2048.0 - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. - readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 1.0 - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 10 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - remote_focus_device: - hardware: - name: daq - type: SyntheticRemoteFocus - channel: none - min: 0 - max: 5 - # Optotune EL-16-40-TC-VIS-5D-1-C - delay_percent: 0 - ramp_rising_percent: 50 - ramp_falling_percent: 2.5 - amplitude: -0.5 - offset: 0 - galvo: - - - # shear galvo measured: 351.04 um/V - name: sheargalvo - hardware: - name: daq - type: NI # SyntheticGalvo - channel: PCIe-6738/ao12 - min: -5 - max: 5 - # waveform: halfsaw - waveform: sawtooth - frequency: 0.5 - amplitude: -1 - offset: 0 - duty_cycle: 50 - phase: 1.57079 - - - name: xgalvo - hardware: - name: daq - type: NI # SyntheticGalvo - channel: PCIe-6738/ao0 - min: -5 - max: 5 - waveform: sawtooth - frequency: 0.5 - amplitude: 0.931 - offset: 0 - duty_cycle: 50 - phase: 1.57079 - stage: - hardware: - - - name: fake_stage - type: SyntheticStage - serial_number: 123 - axes: [x,y,theta,z] - - - name: snouty_piezo - type: GalvoNIStage - serial_number: 124 - axes: [f] - axes_mapping: [PCIe-6738/ao14] - min: 0 - max: 10 - volts_per_micron: (10/15.4)*x + 5.0 - y_unload_position: 10000 - y_load_position: 90000 - - startfocus: 0 - x_max: 50 - x_min: -50 - y_max: 50 - y_min: -50 - z_max: 500 - z_min: -500 - f_max: 100000 - f_min: -100000 - theta_max: 360 - theta_min: 0 - - x_rot_position: 2000 - y_rot_position: 2000 - z_rot_position: 2000 - - x_step: 500 - y_step: 500 - z_step: 500 - theta_step: 30 - f_step: 500 - - position: - x_pos: 25250 - y_pos: 40000 - z_pos: 0 - f_pos: 70000 - theta_pos: 0 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - f_offset: 0 - theta_offset: 0 - filter_wheel: - hardware: - name: filter_wheel - type: SyntheticFilterWheel - wheel_number: 1 - filter_wheel_delay: .030 # in seconds - available_filters: - FRFP - BLP01-664R-25: 0 - RFP - FF01-598/25-25: 1 - GFP - 527/20: 2 - GFPRFP - ZET488/561m: 3 - Empty-Alignment: 4 - Blocked2: 5 - Blocked3: 6 - Blocked4: 7 - Blocked5: 8 - Blocked6: 9 - lasers: - # Omicron LightHub Ultra - # 488 and 640 are LuxX+ Lasers - # 561 is a Coherent OBIS Laser - # Digital Laser Outputs - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PCIe-6738/port1/line2 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIe-6738/ao5 - min: 0 - max: 5 - type: Obis - index: 0 - delay_percent: 10 - pulse_percent: 100 - - wavelength: 561 - onoff: - hardware: - name: daq - type: NI - channel: PCIe-6738/port1/line3 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIe-6738/ao11 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 100 - - StackingScope: - daq: - hardware: - name: daq - type: NI - - # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. - # Sampling rate in Hz - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: /PCIe-6738/port0/line1 - camera_trigger_out_line: /PCIe-6738/ctr0 #PFI7 Camera trigger - trigger_source: /PCIe-6738/PFI0 - - mirror: - hardware: - name: mirror - type: ImagineOpticsMirror - flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs - n_modes: 32 - - zoom: - hardware: - name: zoom - type: SyntheticZoom - servo_id: 1 - position: - 1x: 0 - pixel_size: - 1x: 0.15 - shutter: - hardware: - name: shutter - type: SyntheticShutter - channel: none/line0 - shutter_min_do: 0 - shutter_max_do: 5 - camera: - hardware: - name: camera - type: HamamatsuOrca - serial_number: 001301 - x_pixels: 2048.0 - y_pixels: 2048.0 - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. - readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 1.0 - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 10 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - remote_focus_device: - hardware: - name: daq - type: SyntheticRemoteFocus - channel: none - min: 0 - max: 10 - # Optotune EL-16-40-TC-VIS-5D-1-C - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - galvo: - - - name: sheargalvo - hardware: - name: daq - type: NI # SyntheticGalvo - channel: PCIe-6738/ao12 - min: -5 - max: 5 - frequency: 0.5 - amplitude: 0 - offset: 0 - duty_cycle: 50 - phase: 1.57079 - stage: - hardware: - - - name: fake_stage - type: SyntheticStage - serial_number: 123 - axes: [x,y,theta] - - - name: snouty_piezo - type: GalvoNIStage - serial_number: 124 - axes: [f] - axes_mapping: [PCIe-6738/ao14] - min: 0 - max: 10 - volts_per_micron: (10/15.4)*x + 5.0 - - - name: z_galvo - type: GalvoNIStage - serial_number: 125 - axes: [z] - # axes_channels: [PCIe-6738/ao0] - axes_mapping: [PCIe-6738/ao0] - min: -3.5 - max: 3.5 - volts_per_micron: 0.007*x - y_unload_position: 10000 - y_load_position: 90000 - - startfocus: 0 - x_max: 50 - x_min: -50 - y_max: 50 - y_min: -50 - z_max: 500 - z_min: -500 - f_max: 100000 - f_min: -100000 - theta_max: 360 - theta_min: 0 - - x_rot_position: 2000 - y_rot_position: 2000 - z_rot_position: 2000 - - x_step: 500 - y_step: 500 - z_step: 500 - theta_step: 30 - f_step: 500 - - position: - x_pos: 25250 - y_pos: 40000 - z_pos: 0 - f_pos: 70000 - theta_pos: 0 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - f_offset: 0 - theta_offset: 0 - filter_wheel: - hardware: - name: filter_wheel - type: SyntheticFilterWheel - wheel_number: 1 - filter_wheel_delay: .030 # in seconds - available_filters: - FRFP - BLP01-664R-25: 0 - RFP - FF01-598/25-25: 1 - GFP - 527/20: 2 - GFPRFP - ZET488/561m: 3 - Empty-Alignment: 4 - Blocked2: 5 - Blocked3: 6 - Blocked4: 7 - Blocked5: 8 - Blocked6: 9 - lasers: - # Omicron LightHub Ultra - # 488 and 640 are LuxX+ Lasers - # 561 is a Coherent OBIS Laser - # Digital Laser Outputs - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PCIe-6738/port1/line2 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIe-6738/ao5 - min: 0 - max: 5 - type: Obis - index: 0 - delay_percent: 10 - pulse_percent: 100 - - wavelength: 561 - onoff: - hardware: - name: daq - type: NI - channel: PCIe-6738/port1/line3 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIe-6738/ao11 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 100 - -gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.200 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 - confocal_projection: - scanrange: - min: 0 - max: 600 - step: 1 - offset_start: - min: -300 - max: 300 - step: 0.1 - offset_end: - min: -300 - max: 300 - step: 0.1 - n_plane: - min: 1 - max: 200 - step: 1 +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + ProjectionScope: + daq: + hardware: + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + + # triggers + master_trigger_out_line: /PCIe-6738/port0/line1 + camera_trigger_out_line: /PCIe-6738/ctr0 #PFI7 Camera trigger + trigger_source: /PCIe-6738/PFI0 + + mirror: + hardware: + name: mirror + type: ImagineOpticsMirror + flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs + n_modes: 32 + + zoom: + hardware: + type: SyntheticZoom + servo_id: 1 + position: + 1x: 0 + pixel_size: + 1x: 0.15 + shutter: + hardware: + type: SyntheticShutter + channel: none/line0 + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 001301 + defect_correct_mode: 2.0 + delay: 10 #ms + settle_down: 0.0 #ms + remote_focus_device: + hardware: + type: SyntheticRemoteFocus + channel: none + min: 0 + max: 5 + galvo: + - + # shear galvo measured: 351.04 um/V + name: sheargalvo + hardware: + type: NI # SyntheticGalvo + channel: PCIe-6738/ao12 + min: -5 + max: 5 + # waveform: halfsaw + waveform: sawtooth + phase: 1.57079 + - + name: xgalvo + hardware: + type: NI # SyntheticGalvo + channel: PCIe-6738/ao0 + min: -5 + max: 5 + waveform: sawtooth + phase: 1.57079 + stage: + hardware: + - + name: fake_stage + type: SyntheticStage + serial_number: 123 + axes: [x,y,theta,z] + - + name: snouty_piezo + type: GalvoNIStage + serial_number: 124 + axes: [f] + axes_mapping: [PCIe-6738/ao14] + min: 0 + max: 10 + volts_per_micron: (10/15.4)*x + 5.0 + + x_max: 50 + x_min: -50 + y_max: 50 + y_min: -50 + z_max: 500 + z_min: -500 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + filter_wheel: + hardware: + type: SyntheticFilterWheel + wheel_number: 1 + port: COM6 + baudrate: 9600 + filter_wheel_delay: .030 # in seconds + available_filters: + FRFP - BLP01-664R-25: 0 + RFP - FF01-598/25-25: 1 + GFP - 527/20: 2 + GFPRFP - ZET488/561m: 3 + Empty-Alignment: 4 + Blocked2: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PCIe-6738/port1/line2 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIe-6738/ao5 + min: 0 + max: 5 + type: Obis + - wavelength: 561 + onoff: + hardware: + type: NI + channel: PCIe-6738/port1/line3 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIe-6738/ao11 + min: 0 + max: 5 + type: Obis + + StackingScope: + daq: + hardware: + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + + # triggers + master_trigger_out_line: /PCIe-6738/port0/line1 + camera_trigger_out_line: /PCIe-6738/ctr0 #PFI7 Camera trigger + trigger_source: /PCIe-6738/PFI0 + + mirror: + hardware: + name: mirror + type: ImagineOpticsMirror + flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs + n_modes: 32 + + zoom: + hardware: + type: SyntheticZoom + servo_id: 1 + position: + 1x: 0 + pixel_size: + 1x: 0.15 + shutter: + hardware: + name: shutter + type: SyntheticShutter + channel: none/line0 + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 001301 + defect_correct_mode: 2.0 + delay: 10 #ms + + remote_focus_device: + hardware: + type: SyntheticRemoteFocus + channel: none + min: 0 + max: 10 + # Optotune EL-16-40-TC-VIS-5D-1-C + galvo: + - + name: sheargalvo + hardware: + type: NI # SyntheticGalvo + channel: PCIe-6738/ao12 + min: -5 + max: 5 + phase: 1.57079 + stage: + hardware: + - + name: fake_stage + type: SyntheticStage + serial_number: 123 + axes: [x,y,theta] + - + name: snouty_piezo + type: GalvoNIStage + serial_number: 124 + axes: [f] + axes_mapping: [PCIe-6738/ao14] + min: 0 + max: 10 + volts_per_micron: (10/15.4)*x + 5.0 + - + name: z_galvo + type: GalvoNIStage + serial_number: 125 + axes: [z] + # axes_channels: [PCIe-6738/ao0] + axes_mapping: [PCIe-6738/ao0] + min: -3.5 + max: 3.5 + volts_per_micron: 0.007*x + + x_max: 50 + x_min: -50 + y_max: 50 + y_min: -50 + z_max: 500 + z_min: -500 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + filter_wheel: + hardware: + type: SyntheticFilterWheel + wheel_number: 1 + port: COM6 + baudrate: 9600 + filter_wheel_delay: .030 # in seconds + available_filters: + FRFP - BLP01-664R-25: 0 + RFP - FF01-598/25-25: 1 + GFP - 527/20: 2 + GFPRFP - ZET488/561m: 3 + Empty-Alignment: 4 + Blocked2: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PCIe-6738/port1/line2 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIe-6738/ao5 + min: 0 + max: 5 + type: Obis + - wavelength: 561 + onoff: + hardware: + type: NI + channel: PCIe-6738/port1/line3 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIe-6738/ao11 + min: 0 + max: 5 + type: Obis + +gui: + channels: + count: 5 diff --git a/docs/source/user_guide/hardware/configurations/configuration_biofrontiers.yaml b/docs/source/user_guide/hardware/configurations/configuration_biofrontiers.yaml index 75474b68e..8c032902c 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_biofrontiers.yaml +++ b/docs/source/user_guide/hardware/configurations/configuration_biofrontiers.yaml @@ -1,336 +1,212 @@ -# Specify all necessary information to find and connect to each hardware -# device that will be used on any of the scopes. -hardware: - daq: - type: NI #SyntheticDAQ or NI - camera: - - - type: HamamatsuOrca - serial_number: 000646 - - filter_wheel: - type: ASI #SyntheticFilterWheel or ASI - port: COM13 - baudrate: 115200 - number_of_wheels: 1 - - stage: - - - type: ASI - port: COM13 - baudrate: 115200 - serial_number: 123456789 - - - type: GalvoNIStage - serial_number: 987654321 - timeout: 0.25 - baudrate: 9600 - stages: None - - - type: SyntheticStage - serial_number: 123 - timeout: 0.25 - baudrate: 9600 - stages: None - zoom: - type: SyntheticZoom - servo_id: 1 - port: COM18 - baudrate: 1000000 - -microscopes: - OPM: - daq: - hardware: - name: daq - type: NI - sample_rate: 100000 - sweep_time: 0.2 - master_trigger_out_line: PXI6723/port0/line1 - camera_trigger_out_line: /PXI6723/ctr0 - trigger_source: /PXI6723/PFI0 - laser_port_switcher: PXI6723/port0/line0 - laser_switch_state: False - - camera: - hardware: - name: camera - type: HamamatsuOrca - serial_number: 000646 - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - delay_percent: 10 - pulse_percent: 1 - x_pixels_step: 4 - y_pixels_step: 4 - x_pixels_min: 4 - y_pixels_min: 4 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - flip_x: False - flip_y: False - - remote_focus_device: - hardware: - name: daq - type: SyntheticRemoteFocus - channel: PXI6723/ao2 - min: 0 - max: 5 - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 - - galvo: - - - hardware: - name: daq - type: NI - channel: PXI6723/ao0 - min: -10 - max: 10 - waveform: sine - frequency: 99.9 - amplitude: 2.5 - offset: 0.5 - duty_cycle: 50 - phase: 1.57079 - - filter_wheel: - hardware: - name: filter_wheel - type: ASI - wheel_number: 1 - filter_wheel_delay: .030 - available_filters: - Empty-Alignment: 0 - GFP - FF01-515/30-32: 1 - RFP - FF01-595/31-32: 2 - Far-Red - BLP01-647R/31-32: 3 - Blocked1: 4 - Blocked2: 5 - Blocked3: 6 - Blocked4: 7 - Blocked5: 8 - Blocked6: 9 - - stage: - hardware: - - - name: ASI - type: ASI - serial_number: 123456789 - axes: [x, y, f] - axes_mapping: [X, Y, Z] - volts_per_micron: None - axes_channels: None - max: None - min: None - - - name: GalvoNIStage - type: GalvoNIStage - serial_number: 987654321 - axes: [z] - axes_mapping: [ PXI6723/ao1 ] - volts_per_micron: 0.05*x - max: 10 - min: -10 - - - name: SyntheticStage - type: SyntheticStage - serial_number: 123 - axes: [theta] - axes_mapping: [theta] - max: 360 - min: 0 - joystick_axes: [x, y, z] - x_max: 100000 - x_min: -100000 - y_max: 100000 - y_min: -100000 - z_max: 100000 - z_min: -100000 - f_max: 100000 - f_min: -100000 - theta_max: 360 - theta_min: 0 - x_step: 500 - y_step: 500 - z_step: 500 - theta_step: 30 - f_step: 500 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - theta_offset: 0 - f_offset: 0 - - flip_x: False - flip_y: False - flip_z: False - - zoom: - hardware: - name: zoom - type: SyntheticZoom - servo_id: 1 - position: - 0.63x: 0 - 1x: 627 - 2x: 1711 - 3x: 2301 - 4x: 2710 - 5x: 3079 - 6x: 3383 - pixel_size: - 0.63x: 9.7 - 1x: 6.38 - 2x: 3.14 - 3x: 2.12 - 4x: 1.609 - 5x: 1.255 - 6x: 1.044 - stage_positions: - BABB: - f: - 0.63x: 0 - 1x: 1 - 2x: 2 - 3x: 3 - 4x: 4 - 5x: 5 - 6x: 6 - - shutter: - hardware: - name: daq - type: SyntheticShutter #NI - channel: PXI6723/port0/line0 - min: 0 - max: 5 - - lasers: - - wavelength: 405 - onoff: - hardware: - name: daq - type: NI - channel: PCI6321/port0/line3 - min: 0 - max: 5 - power: #analog - hardware: - name: daq - type: SyntheticLaser - channel: PCI6321/ao1 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - - wavelength: 488 - onoff: #digital - hardware: - name: daq - type: NI - channel: PCI6321/port0/line5 - min: 0 - max: 5 - power: #analog - hardware: - name: daq - type: SyntheticLaser - channel: PCI6321/ao0 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - - wavelength: 561 - onoff: - hardware: - name: daq - type: NI - channel: PCI6321/port0/line7 - min: 0 - max: 5 - power: #analog - hardware: - name: daq - type: SyntheticLaser - channel: PCI6321/ao1 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - - - wavelength: 640 - onoff: #digital - hardware: - name: daq - type: NI - channel: PCI6321/port0/line1 - min: 0 - max: 5 - power: #analog - hardware: - name: daq - type: SyntheticLaser - channel: PCI6321/ao2 - min: 0 - max: 5 - type: LuxX - index: 2 - delay_percent: 10 - pulse_percent: 87 - -gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.100 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 +microscopes: + OPM: + daq: + hardware: + type: NI + sample_rate: 100000 + master_trigger_out_line: PXI6723/port0/line1 + camera_trigger_out_line: /PXI6723/ctr0 + trigger_source: /PXI6723/PFI0 + laser_port_switcher: PXI6723/port0/line0 + laser_switch_state: False + + camera: + hardware: + type: HamamatsuOrca + serial_number: 000646 + defect_correct_mode: 2.0 + delay: 10.0 #ms + settle_down: 0.0 #ms + flip_x: False + flip_y: False + + remote_focus_device: + hardware: + type: SyntheticRemoteFocus + channel: PXI6723/ao2 + min: 0 + max: 5 + + galvo: + - + hardware: + type: NI + channel: PXI6723/ao0 + min: -10 + max: 10 + waveform: sine + phase: 1.57079 + + filter_wheel: + hardware: + type: ASI + wheel_number: 1 + port: COM13 + baudrate: 115200 + filter_wheel_delay: .030 + available_filters: + Empty-Alignment: 0 + GFP - FF01-515/30-32: 1 + RFP - FF01-595/31-32: 2 + Far-Red - BLP01-647R/31-32: 3 + Blocked1: 4 + Blocked2: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + + stage: + hardware: + - + type: ASI + serial_number: 123456789 + axes: [x, y, f] + axes_mapping: [X, Y, Z] + volts_per_micron: None + max: None + min: None + port: COM13 + baudrate: 115200 + timeout: 0.25 + - + type: GalvoNIStage + serial_number: 987654321 + axes: [z] + axes_mapping: [ PXI6723/ao1 ] + volts_per_micron: 0.05*x + distance_threshold: None + settle_duration_ms: 20 #ms + max: 10 + min: -10 + - + type: SyntheticStage + serial_number: 123 + axes: [theta] + axes_mapping: [theta] + max: 360 + min: 0 + joystick_axes: [x, y, z] + x_max: 100000 + x_min: -100000 + y_max: 100000 + y_min: -100000 + z_max: 100000 + z_min: -100000 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + + flip_x: False + flip_y: False + flip_z: False + + zoom: + hardware: + type: SyntheticZoom + servo_id: 1 + position: + 0.63x: 0 + 1x: 627 + 2x: 1711 + 3x: 2301 + 4x: 2710 + 5x: 3079 + 6x: 3383 + pixel_size: + 0.63x: 9.7 + 1x: 6.38 + 2x: 3.14 + 3x: 2.12 + 4x: 1.609 + 5x: 1.255 + 6x: 1.044 + stage_positions: + BABB: + f: + 0.63x: 0 + 1x: 1 + 2x: 2 + 3x: 3 + 4x: 4 + 5x: 5 + 6x: 6 + + shutter: + hardware: + type: SyntheticShutter #NI + channel: PXI6723/port0/line0 + min: 0 + max: 5 + + lasers: + - wavelength: 405 + onoff: + hardware: + type: NI + channel: PCI6321/port0/line3 + min: 0 + max: 5 + power: #analog + hardware: + type: SyntheticLaser + channel: PCI6321/ao1 + min: 0 + max: 5 + type: LuxX + + - wavelength: 488 + onoff: #digital + hardware: + type: NI + channel: PCI6321/port0/line5 + min: 0 + max: 5 + power: #analog + hardware: + type: SyntheticLaser + channel: PCI6321/ao0 + min: 0 + max: 5 + type: LuxX + + - wavelength: 561 + onoff: + hardware: + type: NI + channel: PCI6321/port0/line7 + min: 0 + max: 5 + power: #analog + hardware: + type: SyntheticLaser + channel: PCI6321/ao1 + min: 0 + max: 5 + type: Obis + + - wavelength: 640 + onoff: #digital + hardware: + type: NI + channel: PCI6321/port0/line1 + min: 0 + max: 5 + power: #analog + hardware: + type: SyntheticLaser + channel: PCI6321/ao2 + min: 0 + max: 5 + type: LuxX + +gui: + channels: + count: 5 diff --git a/docs/source/user_guide/hardware/configurations/configuration_ctaslmv1.yaml b/docs/source/user_guide/hardware/configurations/configuration_ctaslmv1.yaml index 8df8ae49d..903a750a0 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_ctaslmv1.yaml +++ b/docs/source/user_guide/hardware/configurations/configuration_ctaslmv1.yaml @@ -1,333 +1,194 @@ -hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrca - serial_number: 000420 - filter_wheel: - type: SutterFilterWheel - port: COM34 - baudrate: 9600 - number_of_wheels: 1 - stage: - - - type: MP285 - port: COM2 - timeout: 0.25 - baudrate: 9600 - serial_number: 0000 - stages: None - - - type: syntheticstage - port: COM9999 - timeout: 0.25 - baudrate: 9600 - serial_number: 0000 - stages: None - - - type: GalvoNIStage - port: COM9999 - timeout: 0.25 - baudrate: 9600 - serial_number: 0000 - stages: None - zoom: - type: synthetic - servo_id: 1 - port: COM18 - baudrate: 1000000 - -microscopes: - CTASLMv1: - daq: - hardware: - name: daq - type: NI - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: PCI6738/port0/line1 - camera_trigger_out_line: /PCI6738/ctr0 - trigger_source: /PCI6738/PFI0 - - # Digital Laser Outputs - laser_port_switcher: PCI6738/port0/line0 - laser_switch_state: False - - camera: - hardware: - name: camera - type: HamamatsuOrca - serial_number: 000420 - x_pixels: 2048.0 - y_pixels: 2048.0 - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet - readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 1.0 - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 2 #10 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - remote_focus_device: - hardware: - name: remote_focus - type: EquipmentSolutions # NI - channel: PCI6738/ao2 #45/46 - comport: COM1 - min: -5 - max: 5 - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 - galvo: - - - hardware: - name: daq - type: NI - channel: PCI6738/ao0 #10/11 - min: -5 - max: 5 - waveform: sawtooth - frequency: 99.9 - amplitude: 2.5 - offset: 0.5 - duty_cycle: 50 - phase: 1.57079 # pi/2 - filter_wheel: - hardware: - name: filter_wheel - type: SutterFilterWheel - wheel_number: 1 - filter_wheel_delay: .030 # in seconds - available_filters: - 445-20: 6 - 525-30: 0 - 550-49: 9 # switched - 600-53: 7 - 665LP: 8 - EMPTY: 1 - BLOCKED1: 2 - BLOCKED2: 3 - BLOCKED3: 4 - BLOCKED4: 5 - # 665LP: 0 - # 550-49: 1 - # 525-30: 2 - # 445-20: 3 - # Blocked1: 4 - # Blocked2: 5 - # Blocked3: 6 - # Blocked4: 7 - # Blocked5: 8 - # Blocked6: 9 - stage: - hardware: - - - name: stage1 - type: MP285 - serial_number: 0000 - axes: [y, x, f] - axes_mapping: [z, y, x] - volts_per_micron: None - axes_channels: None - max: 25000 - min: 0 - - - name: stage2 - type: syntheticstage - serial_number: 0000 - axes: [theta] - axes_mapping: [theta] - volts_per_micron: PCI6738/ao0 - # axes_channels: f - max: 360 - min: 0 - - - name: stage3 - type: GalvoNIStage - serial_number: 0000 - axes: [z] - axes_mapping: [PCI6738/ao6] - volts_per_micron: 0.02*x - max: 10 - min: 0 - # joystick_axes: [x, y, f] - x_max: 12500 - x_min: -12500 - y_max: 12500 - y_min: -12500 - z_max: 500 - z_min: 0 - f_max: 100000 - f_min: -100000 - theta_max: 360 - theta_min: 0 - - x_step: 500 - y_step: 500 - z_step: 5 - theta_step: 30 - f_step: 500 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - theta_offset: 0 - f_offset: 0 - zoom: - hardware: - name: zoom - type: synthetic - servo_id: 1 - position: - 16X: 0 - pixel_size: - 16X: 0.425 - stage_positions: - BABB: - f: - 16X: 0 - shutter: - hardware: - name: daq - type: synthetic - channel: PCI6738/port0/line10 - min: 0 - max: 5 - lasers: - - wavelength: 642 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line5 # 38/35 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao8 #16/50 #ao1 # 44/11 - min: 0 - max: 5 - type: Obis - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 561 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line2 # 5/39 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao9 #17/50 #ao3 # 12/46 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line3 # 6/39 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao10 #51/50 #ao4 13/14 - min: 0 - max: 5 - type: Obis - index: 2 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 405 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line4 # 40/41 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao11 #52/18 #ao5 #47/14 - min: 0 - max: 5 - type: Obis - index: 2 - delay_percent: 10 - pulse_percent: 87 - -gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.100 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 +microscopes: + CTASLMv1: + daq: + hardware: + type: NI + sample_rate: 100000 + + # triggers + master_trigger_out_line: PCI6738/port0/line1 + camera_trigger_out_line: /PCI6738/ctr0 + trigger_source: /PCI6738/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PCI6738/port0/line0 + laser_switch_state: False + + camera: + hardware: + type: HamamatsuOrca + serial_number: 000420 + defect_correct_mode: 2.0 + delay: 2.0 #ms + settle_down: 0.0 #ms + flip_x: False + flip_y: False + remote_focus_device: + hardware: + type: EquipmentSolutions # NI + channel: PCI6738/ao2 #45/46 + port: COM1 + baudrate: 9600 + min: -5 + max: 5 + galvo: + - + hardware: + type: NI + channel: PCI6738/ao0 #10/11 + min: -5 + max: 5 + waveform: sawtooth + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + type: SutterFilterWheel + wheel_number: 1 + port: COM34 + baudrate: 9600 + filter_wheel_delay: .030 # in seconds + available_filters: + 445-20: 6 + 525-30: 0 + 550-49: 9 # switched + 600-53: 7 + 665LP: 8 + EMPTY: 1 + BLOCKED1: 2 + BLOCKED2: 3 + BLOCKED3: 4 + BLOCKED4: 5 + # 665LP: 0 + # 550-49: 1 + # 525-30: 2 + # 445-20: 3 + # Blocked1: 4 + # Blocked2: 5 + # Blocked3: 6 + # Blocked4: 7 + # Blocked5: 8 + # Blocked6: 9 + stage: + hardware: + - + type: MP285 + serial_number: 0000 + axes: [y, x, f] + axes_mapping: [z, y, x] + volts_per_micron: None + max: 25000 + min: 0 + port: COM2 + timeout: 0.25 + baudrate: 9600 + - + type: syntheticstage + serial_number: 0000 + axes: [theta] + axes_mapping: [theta] + max: 360 + min: 0 + - + type: GalvoNIStage + serial_number: 0000 + axes: [z] + axes_mapping: [PCI6738/ao6] + volts_per_micron: 0.02*x + max: 10 + min: 0 + # joystick_axes: [x, y, f] + x_max: 12500 + x_min: -12500 + y_max: 12500 + y_min: -12500 + z_max: 500 + z_min: 0 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + zoom: + hardware: + type: synthetic + servo_id: 1 + position: + 16X: 0 + pixel_size: + 16X: 0.425 + stage_positions: + BABB: + f: + 16X: 0 + shutter: + hardware: + type: synthetic + channel: PCI6738/port0/line10 + min: 0 + max: 5 + lasers: + - wavelength: 642 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line5 # 38/35 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao8 #16/50 #ao1 # 44/11 + min: 0 + max: 5 + type: Obis + - wavelength: 561 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line2 # 5/39 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao9 #17/50 #ao3 # 12/46 + min: 0 + max: 5 + type: Obis + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line3 # 6/39 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao10 #51/50 #ao4 13/14 + min: 0 + max: 5 + type: Obis + - wavelength: 405 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line4 # 40/41 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao11 #52/18 #ao5 #47/14 + min: 0 + max: 5 + type: Obis + +gui: + channels: + count: 5 diff --git a/docs/source/user_guide/hardware/configurations/configuration_ctaslmv2.yaml b/docs/source/user_guide/hardware/configurations/configuration_ctaslmv2.yaml index 9bacd7ce4..afc40364b 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_ctaslmv2.yaml +++ b/docs/source/user_guide/hardware/configurations/configuration_ctaslmv2.yaml @@ -1,312 +1,173 @@ -# Specify all necessary information to find and connect to each hardware -# device that will be used on any of the scopes. -hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrca - serial_number: 302153 - filter_wheel: - type: SutterFilterWheel - port: COM10 - baudrate: 9600 - number_of_wheels: 1 - stage: - - - type: MP285 - port: COM2 - timeout: 0.25 - baudrate: 9600 - serial_number: 0000 - stages: None - - - type: syntheticstage - port: COM9999 - timeout: 0.25 - baudrate: 9600 - serial_number: 0000 - stages: None - - - type: GalvoNIStage - port: COM9999 - timeout: 0.25 - baudrate: 9600 - serial_number: 0000 - stages: None - zoom: - type: synthetic - servo_id: 1 - port: COM18 - baudrate: 1000000 - -# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible -microscopes: - CTASLMv2: - daq: - hardware: - name: daq - type: NI - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: PCI6738/port0/line1 #3 - camera_trigger_out_line: /PCI6738/ctr0 #9/42 - trigger_source: /PCI6738/PFI0 #4 - - # Digital Laser Outputs - laser_port_switcher: PCI6738/port0/line0 - laser_switch_state: False - - camera: - hardware: - name: camera - type: HamamatsuOrca - serial_number: 302153 - x_pixels: 2048.0 - y_pixels: 2048.0 - flip_x: True - flip_y: False - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet - readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 1.0 - binning: 1x1 - readout_speed: 2.0 - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 20 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - x_pixels_step: 4 - y_pixels_step: 4 - x_pixels_min: 4 - y_pixels_min: 4 - remote_focus_device: - hardware: - name: remote_focus - type: EquipmentSolutions # NI - channel: PCI6738/ao2 #45/46 - comport: COM7 - min: -5 - max: 5 - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 5.0 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 - galvo: - - - hardware: - name: daq - type: NI - channel: PCI6738/ao0 #10/11 - min: -5 - max: 5 - waveform: sawtooth - frequency: 99.9 - amplitude: 2.5 - offset: 0.5 - duty_cycle: 50 - phase: 1.57079 # pi/2 - filter_wheel: - hardware: - name: filter_wheel - type: SutterFilterWheel - wheel_number: 1 - filter_wheel_delay: .030 # in seconds - available_filters: - Empty-1: 0 - 525-30: 1 - 600-52: 2 - 670-30: 3 - 647-LP: 4 - Empty-2: 5 - Empty-3: 6 - Empty-4: 7 - stage: - hardware: - - - name: stage1 - type: MP285 - serial_number: 0000 - axes: [y, x, f] - axes_mapping: [z, y, x] - volts_per_micron: None - axes_channels: None - max: 25000 - min: 0 - - - name: stage2 - type: syntheticstage - serial_number: 0000 - axes: [theta] - axes_mapping: [theta] - max: 360 - min: 0 - - - name: stage3 - type: GalvoNIStage - serial_number: 0000 - axes: [z] - axes_mapping: [PCI6738/ao6] #48/49 - volts_per_micron: 0.05*x - max: 10 - min: 0 - distance_threshold: 20 - settle_duration_ms: 100 - x_max: 12500 - x_min: -12500 - y_max: 12500 - y_min: -12500 - z_max: 200 - z_min: 0 - f_max: 12500 - f_min: -12500 - theta_max: 360 - theta_min: 0 - - x_step: 500 - y_step: 500 - z_step: 5 - theta_step: 30 - f_step: 500 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - theta_offset: 0 - f_offset: 0 - coupled_axes: - z: f - zoom: - hardware: - name: zoom - type: synthetic - servo_id: 1 - position: - 36X: 0 - pixel_size: - 36X: 0.180 - stage_positions: - BABB: - f: - 36X: 0 - shutter: - hardware: - name: daq - type: SyntheticShutter - channel: PCI6738/port0/line10 - min: 0 - max: 5 - lasers: - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line5 # 7/41 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao8 #1 # 44/11 - min: 0 - max: 5 - type: Obis - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 561 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line2 # 5/39 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao9 # 3 # 12/46 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 647 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line3 # 6/39 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao10 # 4 # 13/14 - min: 0 - max: 5 - type: Obis - index: 2 - delay_percent: 10 - pulse_percent: 87 - -gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.100 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + CTASLMv2: + daq: + hardware: + type: NI + sample_rate: 100000 + + # triggers + master_trigger_out_line: PCI6738/port0/line1 #3 + camera_trigger_out_line: /PCI6738/ctr0 #9/42 + trigger_source: /PCI6738/PFI0 #4 + + # Digital Laser Outputs + laser_port_switcher: PCI6738/port0/line0 + laser_switch_state: False + + camera: + hardware: + type: HamamatsuOrca + serial_number: 302153 + flip_x: True + flip_y: False + defect_correct_mode: 1.0 + delay: 20 + remote_focus_device: + hardware: + type: EquipmentSolutions # NI + channel: PCI6738/ao2 #45/46 + port: COM7 + min: -5 + max: 5 + galvo: + - + hardware: + type: NI + channel: PCI6738/ao0 #10/11 + min: -5 + max: 5 + waveform: sawtooth + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + type: SutterFilterWheel + wheel_number: 1 + port: COM10 + baudrate: 9600 + filter_wheel_delay: .030 # in seconds + available_filters: + Empty-1: 0 + 525-30: 1 + 600-52: 2 + 670-30: 3 + 647-LP: 4 + Empty-2: 5 + Empty-3: 6 + Empty-4: 7 + stage: + hardware: + - + name: stage1 + type: MP285 + serial_number: 0000 + axes: [y, x, f] + axes_mapping: [z, y, x] + volts_per_micron: None + max: 25000 + min: 0 + port: COM2 + timeout: 0.25 + baudrate: 9600 + - + name: stage2 + type: syntheticstage + serial_number: 0000 + axes: [theta] + axes_mapping: [theta] + max: 360 + min: 0 + - + name: stage3 + type: GalvoNIStage + serial_number: 0000 + axes: [z] + axes_mapping: [PCI6738/ao6] #48/49 + volts_per_micron: 0.05*x + max: 10 + min: 0 + distance_threshold: 20 + settle_duration_ms: 100 + x_max: 12500 + x_min: -12500 + y_max: 12500 + y_min: -12500 + z_max: 200 + z_min: 0 + f_max: 12500 + f_min: -12500 + theta_max: 360 + theta_min: 0 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + coupled_axes: + z: f + zoom: + hardware: + type: synthetic + servo_id: 1 + position: + 36X: 0 + pixel_size: + 36X: 0.180 + stage_positions: + BABB: + f: + 36X: 0 + shutter: + hardware: + type: SyntheticShutter + channel: PCI6738/port0/line10 + min: 0 + max: 5 + lasers: + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line5 # 7/41 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao8 #1 # 44/11 + min: 0 + max: 5 + type: Obis + - wavelength: 561 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line2 # 5/39 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao9 # 3 # 12/46 + min: 0 + max: 5 + type: Obis + - wavelength: 647 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line3 # 6/39 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao10 # 4 # 13/14 + min: 0 + max: 5 + type: Obis + +gui: + channels: + count: 5 diff --git a/docs/source/user_guide/hardware/configurations/configuration_mesospimbt.yaml b/docs/source/user_guide/hardware/configurations/configuration_mesospimbt.yaml index 46164f9b9..d1dd4b3b7 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_mesospimbt.yaml +++ b/docs/source/user_guide/hardware/configurations/configuration_mesospimbt.yaml @@ -1,300 +1,183 @@ -# Specify all necessary information to find and connect to each hardware -# device that will be used on any of the scopes. -hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrca # HamamatsuOrca - serial_number: 003209 - filter_wheel: - type: ASI #SyntheticFilterWheel #SutterFilterWheel - port: COM8 - baudrate: 115200 - number_of_wheels: 1 - stage: - - - type: ASI - port: COM8 - timeout: 0.25 - baudrate: 115200 - serial_number: 0000 - stages: None - zoom: - type: SyntheticZoom - servo_id: 1 - port: COM18 - baudrate: 1000000 - -# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible -microscopes: - BTMesoSPIM: - daq: - hardware: - name: daq - type: NI - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: PCI6738/port0/line1 #3 - camera_trigger_out_line: /PCI6738/ctr0 #9/42 - trigger_source: /PCI6738/PFI0 #4 - - # Digital Laser Outputs - laser_port_switcher: PCI6738/port0/line0 - laser_switch_state: False - - camera: - hardware: - name: camera - type: HamamatsuOrca - serial_number: 003209 - x_pixels: 2048.0 - y_pixels: 2048.0 - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet - readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 1.0 #2.0 - binning: 1x1 - readout_speed: 2.0 - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 10 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - flip_x: True - flip_y: False - remote_focus_device: - hardware: - name: remote_focus - type: NI # SyntheticRemoteFocus #EquipmentSolutions # NI - channel: PCI6738/ao2 #45/46 - comport: COM7 - min: 0 - max: 5 - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 - galvo: - - - hardware: - name: daq # digitally scanned galvo - type: NI - channel: PCI6738/ao0 #10/11 - min: -5 - max: 5 - waveform: sawtooth - frequency: 99.9 - amplitude: 2.5 - offset: 0.5 - duty_cycle: 50 - phase: 1.57079 # pi/2 - - filter_wheel: - hardware: - name: filter_wheel - type: ASI #SyntheticFilterWheel #SutterFilterWheel - wheel_number: 1 - filter_wheel_delay: .030 # in seconds - available_filters: - 525-30: 0 - 600-37: 1 - 647LP: 2 - Empty1: 3 - Empty2: 4 - 670-30: 5 - Blocked2: 6 - Empty3: 7 - Blocked3: 8 - Blocked4: 9 - stage: - hardware: - - - name: stage - type: ASI - serial_number: 0000 - axes: [x, y, z, f, theta] - feedback_alignment: [88, 91, 91, 91, 85] - axes_mapping: [X, V, Z, Y, T] - volts_per_micron: None - axes_channels: None - max: 5 - min: 0 - - joystick_axes: [x, y, z, theta, f] - x_max: 125000 - x_min: -125000 - y_max: 125000 - y_min: -125000 - z_max: 50000 - z_min: -50000 - f_max: 1000000 - f_min: -1000000 - theta_max: 360000 - theta_min: -360000 - - flip_x: False - flip_y: False - flip_z: False - - x_step: 500 - y_step: 500 - z_step: 50 - theta_step: 30 - f_step: 500 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - theta_offset: 0 - f_offset: 0 - zoom: - hardware: - name: zoom - type: SyntheticZoom - servo_id: 1 - position: - 5X: 0 - 4X: 0 - pixel_size: - 5X: 1.2 # 1.2 in BABB - 4X: 1.3 # 1.3 in BABB - stage_positions: - BABB: - f: - 5X: 0 - 4X: 0 - shutter: - hardware: - name: daq - type: SyntheticShutter - channel: PCI6738/port0/line10 - min: 0 - max: 5 - lasers: - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line5 # 7/41 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao8 # 1 # 44/11 - min: 0 - max: 5 - type: Obis - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 561 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line2 # 5/39 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao9 # 3 # 12/46 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 638 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line3 # 6/39 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao10 # 4 # 13/14 - min: 0 - max: 5 - type: Obis - index: 2 - delay_percent: 10 - pulse_percent: 87 - -gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.100 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 - - -# BDVParameters: -# # The following parameters are used to configure the BigDataViewer -# # visualization. See the BigDataViewer documentation for more details. -# # https://imagej.net/BigDataViewer -# shear: -# shear_data: True -# shear_dimension: YZ # XZ, YZ, or XY -# shear_angle: 45 -# rotate: -# rotate_data: False -# rotate_dimension: X # X, Y, Z -# rotate_angle: 0 +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + BTMesoSPIM: + daq: + hardware: + type: NI + sample_rate: 100000 + + # triggers + master_trigger_out_line: PCI6738/port0/line1 #3 + camera_trigger_out_line: /PCI6738/ctr0 #9/42 + trigger_source: /PCI6738/PFI0 #4 + + # Digital Laser Outputs + laser_port_switcher: PCI6738/port0/line0 + laser_switch_state: False + + camera: + hardware: + type: HamamatsuOrca + serial_number: 003209 + defect_correct_mode: 1.0 #2.0 + delay: 10 #ms + settle_down: 0.0 #ms + flip_x: True + flip_y: False + remote_focus_device: + hardware: + name: remote_focus + type: NI # SyntheticRemoteFocus #EquipmentSolutions # NI + channel: PCI6738/ao2 #45/46 + port: COM7 + min: 0 + max: 5 + galvo: + - + hardware: + type: NI + channel: PCI6738/ao0 #10/11 + min: -5 + max: 5 + waveform: sawtooth + phase: 1.57079 # pi/2 + + filter_wheel: + hardware: + type: ASI #SyntheticFilterWheel #SutterFilterWheel + wheel_number: 1 + port: COM8 + baudrate: 115200 + filter_wheel_delay: .030 # in seconds + available_filters: + 525-30: 0 + 600-37: 1 + 647LP: 2 + Empty1: 3 + Empty2: 4 + 670-30: 5 + Blocked2: 6 + Empty3: 7 + Blocked3: 8 + Blocked4: 9 + stage: + hardware: + - + type: ASI + serial_number: 0000 + port: COM8 + timeout: 0.25 + baudrate: 115200 + axes: [x, y, z, f, theta] + feedback_alignment: [88, 91, 91, 91, 85] + axes_mapping: [X, V, Z, Y, T] + volts_per_micron: None + axes_channels: None + max: 5 + min: 0 + + joystick_axes: [x, y, z, theta, f] + x_max: 125000 + x_min: -125000 + y_max: 125000 + y_min: -125000 + z_max: 50000 + z_min: -50000 + f_max: 1000000 + f_min: -1000000 + theta_max: 360000 + theta_min: -360000 + + flip_x: False + flip_y: False + flip_z: False + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + zoom: + hardware: + type: SyntheticZoom + servo_id: 1 + port: COM18 + baudrate: 9600 + position: + 5X: 0 + 4X: 0 + pixel_size: + 5X: 1.2 # 1.2 in BABB + 4X: 1.3 # 1.3 in BABB + stage_positions: + BABB: + f: + 5X: 0 + 4X: 0 + shutter: + hardware: + type: SyntheticShutter + channel: PCI6738/port0/line10 + min: 0 + max: 5 + lasers: + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line5 # 7/41 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao8 # 1 # 44/11 + min: 0 + max: 5 + type: Obis + - wavelength: 561 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line2 # 5/39 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao9 # 3 # 12/46 + min: 0 + max: 5 + type: Obis + - wavelength: 638 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line3 # 6/39 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao10 # 4 # 13/14 + min: 0 + max: 5 + type: Obis + +gui: + channels: + count: 5 + + +# BDVParameters: +# # The following parameters are used to configure the BigDataViewer +# # visualization. See the BigDataViewer documentation for more details. +# # https://imagej.net/BigDataViewer +# shear: +# shear_data: True +# shear_dimension: YZ # XZ, YZ, or XY +# shear_angle: 45 +# rotate: +# rotate_data: False +# rotate_dimension: X # X, Y, Z +# rotate_angle: 0 diff --git a/docs/source/user_guide/hardware/configurations/configuration_multiscale.yaml b/docs/source/user_guide/hardware/configurations/configuration_multiscale.yaml index 2e897c72d..8fb89889f 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_multiscale.yaml +++ b/docs/source/user_guide/hardware/configurations/configuration_multiscale.yaml @@ -1,566 +1,389 @@ -# Specify all necessary information to find and connect to each hardware -# device that will be used on any of the scopes. -hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrca - serial_number: 500502 - - - type: HamamatsuOrca - serial_number: 302352 - filter_wheel: - type: SutterFilterWheel - port: COM2 - baudrate: 9600 - number_of_wheels: 2 - stage: - - - type: PI - controllername: C-884 - stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE - refmode: FRF FRF FRF FRF FRF FRF - serial_number: 119060508 - - - type: PI - controllername: E-709 - stages: P-726.1CD - refmode: ATZ - serial_number: 0116049747 - # - - # type: MCL - # serial_number: 4011 - zoom: - type: DynamixelZoom - servo_id: 1 - port: COM9 - baudrate: 1000000 - -# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible -microscopes: - Mesoscale: - daq: - hardware: - name: daq - type: NI - - # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. - # Sampling rate in Hz - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: PXI6259/port0/line1 - camera_trigger_out_line: /PXI6259/ctr0 - trigger_source: /PXI6259/PFI0 - - # Digital Laser Outputs - laser_port_switcher: PXI6733/port0/line0 - laser_switch_state: False - - camera: - hardware: - name: camera - type: HamamatsuOrca - serial_number: 302352 - x_pixels: 2048.0 - y_pixels: 2048.0 - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. - readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 0x7FFFFFFF - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 10 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - flip_x: False - flip_y: False - x_pixels_step: 4 - y_pixels_step: 4 - x_pixels_min: 4 - y_pixels_min: 4 - - remote_focus_device: - hardware: - name: daq - type: NI - channel: PXI6259/ao2 - min: -5 - max: 5 - # Optotune EL-16-40-TC-VIS-5D-1-C - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 - galvo: - - - hardware: - name: daq - type: NI - channel: PXI6259/ao0 - min: -5 - max: 5 - frequency: 99.9 - amplitude: 2.5 - offset: 0 - duty_cycle: 50 - phase: 1.57079 # pi/2 - filter_wheel: - hardware: - name: filter_wheel - type: SutterFilterWheel - wheel_number: 1 - filter_wheel_delay: .030 # in seconds - available_filters: - Empty-Alignment: 5 - GFP - FF01-515/30-32: 6 - RFP - FF01-595/31-32: 7 - Far-Red - BLP01-647R/31-32: 8 - Blocked1: 4 - Blocked2: 0 - Blocked3: 1 - Blocked4: 2 - Blocked5: 3 - Blocked6: 9 - stage: - hardware: - name: stage - type: PI - serial_number: 119060508 - axes: [x, y, z, theta, f] - y_unload_position: 10000 - y_load_position: 90000 - - startfocus: 75000 - x_max: 100000 - x_min: -100000 - y_max: 100000 - y_min: -100000 - z_max: 100000 - z_min: -100000 - f_max: 100000 - f_min: 0 - theta_max: 360 - theta_min: 0 - - x_rot_position: 2000 - y_rot_position: 2000 - z_rot_position: 2000 - - x_step: 500 - y_step: 500 - z_step: 500 - theta_step: 30 - f_step: 500 - - position: - x_pos: 25250 - y_pos: 40000 - z_pos: 40000 - f_pos: 70000 - theta_pos: 0 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - f_offset: 0 - theta_offset: 0 - - flip_x: False - flip_y: False - flip_z: False - zoom: - hardware: - name: zoom - type: DynamixelZoom - servo_id: 1 - position: - 0.63x: 0 - 1x: 627 - 2x: 1711 - 3x: 2301 - 4x: 2710 - 5x: 3079 - 6x: 3383 - pixel_size: - 0.63x: 9.7 - 1x: 6.38 - 2x: 3.14 - 3x: 2.12 - 4x: 1.609 - 5x: 1.255 - 6x: 1.044 - stage_positions: - BABB: - f: - 0.63x: 67410 - 1x: 70775 - 2x: 72455 - 3x: 72710 - 4x: 72795 - 5x: 72850 - 6x: 72880 - CUBIC: - f: - 0.63x: 67410 - 1x: 70775 - 2x: 72455 - 3x: 72710 - 4x: 72795 - 5x: 72850 - 6x: 72880 - shutter: - hardware: - name: daq - type: NI - channel: PXI6259/port0/line0 - min: 0 - max: 5 - lasers: - # Omicron LightHub Ultra - # 488 and 640 are LuxX+ Lasers - # 561 is a Coherent OBIS Laser - # Digital Laser Outputs - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line2 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao0 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 562 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line3 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao1 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 642 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line4 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao2 - min: 0 - max: 5 - type: LuxX - index: 2 - delay_percent: 10 - pulse_percent: 87 - - Nanoscale: - daq: - hardware: - name: daq - type: NI - - # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. - # Sampling rate in Hz - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: PXI6259/port0/line1 - camera_trigger_out_line: /PXI6259/ctr0 - trigger_source: /PXI6259/PFI0 - - # Digital Laser Outputs - laser_port_switcher: PXI6733/port0/line0 - laser_switch_state: True - - camera: - hardware: - type: HamamatsuOrca - serial_number: 500502 - x_pixels: 2304.0 - y_pixels: 2304.0 - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. - readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 100 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 0x7FFFFFFF - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 20 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - x_pixels_step: 4 - y_pixels_step: 4 - x_pixels_min: 4 - y_pixels_min: 4 - - remote_focus_device: - hardware: - name: daq - type: EquipmentSolutions #NI - channel: PXI6259/ao3 - comport: COM6 - min: -5 - max: 5 - # ThorLabs BLINK - delay_percent: 0 - ramp_rising_percent: 85 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 - # waveform: trig_remote_focus_ramp - galvo: - - - hardware: - name: daq - type: NI - channel: PXI6259/ao1 - min: -5 - max: 5 - offset: 0.5 - filter_wheel: - hardware: - name: filter_wheel - type: SutterFilterWheel - wheel_number: 2 - filter_wheel_delay: .030 # in seconds - available_filters: - Empty-Alignment: 0 - GFP - FF01-515/30-32: 1 - RFP - FF01-595/31-32: 2 - Far-Red - BLP01-647R/31-32: 3 - Blocked1: 4 - Blocked2: 5 - Blocked3: 6 - Blocked4: 7 - Blocked5: 8 - Blocked6: 9 - stage: - hardware: - - - name: stage - type: PI - serial_number: 119060508 - axes: [x, y, z, theta] - - - name: stage2 - type: PI - serial_number: 0116049747 - axes: [f] - # - - # name: stage2 - # type: MCL - # serial_number: 4011 - # axes: [f] - y_unload_position: 10000 - y_load_position: 90000 - - startfocus: 50 - x_max: 100000 - x_min: -100000 - y_max: 100000 - y_min: -100000 - z_max: 100000 - z_min: -100000 - f_max: 100000 - f_min: 0 - theta_max: 360 - theta_min: 0 - - x_rot_position: 2000 - y_rot_position: 2000 - z_rot_position: 2000 - - x_step: 500 - y_step: 500 - z_step: 500 - theta_step: 30 - f_step: 5 - - position: - x_pos: 25250 - y_pos: 40000 - z_pos: 40000 - f_pos: 0 - theta_pos: 0 - velocity: 1000 - - x_offset: 500 # -1000 - y_offset: 300 # -70 - z_offset: -18396 # -17842 - # x_offset: 0 - # y_offset: 0 - # z_offset: 0 - f_offset: 0 - theta_offset: 0 - zoom: - position: - N/A: 0 - pixel_size: - N/A: 0.167 - shutter: - hardware: - name: daq - type: NI - channel: PXI6259/port2/line0 - shutter_min_do: 0 - shutter_max_do: 5 - lasers: - # Omicron LightHub Ultra - # 488 and 640 are LuxX+ Lasers - # 561 is a Coherent OBIS Laser - # Digital Laser Outputs - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line2 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao0 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 562 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line3 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao1 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 642 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line4 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao2 - min: 0 - max: 5 - type: LuxX - index: 2 - delay_percent: 10 - pulse_percent: 87 - -gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.200 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + Mesoscale: + daq: + hardware: + name: daq + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: PXI6259/port0/line1 + camera_trigger_out_line: /PXI6259/ctr0 + trigger_source: /PXI6259/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PXI6733/port0/line0 + laser_switch_state: False + + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 302352 + x_pixels: 2048.0 + y_pixels: 2048.0 + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. + readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 0x7FFFFFFF + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 10 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + flip_x: False + flip_y: False + x_pixels_step: 4 + y_pixels_step: 4 + x_pixels_min: 4 + y_pixels_min: 4 + + remote_focus_device: + hardware: + name: daq + type: NI + channel: PXI6259/ao2 + min: -5 + max: 5 + # Optotune EL-16-40-TC-VIS-5D-1-C + delay_percent: 7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 2.5 + amplitude: 0.7 + offset: 2.3 + smoothing: 0.0 + galvo: + - + hardware: + name: daq + type: NI + channel: PXI6259/ao0 + min: -5 + max: 5 + frequency: 99.9 + amplitude: 2.5 + offset: 0 + duty_cycle: 50 + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + name: filter_wheel + type: SutterFilterWheel + wheel_number: 1 + port: COM2 + baudrate: 9600 + filter_wheel_delay: .030 # in seconds + available_filters: + Empty-Alignment: 5 + GFP - FF01-515/30-32: 6 + RFP - FF01-595/31-32: 7 + Far-Red - BLP01-647R/31-32: 8 + Blocked1: 4 + Blocked2: 0 + Blocked3: 1 + Blocked4: 2 + Blocked5: 3 + Blocked6: 9 + stage: + hardware: + name: stage + type: PI + serial_number: 119060508 + axes: [x, y, z, theta, f] + controllername: C-884 + stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE + refmode: FRF FRF FRF FRF FRF FRF + + x_max: 100000 + x_min: -100000 + y_max: 100000 + y_min: -100000 + z_max: 100000 + z_min: -100000 + f_max: 100000 + f_min: 0 + theta_max: 360 + theta_min: 0 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + + flip_x: False + flip_y: False + flip_z: False + zoom: + hardware: + type: DynamixelZoom + servo_id: 1 + port: COM9 + baudrate: 1000000 + position: + 0.63x: 0 + 1x: 627 + 2x: 1711 + 3x: 2301 + 4x: 2710 + 5x: 3079 + 6x: 3383 + pixel_size: + 0.63x: 9.7 + 1x: 6.38 + 2x: 3.14 + 3x: 2.12 + 4x: 1.609 + 5x: 1.255 + 6x: 1.044 + stage_positions: + BABB: + f: + 0.63x: 67410 + 1x: 70775 + 2x: 72455 + 3x: 72710 + 4x: 72795 + 5x: 72850 + 6x: 72880 + CUBIC: + f: + 0.63x: 67410 + 1x: 70775 + 2x: 72455 + 3x: 72710 + 4x: 72795 + 5x: 72850 + 6x: 72880 + shutter: + hardware: + type: NI + channel: PXI6259/port0/line0 + min: 0 + max: 5 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line2 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao0 + min: 0 + max: 5 + type: LuxX + - wavelength: 562 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line3 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao1 + min: 0 + max: 5 + type: Obis + - wavelength: 642 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line4 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao2 + min: 0 + max: 5 + type: LuxX + + Nanoscale: + daq: + hardware: + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + + # triggers + master_trigger_out_line: PXI6259/port0/line1 + camera_trigger_out_line: /PXI6259/ctr0 + trigger_source: /PXI6259/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PXI6733/port0/line0 + laser_switch_state: True + + camera: + hardware: + type: HamamatsuOrca + serial_number: 500502 + defect_correct_mode: 2.0 + delay: 10 #ms + settle_down: 0.0 #ms + + remote_focus_device: + hardware: + type: EquipmentSolutions #NI + channel: PXI6259/ao3 + port: COM6 + min: -5 + max: 5 + # waveform: trig_remote_focus_ramp + galvo: + - + hardware: + type: NI + channel: PXI6259/ao1 + min: -5 + max: 5 + filter_wheel: + hardware: + type: SutterFilterWheel + wheel_number: 2 + port: COM2 + baudrate: 9600 + filter_wheel_delay: .030 # in seconds + available_filters: + Empty-Alignment: 0 + GFP - FF01-515/30-32: 1 + RFP - FF01-595/31-32: 2 + Far-Red - BLP01-647R/31-32: 3 + Blocked1: 4 + Blocked2: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + stage: + hardware: + - + type: PI + serial_number: 119060508 + axes: [x, y, z, theta] + controllername: C-884 + stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE + refmode: FRF FRF FRF FRF FRF FRF + - + type: PI + serial_number: 0116049747 + axes: [f] + controllername: E-709 + stages: P-726.1CD + refmode: ATZ + # - + # name: stage2 + # type: MCL + # serial_number: 4011 + # axes: [f] + x_max: 100000 + x_min: -100000 + y_max: 100000 + y_min: -100000 + z_max: 100000 + z_min: -100000 + f_max: 100000 + f_min: 0 + theta_max: 360 + theta_min: 0 + + x_offset: 500 # -1000 + y_offset: 300 # -70 + z_offset: -18396 # -17842 + # x_offset: 0 + # y_offset: 0 + # z_offset: 0 + f_offset: 0 + theta_offset: 0 + zoom: + position: + N/A: 0 + pixel_size: + N/A: 0.167 + shutter: + hardware: + type: NI + channel: PXI6259/port2/line0 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line2 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao0 + min: 0 + max: 5 + type: LuxX + - wavelength: 562 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line3 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao1 + min: 0 + max: 5 + type: Obis + - wavelength: 642 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line4 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao2 + min: 0 + max: 5 + type: LuxX + +gui: + channels: + count: 5 diff --git a/docs/source/user_guide/hardware/configurations/configuration_spectral_tirf.yaml b/docs/source/user_guide/hardware/configurations/configuration_spectral_tirf.yaml index 0b79dda51..4e8abc123 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_spectral_tirf.yaml +++ b/docs/source/user_guide/hardware/configurations/configuration_spectral_tirf.yaml @@ -1,386 +1,229 @@ -# Specify all necessary information to find and connect to each hardware -# device that will be used on any of the scopes. -hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrca - serial_number: 001480 -# - -# type: HamamatsuOrca -# serial_number: 001480 - filter_wheel: - type: ASI - port: COM17 - baudrate: 115200 - number_of_wheels: 2 - stage: - - - type: ASI - port: COM17 - baudrate: 115200 - controllername: 'C-884' - stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE - refmode: FRF FRF FRF FRF FRF FRF - serial_number: 119060508 - - - type: SyntheticStage - port: COM17 - baudrate: 115200 - controllername: 'C-884' - stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE - refmode: FRF FRF FRF FRF FRF FRF - serial_number: 119060508 - zoom: - type: synthetic - servo_id: 1 - port: COM18 - baudrate: 1000000 - -# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible -microscopes: - SpectralTIRF: - daq: - hardware: - name: daq - type: NI - - # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. - # Sampling rate in Hz - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: PCIE6738/port0/line1 - camera_trigger_out_line: /PCIE6738/ctr0 - trigger_source: /PCIE6738/PFI0 - - # Digital Laser Outputs - laser_port_switcher: PCIE6738/port0/line0 - laser_switch_state: False - - camera: - hardware: - name: camera - type: HamamatsuOrca - serial_number: 001480 - x_pixels: 2048.0 - y_pixels: 2048.0 - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet - readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 1.0 - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 10 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - remote_focus_device: - hardware: - name: daq - type: NI - channel: PCIE6738/ao2 - min: 0 - max: 5 - # Optotune EL-16-40-TC-VIS-5D-1-C - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - galvo: - - - hardware: - name: daq - type: NI - channel: PCIE6738/ao2 #galvo-x - min: -5 - max: 5 - waveform: sine - frequency: 99.9 - period: 10 - amplitude: 2.5 - offset: 0 - duty_cycle: 50 - phase: 0 - - - hardware: - name: daq - type: NI - channel: PCIE6738/ao3 #galvo-y - min: -5 - max: 5 - waveform: sine - frequency: 99.9 - period: 10 - amplitude: 2.5 - offset: 0 - duty_cycle: 50 - phase: 90 - filter_wheel: - hardware: - name: emission - type: ASI - wheel_number: 1 - filter_wheel_delay: .030 # in seconds - available_filters: - CFP - FF01-482/35: 0 - YFP - FF01-250/15: 1 - Blocked 1: 2 - Empty Position 1: 3 - Blocked 2: 4 - Blocked 3: 5 - Empty Position 2: 6 - Blocked 4: 7 - Blocked 5: 8 - Blocked 6: 9 - stage: - hardware: - - - name: ASI - type: ASI - serial_number: 119060508 - axes: [x, y, z] - axes_mapping: [x, y, z] - volts_per_micron: None - axes_channels: None - max: None - min: None - - - name: Synthetic - type: SyntheticStage - serial_number: 119060508 - axes: [theta, f] - axes_mapping: [theta, f] - volts_per_micron: None - axes_channels: None - max: None - min: None - - x_max: 50000 - x_min: -50000 - y_max: 50000 - y_min: -50000 - z_max: 50000 - z_min: -50000 - f_max: 50000 - f_min: 0 - theta_max: 360 - theta_min: 0 - - x_step: 500 - y_step: 500 - z_step: 500 - theta_step: 30 - f_step: 500 - velocity: 1000 - - zoom: - hardware: - name: zoom - type: synthetic - servo_id: 1 - position: - 110x: 0 - pixel_size: - 110x: 0.059 - shutter: - hardware: - name: daq - type: synthetic - channel: PCIE6738/port0/line0 - min: 0 - max: 5 - lasers: - - wavelength: 445 - onoff: - hardware: - name: daq - type: NI - channel: PCIE6738/ao5 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIE6738/ao4 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PCIE6738/ao7 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIE6738/ao6 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - - wavelength: 514 - onoff: - hardware: - name: daq - type: NI - channel: PCIE6738/ao9 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIE6738/ao8 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 532 - onoff: - hardware: - name: daq - type: NI - channel: PCIE6738/ao11 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIE6738/ao10 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - - wavelength: 562 - onoff: - hardware: - name: daq - type: NI - channel: PCIE6738/ao13 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIE6738/ao12 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - - - wavelength: 592 - onoff: - hardware: - name: daq - type: NI - channel: PCIE6738/ao15 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIE6738/ao14 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - - - wavelength: 642 - onoff: - hardware: - name: daq - type: NI - channel: PCIE6738/ao17 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCIE6738/ao16 - min: 0 - max: 5 - type: LuxX - index: 2 - delay_percent: 10 - pulse_percent: 87 - -gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.200 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + SpectralTIRF: + daq: + hardware: + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + + # triggers + master_trigger_out_line: PCIE6738/port0/line1 + camera_trigger_out_line: /PCIE6738/ctr0 + trigger_source: /PCIE6738/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PCIE6738/port0/line0 + laser_switch_state: False + + camera: + hardware: + type: HamamatsuOrca + serial_number: 001480 + defect_correct_mode: 2.0 + delay: 10 #ms + settle_down: 0.0 #ms + remote_focus_device: + hardware: + type: NI + channel: PCIE6738/ao2 + min: 0 + max: 5 + # Optotune EL-16-40-TC-VIS-5D-1-C + galvo: + - + hardware: + type: NI + channel: PCIE6738/ao2 #galvo-x + min: -5 + max: 5 + waveform: sine + period: 10 + phase: 0 + - + hardware: + type: NI + channel: PCIE6738/ao3 #galvo-y + min: -5 + max: 5 + waveform: sine + period: 10 + phase: 90 + filter_wheel: + hardware: + name: emission + type: ASI + port: COM17 + baudrate: 115200 + wheel_number: 1 + filter_wheel_delay: .030 # in seconds + available_filters: + CFP - FF01-482/35: 0 + YFP - FF01-250/15: 1 + Blocked 1: 2 + Empty Position 1: 3 + Blocked 2: 4 + Blocked 3: 5 + Empty Position 2: 6 + Blocked 4: 7 + Blocked 5: 8 + Blocked 6: 9 + stage: + hardware: + - + type: ASI + serial_number: 119060508 + port: COM17 + baudrate: 115200 + axes: [x, y, z] + axes_mapping: [x, y, z] + volts_per_micron: None + max: None + min: None + - + name: Synthetic + type: SyntheticStage + serial_number: 119060508 + axes: [theta, f] + axes_mapping: [theta, f] + volts_per_micron: None + max: None + min: None + + x_max: 50000 + x_min: -50000 + y_max: 50000 + y_min: -50000 + z_max: 50000 + z_min: -50000 + f_max: 50000 + f_min: 0 + theta_max: 360 + theta_min: 0 + + zoom: + hardware: + type: synthetic + servo_id: 1 + position: + 110x: 0 + pixel_size: + 110x: 0.059 + shutter: + hardware: + type: synthetic + channel: PCIE6738/port0/line0 + min: 0 + max: 5 + lasers: + - wavelength: 445 + onoff: + hardware: + type: NI + channel: PCIE6738/ao5 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIE6738/ao4 + min: 0 + max: 5 + type: LuxX + + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PCIE6738/ao7 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIE6738/ao6 + min: 0 + max: 5 + type: LuxX + + - wavelength: 514 + onoff: + hardware: + type: NI + channel: PCIE6738/ao9 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIE6738/ao8 + min: 0 + max: 5 + type: LuxX + + - wavelength: 532 + onoff: + hardware: + type: NI + channel: PCIE6738/ao11 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIE6738/ao10 + min: 0 + max: 5 + type: LuxX + + - wavelength: 562 + onoff: + hardware: + type: NI + channel: PCIE6738/ao13 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIE6738/ao12 + min: 0 + max: 5 + type: Obis + + - wavelength: 592 + onoff: + hardware: + type: NI + channel: PCIE6738/ao15 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIE6738/ao14 + min: 0 + max: 5 + type: LuxX + + + - wavelength: 642 + onoff: + hardware: + type: NI + channel: PCIE6738/ao17 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCIE6738/ao16 + min: 0 + max: 5 + type: LuxX + +gui: + channels: + count: 5 diff --git a/docs/source/user_guide/hardware/configurations/configuration_upright.yaml b/docs/source/user_guide/hardware/configurations/configuration_upright.yaml index 3cc5c71f8..e4ddad933 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_upright.yaml +++ b/docs/source/user_guide/hardware/configurations/configuration_upright.yaml @@ -1,583 +1,370 @@ -# Specify all necessary information to find and connect to each hardware -# device that will be used on any of the scopes. -hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrcaLightning #SyntheticCamera - serial_number: 000035 - - - type: Photometrics - camera_connection: PMPCIECam00 - serial_number: 1 - filter_wheel: - type: ASI #SyntheticFilterWheel - port: COM8 - baudrate: 115200 - number_of_wheels: 2 - stage: - - - type: ASI - serial_number: 123456789 - port: COM8 - baudrate: 115200 - - - type: SyntheticStage - serial_number: 987654321 - zoom: - type: SyntheticZoom - servo_id: 0 - port: 0 - baudrate: 0 - -# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible -microscopes: - Nanoscale: - daq: - hardware: - name: daq - type: NI - - # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. - # Sampling rate in Hz - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: PXI6259/port0/line1 - camera_trigger_out_line: /PXI6259/ctr0 - trigger_source: /PXI6259/PFI0 - - # Digital Laser Outputs - laser_port_switcher: PXI6733/port0/line1 - laser_switch_state: False - - camera: - hardware: - name: camera - type: HamamatsuOrcaLightning #SyntheticCamera - serial_number: 000035 - x_pixels: 4608.0 - y_pixels: 2592.0 - pixel_size_in_microns: 5.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. - readout_direction: Bottom-to-Top # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 0x7FFFFFFF - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 30 #30 #25 #8 #5.0 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - remote_focus_device: - hardware: - name: daq - type: NI - channel: PXI6259/ao3 - min: -0.5 - max: 0.5 - # Optotune EL-16-40-TC-VIS-5D-1-C - delay_percent: 0 #1.5 #7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 1.5 #2.5 - amplitude: 0.7 - offset: 2.3 - galvo: - - - hardware: - name: daq - type: NI - channel: PXI6259/ao1 - min: 0 - max: 5 - frequency: 99.9 - amplitude: 2.5 - offset: 0 - duty_cycle: 50 - phase: 1.57079 # pi/2 - filter_wheel: - hardware: - name: filter_wheel - type: ASI #SyntheticFilterWheel - wheel_number: 2 - filter_wheel_delay: .030 # in seconds - available_filters: - BLU - FF01-442/42-32: 0 - GFP - FF01-515/30-32: 1 - RFP - FF01-595/31-32: 2 - Far-Red - FF01-670/30-32: 3 - Blocked1: 4 - Empty: 5 - Blocked3: 6 - Blocked4: 7 - Blocked5: 8 - Blocked6: 9 - stage: - hardware: - - - name: stage - type: ASI - serial_number: 123456789 - axes: [x, y, z, f] # Software - axes_mapping: [M, Y, X, Z] # M Shear axis mapping - #axes_mapping: [M, X, Y, Z] #testing y - #axes_mapping: [M, X, Z, Y] #testing Z - # axes_mapping: [Z, Y, X, M] - feedback_alignment: [90, 90, 90, 90] - - - - name: stage - type: SyntheticStage - serial_number: 987654321 - axes: [theta] - - startfocus: -16000 - x_max: 0 # Swapped from Z - x_min: -22708.3 # Swapped from Z - y_max: 1361.3 - y_min: -3496.3 - z_max: 3521.9 # Swapped from X - z_min: -4551.1 # Swapped from X - f_max: 3233.0 #=m - f_min: -9382.0 #=m - theta_max: 360 - theta_min: 0 - external_trigger: /PXI6259/PFI1 - # joystick_axes: [x, y, z, f] - - x_rot_position: 2000 - y_rot_position: 2000 - z_rot_position: 2000 - - x_step: 50 - y_step: 50 - z_step: 50 - theta_step: 30 - f_step: 50 - - position: - x_pos: 5 # Swapped from Z initial stage position - y_pos: 1 - z_pos: 1 # Swapped from X - f_pos: 0 - theta_pos: 0 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - f_offset: 0 - theta_offset: 0 - zoom: - hardware: - name: zoom - type: SyntheticZoom - servo_id: 1 - position: - N/A: 0 - pixel_size: - N/A: 0.168 - shutter: - hardware: - name: daq - type: NI - channel: PXI6259/port0/line0 - min: 0 - max: 5 - lasers: - # Omicron LightHub Ultra - # 488 and 640 are LuxX+ Lasers - # 561 is a Coherent OBIS Laser - # Digital Laser Outputs - - wavelength: 405 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line2 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao0 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line3 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao1 - min: 0 - max: 5 - type: LuxX - index: 1 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 561 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line4 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao2 - min: 0 - max: 5 - type: Obis - index: 2 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 642 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line5 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao3 - min: 0 - max: 5 - type: LuxX - index: 3 - delay_percent: 10 - pulse_percent: 87 - - wavelength: LED - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao4 - min: 0 - max: 5 - index: 4 - - Macroscale: - daq: - hardware: - name: daq - type: NI - - # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. - # Sampling rate in Hz - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: PXI6259/port0/line1 - camera_trigger_out_line: /PXI6259/ctr0 - trigger_source: /PXI6259/PFI0 - - # Digital Laser Outputs - laser_port_switcher: PXI6733/port0/line1 - laser_switch_state: True - - camera: - hardware: - name: camera - type: Photometrics #SyntheticCamera - serial_number: 1 - x_pixels: 5056.0 - y_pixels: 2960.0 - pixel_size_in_microns: 4.25 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. - readout_direction: Bottom-to-Top # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 0x7FFFFFFF - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 25 #8 #5.0 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - remote_focus_device: - hardware: - name: daq - type: NI - channel: PXI6259/ao3 - min: -0.5 - max: 0.5 - # Optotune EL-16-40-TC-VIS-5D-1-C - delay_percent: 0 #1.5 #7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - galvo: - - - hardware: - name: daq - type: NI - channel: PXI6259/ao1 - min: 0 - max: 5 - frequency: 99.9 - amplitude: 2.5 - offset: 0 - duty_cycle: 50 - phase: 1.57079 # pi/2 - filter_wheel: - hardware: - name: filter_wheel - type: ASI #SyntheticFilterWheel - wheel_number: 2 - filter_wheel_delay: .030 # in seconds - available_filters: - BLU - FF01-442/42-32: 0 - GFP - FF01-515/30-32: 1 - RFP - FF01-595/31-32: 2 - Far-Red - FF01-670/30-32: 3 - Blocked1: 4 - Empty: 5 - Blocked3: 6 - Blocked4: 7 - Blocked5: 8 - Blocked6: 9 - stage: - hardware: - - - name: stage - type: ASI - serial_number: 123456789 - axes: [x, y, z, f] #Software - # axes_mapping: [M, Y, X, Z] - axes_mapping: [M, Y, X, Z] #M shear - feedback_alignment: [90, 90, 90, 90] - - - - name: stage - type: SyntheticStage - serial_number: 987654321 - axes: [theta] - - startfocus: -16000 - x_max: 0 # Swapped from Z - x_min: -22708.3 # Swapped from Z - y_max: 1361.3 - y_min: -3496.3 - z_max: 3521.9 # Swapped from X - z_min: -4651.1 # Swapped from X - f_max: 3233.0 #=m - f_min: -9382.0 #=m - theta_max: 360 - theta_min: 0 - external_trigger: /PXI6259/PFI1 - # joystick_axes: [x, y, z, f] - - x_rot_position: 2000 - y_rot_position: 2000 - z_rot_position: 2000 - - x_step: 50 - y_step: 50 - z_step: 50 - theta_step: 30 - f_step: 50 - - position: - x_pos: 5 # Swapped from Z initial stage position - y_pos: 1 - z_pos: 1 # Swapped from X - f_pos: 0 - theta_pos: 0 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - f_offset: 0 - theta_offset: 0 - zoom: - hardware: - name: zoom - type: SyntheticZoom - servo_id: 1 - position: - N/A: 0 - pixel_size: - N/A: 1.06 - shutter: - hardware: - name: daq - type: NI - channel: PXI6259/port0/line0 - min: 0 - max: 5 - lasers: - # Omicron LightHub Ultra - # 488 and 640 are LuxX+ Lasers - # 561 is a Coherent OBIS Laser - # Digital Laser Outputs - - wavelength: 405 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line2 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao0 - min: 0 - max: 5 - type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line3 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao1 - min: 0 - max: 5 - type: LuxX - index: 1 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 561 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line4 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao2 - min: 0 - max: 5 - type: Obis - index: 2 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 642 - onoff: - hardware: - name: daq - type: NI - channel: PXI6733/port0/line5 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao3 - min: 0 - max: 5 - type: LuxX - index: 3 - delay_percent: 10 - pulse_percent: 87 - - wavelength: LED - power: - hardware: - name: daq - type: NI - channel: PXI6733/ao4 - min: 0 - max: 5 - index: 4 - - -gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.1 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + Nanoscale: + daq: + hardware: + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + + # triggers + master_trigger_out_line: PXI6259/port0/line1 + camera_trigger_out_line: /PXI6259/ctr0 + trigger_source: /PXI6259/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PXI6733/port0/line1 + laser_switch_state: False + + camera: + hardware: + type: HamamatsuOrcaLightning #SyntheticCamera + serial_number: 000035 + defect_correct_mode: 2.0 + delay: 10 #ms + settle_down: 0.0 #ms + remote_focus_device: + hardware: + type: NI + channel: PXI6259/ao3 + min: -0.5 + max: 0.5 + # Optotune EL-16-40-TC-VIS-5D-1-C + galvo: + - + hardware: + type: NI + channel: PXI6259/ao1 + min: 0 + max: 5 + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + type: ASI #SyntheticFilterWheel + wheel_number: 2 + port: COM8 + baudrate: 115200 + filter_wheel_delay: .030 # in seconds + available_filters: + BLU - FF01-442/42-32: 0 + GFP - FF01-515/30-32: 1 + RFP - FF01-595/31-32: 2 + Far-Red - FF01-670/30-32: 3 + Blocked1: 4 + Empty: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + stage: + hardware: + - + type: ASI + serial_number: 123456789 + port: COM8 + baudrate: 115200 + axes: [x, y, z, f] # Software + axes_mapping: [M, Y, X, Z] # M Shear axis mapping + #axes_mapping: [M, X, Y, Z] #testing y + #axes_mapping: [M, X, Z, Y] #testing Z + # axes_mapping: [Z, Y, X, M] + feedback_alignment: [90, 90, 90, 90] + + - + name: stage + type: SyntheticStage + serial_number: 987654321 + axes: [theta] + + x_max: 0 # Swapped from Z + x_min: -22708.3 # Swapped from Z + y_max: 1361.3 + y_min: -3496.3 + z_max: 3521.9 # Swapped from X + z_min: -4551.1 # Swapped from X + f_max: 3233.0 #=m + f_min: -9382.0 #=m + theta_max: 360 + theta_min: 0 + external_trigger: /PXI6259/PFI1 + # joystick_axes: [x, y, z, f] + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + zoom: + hardware: + type: SyntheticZoom + servo_id: 1 + position: + N/A: 0 + pixel_size: + N/A: 0.168 + shutter: + hardware: + type: NI + channel: PXI6259/port0/line0 + min: 0 + max: 5 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 405 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line2 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao0 + min: 0 + max: 5 + type: LuxX + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line3 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao1 + min: 0 + max: 5 + type: LuxX + - wavelength: 561 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line4 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao2 + min: 0 + max: 5 + type: Obis + - wavelength: 642 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line5 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao3 + min: 0 + max: 5 + type: LuxX + + - wavelength: LED + power: + hardware: + type: NI + channel: PXI6733/ao4 + min: 0 + max: 5 + + Macroscale: + daq: + hardware: + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + + # triggers + master_trigger_out_line: PXI6259/port0/line1 + camera_trigger_out_line: /PXI6259/ctr0 + trigger_source: /PXI6259/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PXI6733/port0/line1 + laser_switch_state: True + + camera: + hardware: + type: Photometrics #SyntheticCamera + serial_number: 1 + camera_connection: PMPCIECam00 + x_pixels: 5056.0 + y_pixels: 2960.0 + pixel_size_in_microns: 4.25 + defect_correct_mode: 2.0 + delay: 25 #8 #5.0 + settle_down: 0.0 #ms + remote_focus_device: + hardware: + type: NI + channel: PXI6259/ao3 + min: -0.5 + max: 0.5 + # Optotune EL-16-40-TC-VIS-5D-1-C + galvo: + - + hardware: + type: NI + channel: PXI6259/ao1 + min: 0 + max: 5 + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + type: ASI #SyntheticFilterWheel + wheel_number: 2 + port: COM8 + baudrate: 115200 + filter_wheel_delay: .030 # in seconds + available_filters: + BLU - FF01-442/42-32: 0 + GFP - FF01-515/30-32: 1 + RFP - FF01-595/31-32: 2 + Far-Red - FF01-670/30-32: 3 + Blocked1: 4 + Empty: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + stage: + hardware: + - + name: stage + type: ASI + port: COM8 + baudrate: 115200 + serial_number: 123456789 + axes: [x, y, z, f] #Software + # axes_mapping: [M, Y, X, Z] + axes_mapping: [M, Y, X, Z] #M shear + feedback_alignment: [90, 90, 90, 90] + + - + name: stage + type: SyntheticStage + serial_number: 987654321 + axes: [theta] + + x_max: 0 # Swapped from Z + x_min: -22708.3 # Swapped from Z + y_max: 1361.3 + y_min: -3496.3 + z_max: 3521.9 # Swapped from X + z_min: -4651.1 # Swapped from X + f_max: 3233.0 #=m + f_min: -9382.0 #=m + theta_max: 360 + theta_min: 0 + external_trigger: /PXI6259/PFI1 + # joystick_axes: [x, y, z, f] + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + zoom: + hardware: + type: SyntheticZoom + servo_id: 1 + position: + N/A: 0 + pixel_size: + N/A: 1.06 + shutter: + hardware: + type: NI + channel: PXI6259/port0/line0 + min: 0 + max: 5 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 405 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line2 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao0 + min: 0 + max: 5 + type: LuxX + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line3 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao1 + min: 0 + max: 5 + type: LuxX + - wavelength: 561 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line4 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao2 + min: 0 + max: 5 + type: Obis + + - wavelength: 642 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line5 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PXI6733/ao3 + min: 0 + max: 5 + type: LuxX + + - wavelength: LED + power: + hardware: + type: NI + channel: PXI6733/ao4 + min: 0 + max: 5 + + +gui: + channels: + count: 5 diff --git a/docs/source/user_guide/hardware/configurations/configuration_voodoo.yaml b/docs/source/user_guide/hardware/configurations/configuration_voodoo.yaml index 05bf35945..efe3e4017 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_voodoo.yaml +++ b/docs/source/user_guide/hardware/configurations/configuration_voodoo.yaml @@ -1,388 +1,243 @@ -# Specify all necessary information to find and connect to each hardware -# device that will be used on any of the scopes. -hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrca - serial_number: 100803 -# - -# type: HamamatsuOrca -# serial_number: 003054 - filter_wheel: - type: SutterFilterWheel - port: COM1 - baudrate: 9600 - number_of_wheels: 1 - stage: - - - type: synthetic #MP285 - port: COM6 - timeout: 0.25 - baudrate: 9600 - serial_number: 0001 - stages: None - - - type: syntheticstage #syntheticstage - port: COM9999 - timeout: 0.25 - baudrate: 9600 - serial_number: 0000 - stages: None - - - type: GalvoNIStage - port: COM9999 - timeout: 0.25 - baudrate: 9600 - serial_number: 0000 - stages: None - zoom: - type: synthetic - servo_id: 1 - port: COM18 - baudrate: 1000000 - -# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible -microscopes: - CTASLMv2: - daq: - hardware: - name: daq - type: NI - sample_rate: 100000 - sweep_time: 0.2 - - # triggers - master_trigger_out_line: PCI6738/port0/line1 #3 - camera_trigger_out_line: /PCI6738/ctr0 #9/42 - trigger_source: /PCI6738/PFI0 #4 - - camera: -# - - hardware: - name: camera - type: HamamatsuOrca - serial_number: 100803 - x_pixels: 2048.0 - y_pixels: 2048.0 - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet - readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' - lightsheet_rolling_shutter_width: 50 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 2.0 - trigger_active: 1.0 - trigger_mode: 1.0 # external light-sheet mode - trigger_polarity: 2.0 # positive pulse - trigger_source: 2.0 # 2 = external, 3 = software. - exposure_time: 20 # Use milliseconds throughout. - delay_percent: 20 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 -# - -# hardware: -# name: camera -# type: HamamatsuOrca -# serial_number: 003054 -# x_pixels: 2048.0 -# y_pixels: 2048.0 -# pixel_size_in_microns: 6.5 -# subsampling: [1, 2, 4] -# sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet -# readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' -# lightsheet_rolling_shutter_width: 608 -# defect_correct_mode: 2.0 -# binning: 1x1 -# readout_speed: 2.0 -# trigger_active: 1.0 -# trigger_mode: 1.0 # external light-sheet mode -# trigger_polarity: 2.0 # positive pulse -# trigger_source: 2.0 # 2 = external, 3 = software. -# exposure_time: 20 # Use milliseconds throughout. -# delay_percent: 20 -# pulse_percent: 1 -# line_interval: 0.000075 -# display_acquisition_subsampling: 4 -# display_acquisition_subsampling: 4 -# average_frame_rate: 4.969 -# frames_to_average: 1 -# exposure_time_range: -# min: 1 -# max: 1000 -# step: 1 - - remote_focus_device: - hardware: - name: remote_focus - type: NI #synthetic #EquipmentSolutions # NI - channel: PCI6738/ao2 #45/46 - comport: COM700 - min: -5 - max: 5 - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 5.0 - amplitude: 0.03 - offset: 0.007 - smoothing: 0.0 - galvo: - - - hardware: - name: daq - type: NI - channel: PCI6738/ao0 #10/11 - min: -5 - max: 5 - waveform: sawtooth - frequency: 99.9 - amplitude: 2.5 - offset: 0.5 - duty_cycle: 50 - phase: 1.57079 # pi/2 - filter_wheel: - hardware: - name: filter_wheel - type: SutterFilterWheel - wheel_number: 1 - filter_wheel_delay: .030 # in seconds - available_filters: - 647-LP: 0 - 600-50: 1 - 525-50: 2 - 480-40: 3 - Empty-1: 4 - Empty-2: 5 - Empty-3: 6 - Empty-4: 7 - stage: - hardware: - - - name: stage1 - type: synthetic #MP285 - serial_number: 0001 - axes: [y, x, f] - axes_mapping: [z, y, x] - max: 25000 - min: 0 - - - name: stage2 - type: syntheticstage - serial_number: 0000 - axes: [theta] - axes_mapping: [theta] - max: 360 - min: 0 - - - name: PIFOC - type: GalvoNIStage - serial_number: 0000 - axes: [z] - axes_mapping: [PCI6738/ao6] #48/49 - volts_per_micron: 0.1*x - max: 10 - min: 0 - x_max: 12500 - x_min: -12500 - y_max: 12500 - y_min: -12500 - z_max: 200 - z_min: 0 - f_max: 12500 - f_min: -12500 - theta_max: 360 - theta_min: 0 - - x_step: 500 - y_step: 500 - z_step: 5 - theta_step: 30 - f_step: 500 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - theta_offset: 0 - f_offset: 0 - zoom: - hardware: - name: zoom - type: synthetic - servo_id: 1 - position: - 62.5X: 0.104 - pixel_size: - 62.5X: 0.104 - stage_positions: - BABB: - f: - 62.5X: 0 - shutter: - hardware: - name: daq - type: SyntheticShutter - channel: PCI6738/port0/line10 - min: 0 - max: 5 - lasers: - - wavelength: 405 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line5 # 7/41 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao8 # 16/50 - min: 0 - max: 5 - type: Obis - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 445 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line2 # 5/39 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao9 # 17/50 - min: 0 - max: 5 - type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line3 # 6/39 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao10 # 51/50 - min: 0 - max: 5 - type: Obis - index: 2 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 514 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line4 #40/41 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao11 #52/18 - min: 0 - max: 5 - type: Obis - index: 2 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 561 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line6 # 8/42 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao12 #53/20 - min: 0 - max: 5 - type: Obis - index: 2 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 640 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port0/line0 #9/42 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao13 #54/20 - min: 0 - max: 5 - type: Obis - index: 2 - delay_percent: 10 - pulse_percent: 87 -gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.100 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + CTASLMv2: + daq: + hardware: + type: NI + sample_rate: 100000 + + # triggers + master_trigger_out_line: PCI6738/port0/line1 #3 + camera_trigger_out_line: /PCI6738/ctr0 #9/42 + trigger_source: /PCI6738/PFI0 #4 + + camera: +# - + hardware: + type: HamamatsuOrca + serial_number: 100803 + defect_correct_mode: 2.0 + delay: 20 #ms + settle_down: 0.0 #ms +# - +# hardware: +# name: camera +# type: HamamatsuOrca +# serial_number: 003054 +# x_pixels: 2048.0 +# y_pixels: 2048.0 +# pixel_size_in_microns: 6.5 +# subsampling: [1, 2, 4] +# sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet +# readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' +# lightsheet_rolling_shutter_width: 608 +# defect_correct_mode: 2.0 +# binning: 1x1 +# readout_speed: 2.0 +# trigger_active: 1.0 +# trigger_mode: 1.0 # external light-sheet mode +# trigger_polarity: 2.0 # positive pulse +# trigger_source: 2.0 # 2 = external, 3 = software. +# exposure_time: 20 # Use milliseconds throughout. +# delay_percent: 20 +# pulse_percent: 1 +# line_interval: 0.000075 +# display_acquisition_subsampling: 4 +# display_acquisition_subsampling: 4 +# average_frame_rate: 4.969 +# frames_to_average: 1 +# exposure_time_range: +# min: 1 +# max: 1000 +# step: 1 + + remote_focus_device: + hardware: + type: NI #synthetic #EquipmentSolutions # NI + channel: PCI6738/ao2 #45/46 + port: COM700 + min: -5 + max: 5 + galvo: + - + hardware: + type: NI + channel: PCI6738/ao0 #10/11 + min: -5 + max: 5 + waveform: sawtooth + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + type: SutterFilterWheel + wheel_number: 1 + port: COM1 + baudrate: 9600 + filter_wheel_delay: .030 # in seconds + available_filters: + 647-LP: 0 + 600-50: 1 + 525-50: 2 + 480-40: 3 + Empty-1: 4 + Empty-2: 5 + Empty-3: 6 + Empty-4: 7 + stage: + hardware: + - + name: stage1 + type: synthetic #MP285 + serial_number: 0001 + port: COM6 + timeout: 0.25 + baudrate: 9600 + axes: [y, x, f] + axes_mapping: [z, y, x] + max: 25000 + min: 0 + - + name: stage2 + type: syntheticstage + serial_number: 0000 + axes: [theta] + axes_mapping: [theta] + max: 360 + min: 0 + - + name: PIFOC + type: GalvoNIStage + serial_number: 0000 + axes: [z] + axes_mapping: [PCI6738/ao6] #48/49 + volts_per_micron: 0.1*x + max: 10 + min: 0 + x_max: 12500 + x_min: -12500 + y_max: 12500 + y_min: -12500 + z_max: 200 + z_min: 0 + f_max: 12500 + f_min: -12500 + theta_max: 360 + theta_min: 0 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + zoom: + hardware: + type: synthetic + servo_id: 1 + port: COM18 + baudrate: 10000 + position: + 62.5X: 0.104 + pixel_size: + 62.5X: 0.104 + stage_positions: + BABB: + f: + 62.5X: 0 + shutter: + hardware: + type: SyntheticShutter + channel: PCI6738/port0/line10 + min: 0 + max: 5 + lasers: + - wavelength: 405 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line5 # 7/41 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao8 # 16/50 + min: 0 + max: 5 + type: Obis + + - wavelength: 445 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line2 # 5/39 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao9 # 17/50 + min: 0 + max: 5 + type: Obis + - wavelength: 488 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line3 # 6/39 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao10 # 51/50 + min: 0 + max: 5 + type: Obis + + - wavelength: 514 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line4 #40/41 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao11 #52/18 + min: 0 + max: 5 + type: Obis + - wavelength: 561 + onoff: + hardware: + type: NI + channel: PCI6738/port1/line6 # 8/42 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao12 #53/20 + min: 0 + max: 5 + type: Obis + + - wavelength: 640 + onoff: + hardware: + type: NI + channel: PCI6738/port0/line0 #9/42 + min: 0 + max: 5 + power: + hardware: + type: NI + channel: PCI6738/ao13 #54/20 + min: 0 + max: 5 + type: Obis + +gui: + channels: + count: 5 diff --git a/docs/source/user_guide/hardware/configurations_archive/configuration_OPMv2.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_OPMv2.yaml new file mode 100644 index 000000000..eb48ad4cc --- /dev/null +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_OPMv2.yaml @@ -0,0 +1,315 @@ +# Specify all necessary information to find and connect to each hardware +# device that will be used on any of the scopes. +hardware: + daq: + type: NI + camera: + - + type: HamamatsuOrca + serial_number: 304064 + filter_wheel: + type: SyntheticFilterWheel + port: COM6 + baudrate: 9600 + number_of_wheels: 1 + stage: + - + type: SyntheticStage + serial_number: 123 + - type: GalvoNIStage + serial_number: 123 + zoom: + type: SyntheticZoom + servo_id: 1 + +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + OPMv2: + daq: + hardware: + name: daq + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: /Dev5/port0/line1 + camera_trigger_out_line: /Dev5/ctr0 + trigger_source: /Dev5/PFI0 + + zoom: + hardware: + name: zoom + type: SyntheticZoom + servo_id: 1 + position: + 1x: 0 + pixel_size: + 1x: 0.15 + shutter: + hardware: + name: shutter + type: SyntheticShutter + channel: none/line0 + shutter_min_do: 0 + shutter_max_do: 5 + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 304064 + x_pixels: 2048.0 + y_pixels: 2048.0 + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. + readout_direction: Bottom-to-Top # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 10 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 1.0 + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 7.5 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + remote_focus_device: + hardware: + name: daq + type: NI + channel: Dev5/ao3 + min: 0 + max: 5 + # Optotune EL-16-40-TC-VIS-5D-1-C + delay_percent: 5 + ramp_rising_percent: 92.5 + ramp_falling_percent: 2.5 + amplitude: 0.7 + offset: 2.3 + galvo: + # - + # name: xgalvo + # hardware: + # name: daq + # type: NI + # channel: Dev5/ao0 + # min: -5 + # max: 5 + # frequency: 99.9 + # amplitude: 2.5 + # offset: 0 + # duty_cycle: 50 + # phase: 1.57079 # pi/2 + - + name: ygalvo + hardware: + name: daq + type: NI + channel: Dev5/ao1 + min: -5 + max: 5 + frequency: 99.9 + amplitude: 2.5 + offset: 0 + duty_cycle: 50 + phase: 1.57079 # pi/2 + - + name: sheargalvo + hardware: + name: daq + type: NI + channel: Dev5/ao2 + min: -5 + max: 5 + frequency: 99.9 + amplitude: 2.5 + offset: 0 + duty_cycle: 50 + phase: 1.57079 # pi/2 + stage: + hardware: + - + name: fake_stage + type: SyntheticStage + serial_number: 123 + axes: [x,y,theta,f] + - + name: galvo-stage + type: GalvoNIStage + serial_number: 123 + axes: [z] + axes_mapping: [Dev5/ao0] + min: -5 + max: 5 + volts_per_micron: 0.01*x + 0 + y_unload_position: 10000 + y_load_position: 90000 + + startfocus: 75000 + x_max: 500 + x_min: -500 + y_max: 500 + y_min: -500 + z_max: 500 + z_min: -500 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + + x_rot_position: 2000 + y_rot_position: 2000 + z_rot_position: 2000 + + x_step: 500 + y_step: 500 + z_step: 10 + theta_step: 30 + f_step: 500 + + position: + x_pos: 25250 + y_pos: 40000 + z_pos: 0 + f_pos: 70000 + theta_pos: 0 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + filter_wheel: + hardware: + name: filter_wheel + type: SyntheticFilterWheel + wheel_number: 1 + filter_wheel_delay: .030 # in seconds + available_filters: + FRFP - BLP01-664R-25: 0 + RFP - FF01-598/25-25: 1 + GFP - 527/20: 2 + GFPRFP - ZET488/561m: 3 + Empty-Alignment: 4 + Blocked2: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 488 + power: + hardware: + name: daq + type: NI + channel: Dev5/ao12 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 562 + onoff: + hardware: + name: daq + type: NI + channel: Dev5/port1/line5 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: Dev5/ao13 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 642 + power: + hardware: + name: daq + type: NI + channel: Dev5/ao14 + min: 0 + max: 5 + type: LuxX + index: 2 + delay_percent: 10 + pulse_percent: 87 + +gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.200 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 + confocal_projection: + scanrange: + min: 0 + max: 600 + step: 1 + offset_start: + min: -300 + max: 300 + step: 0.1 + offset_end: + min: -300 + max: 300 + step: 0.1 + n_plane: + min: 1 + max: 200 + step: 1 diff --git a/docs/source/user_guide/hardware/configurations_archive/configuration_OPMv3.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_OPMv3.yaml new file mode 100644 index 000000000..5a8c0e6d0 --- /dev/null +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_OPMv3.yaml @@ -0,0 +1,535 @@ +# Specify all necessary information to find and connect to each hardware +# device that will be used on any of the scopes. +hardware: + daq: + type: NI + camera: + - + type: HamamatsuOrca + serial_number: 001301 + filter_wheel: + type: SyntheticFilterWheel + port: COM6 + baudrate: 9600 + number_of_wheels: 1 + stage: + - + type: SyntheticStage + serial_number: 123 + - + type: GalvoNIStage + serial_number: 124 + - + type: GalvoNIStage + serial_number: 125 + zoom: + type: SyntheticZoom + servo_id: 1 + mirror: + type: ImagineOpticsMirror + +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + ProjectionScope: + daq: + hardware: + name: daq + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: /PCIe-6738/port0/line1 + camera_trigger_out_line: /PCIe-6738/ctr0 #PFI7 Camera trigger + trigger_source: /PCIe-6738/PFI0 + + mirror: + hardware: + name: mirror + type: ImagineOpticsMirror + flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs + n_modes: 32 + + zoom: + hardware: + name: zoom + type: SyntheticZoom + servo_id: 1 + position: + 1x: 0 + pixel_size: + 1x: 0.15 + shutter: + hardware: + name: shutter + type: SyntheticShutter + channel: none/line0 + shutter_min_do: 0 + shutter_max_do: 5 + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 001301 + x_pixels: 2048.0 + y_pixels: 2048.0 + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. + readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 1.0 + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 10 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + remote_focus_device: + hardware: + name: daq + type: SyntheticRemoteFocus + channel: none + min: 0 + max: 5 + # Optotune EL-16-40-TC-VIS-5D-1-C + delay_percent: 0 + ramp_rising_percent: 50 + ramp_falling_percent: 2.5 + amplitude: -0.5 + offset: 0 + galvo: + - + # shear galvo measured: 351.04 um/V + name: sheargalvo + hardware: + name: daq + type: NI # SyntheticGalvo + channel: PCIe-6738/ao12 + min: -5 + max: 5 + # waveform: halfsaw + waveform: sawtooth + frequency: 0.5 + amplitude: -1 + offset: 0 + duty_cycle: 50 + phase: 1.57079 + - + name: xgalvo + hardware: + name: daq + type: NI # SyntheticGalvo + channel: PCIe-6738/ao0 + min: -5 + max: 5 + waveform: sawtooth + frequency: 0.5 + amplitude: 0.931 + offset: 0 + duty_cycle: 50 + phase: 1.57079 + stage: + hardware: + - + name: fake_stage + type: SyntheticStage + serial_number: 123 + axes: [x,y,theta,z] + - + name: snouty_piezo + type: GalvoNIStage + serial_number: 124 + axes: [f] + axes_mapping: [PCIe-6738/ao14] + min: 0 + max: 10 + volts_per_micron: (10/15.4)*x + 5.0 + y_unload_position: 10000 + y_load_position: 90000 + + startfocus: 0 + x_max: 50 + x_min: -50 + y_max: 50 + y_min: -50 + z_max: 500 + z_min: -500 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + + x_rot_position: 2000 + y_rot_position: 2000 + z_rot_position: 2000 + + x_step: 500 + y_step: 500 + z_step: 500 + theta_step: 30 + f_step: 500 + + position: + x_pos: 25250 + y_pos: 40000 + z_pos: 0 + f_pos: 70000 + theta_pos: 0 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + filter_wheel: + hardware: + name: filter_wheel + type: SyntheticFilterWheel + wheel_number: 1 + filter_wheel_delay: .030 # in seconds + available_filters: + FRFP - BLP01-664R-25: 0 + RFP - FF01-598/25-25: 1 + GFP - 527/20: 2 + GFPRFP - ZET488/561m: 3 + Empty-Alignment: 4 + Blocked2: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PCIe-6738/port1/line2 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIe-6738/ao5 + min: 0 + max: 5 + type: Obis + index: 0 + delay_percent: 10 + pulse_percent: 100 + - wavelength: 561 + onoff: + hardware: + name: daq + type: NI + channel: PCIe-6738/port1/line3 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIe-6738/ao11 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 100 + + StackingScope: + daq: + hardware: + name: daq + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: /PCIe-6738/port0/line1 + camera_trigger_out_line: /PCIe-6738/ctr0 #PFI7 Camera trigger + trigger_source: /PCIe-6738/PFI0 + + mirror: + hardware: + name: mirror + type: ImagineOpticsMirror + flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs + n_modes: 32 + + zoom: + hardware: + name: zoom + type: SyntheticZoom + servo_id: 1 + position: + 1x: 0 + pixel_size: + 1x: 0.15 + shutter: + hardware: + name: shutter + type: SyntheticShutter + channel: none/line0 + shutter_min_do: 0 + shutter_max_do: 5 + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 001301 + x_pixels: 2048.0 + y_pixels: 2048.0 + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. + readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 1.0 + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 10 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + remote_focus_device: + hardware: + name: daq + type: SyntheticRemoteFocus + channel: none + min: 0 + max: 10 + # Optotune EL-16-40-TC-VIS-5D-1-C + delay_percent: 7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 2.5 + amplitude: 0.7 + offset: 2.3 + galvo: + - + name: sheargalvo + hardware: + name: daq + type: NI # SyntheticGalvo + channel: PCIe-6738/ao12 + min: -5 + max: 5 + frequency: 0.5 + amplitude: 0 + offset: 0 + duty_cycle: 50 + phase: 1.57079 + stage: + hardware: + - + name: fake_stage + type: SyntheticStage + serial_number: 123 + axes: [x,y,theta] + - + name: snouty_piezo + type: GalvoNIStage + serial_number: 124 + axes: [f] + axes_mapping: [PCIe-6738/ao14] + min: 0 + max: 10 + volts_per_micron: (10/15.4)*x + 5.0 + - + name: z_galvo + type: GalvoNIStage + serial_number: 125 + axes: [z] + # axes_channels: [PCIe-6738/ao0] + axes_mapping: [PCIe-6738/ao0] + min: -3.5 + max: 3.5 + volts_per_micron: 0.007*x + y_unload_position: 10000 + y_load_position: 90000 + + startfocus: 0 + x_max: 50 + x_min: -50 + y_max: 50 + y_min: -50 + z_max: 500 + z_min: -500 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + + x_rot_position: 2000 + y_rot_position: 2000 + z_rot_position: 2000 + + x_step: 500 + y_step: 500 + z_step: 500 + theta_step: 30 + f_step: 500 + + position: + x_pos: 25250 + y_pos: 40000 + z_pos: 0 + f_pos: 70000 + theta_pos: 0 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + filter_wheel: + hardware: + name: filter_wheel + type: SyntheticFilterWheel + wheel_number: 1 + filter_wheel_delay: .030 # in seconds + available_filters: + FRFP - BLP01-664R-25: 0 + RFP - FF01-598/25-25: 1 + GFP - 527/20: 2 + GFPRFP - ZET488/561m: 3 + Empty-Alignment: 4 + Blocked2: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PCIe-6738/port1/line2 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIe-6738/ao5 + min: 0 + max: 5 + type: Obis + index: 0 + delay_percent: 10 + pulse_percent: 100 + - wavelength: 561 + onoff: + hardware: + name: daq + type: NI + channel: PCIe-6738/port1/line3 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIe-6738/ao11 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 100 + +gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.200 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 + confocal_projection: + scanrange: + min: 0 + max: 600 + step: 1 + offset_start: + min: -300 + max: 300 + step: 0.1 + offset_end: + min: -300 + max: 300 + step: 0.1 + n_plane: + min: 1 + max: 200 + step: 1 diff --git a/docs/source/user_guide/hardware/configurations_archive/configuration_biofrontiers.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_biofrontiers.yaml new file mode 100644 index 000000000..22e64653c --- /dev/null +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_biofrontiers.yaml @@ -0,0 +1,336 @@ +# Specify all necessary information to find and connect to each hardware +# device that will be used on any of the scopes. +hardware: + daq: + type: NI #SyntheticDAQ or NI + camera: + - + type: HamamatsuOrca + serial_number: 000646 + + filter_wheel: + type: ASI #SyntheticFilterWheel or ASI + port: COM13 + baudrate: 115200 + number_of_wheels: 1 + + stage: + - + type: ASI + port: COM13 + baudrate: 115200 + serial_number: 123456789 + - + type: GalvoNIStage + serial_number: 987654321 + timeout: 0.25 + baudrate: 9600 + stages: None + - + type: SyntheticStage + serial_number: 123 + timeout: 0.25 + baudrate: 9600 + stages: None + zoom: + type: SyntheticZoom + servo_id: 1 + port: COM18 + baudrate: 1000000 + +microscopes: + OPM: + daq: + hardware: + name: daq + type: NI + sample_rate: 100000 + sweep_time: 0.2 + master_trigger_out_line: PXI6723/port0/line1 + camera_trigger_out_line: /PXI6723/ctr0 + trigger_source: /PXI6723/PFI0 + laser_port_switcher: PXI6723/port0/line0 + laser_switch_state: False + + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 000646 + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 2.0 + delay_percent: 10 + pulse_percent: 1 + x_pixels_step: 4 + y_pixels_step: 4 + x_pixels_min: 4 + y_pixels_min: 4 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + flip_x: False + flip_y: False + + remote_focus_device: + hardware: + name: daq + type: SyntheticRemoteFocus + channel: PXI6723/ao2 + min: 0 + max: 5 + delay_percent: 7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 2.5 + amplitude: 0.7 + offset: 2.3 + smoothing: 0.0 + + galvo: + - + hardware: + name: daq + type: NI + channel: PXI6723/ao0 + min: -10 + max: 10 + waveform: sine + frequency: 99.9 + amplitude: 2.5 + offset: 0.5 + duty_cycle: 50 + phase: 1.57079 + + filter_wheel: + hardware: + name: filter_wheel + type: ASI + wheel_number: 1 + filter_wheel_delay: .030 + available_filters: + Empty-Alignment: 0 + GFP - FF01-515/30-32: 1 + RFP - FF01-595/31-32: 2 + Far-Red - BLP01-647R/31-32: 3 + Blocked1: 4 + Blocked2: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + + stage: + hardware: + - + name: ASI + type: ASI + serial_number: 123456789 + axes: [x, y, f] + axes_mapping: [X, Y, Z] + volts_per_micron: None + axes_channels: None + max: None + min: None + - + name: GalvoNIStage + type: GalvoNIStage + serial_number: 987654321 + axes: [z] + axes_mapping: [ PXI6723/ao1 ] + volts_per_micron: 0.05*x + max: 10 + min: -10 + - + name: SyntheticStage + type: SyntheticStage + serial_number: 123 + axes: [theta] + axes_mapping: [theta] + max: 360 + min: 0 + joystick_axes: [x, y, z] + x_max: 100000 + x_min: -100000 + y_max: 100000 + y_min: -100000 + z_max: 100000 + z_min: -100000 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + x_step: 500 + y_step: 500 + z_step: 500 + theta_step: 30 + f_step: 500 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + + flip_x: False + flip_y: False + flip_z: False + + zoom: + hardware: + name: zoom + type: SyntheticZoom + servo_id: 1 + position: + 0.63x: 0 + 1x: 627 + 2x: 1711 + 3x: 2301 + 4x: 2710 + 5x: 3079 + 6x: 3383 + pixel_size: + 0.63x: 9.7 + 1x: 6.38 + 2x: 3.14 + 3x: 2.12 + 4x: 1.609 + 5x: 1.255 + 6x: 1.044 + stage_positions: + BABB: + f: + 0.63x: 0 + 1x: 1 + 2x: 2 + 3x: 3 + 4x: 4 + 5x: 5 + 6x: 6 + + shutter: + hardware: + name: daq + type: SyntheticShutter #NI + channel: PXI6723/port0/line0 + min: 0 + max: 5 + + lasers: + - wavelength: 405 + onoff: + hardware: + name: daq + type: NI + channel: PCI6321/port0/line3 + min: 0 + max: 5 + power: #analog + hardware: + name: daq + type: SyntheticLaser + channel: PCI6321/ao1 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + + - wavelength: 488 + onoff: #digital + hardware: + name: daq + type: NI + channel: PCI6321/port0/line5 + min: 0 + max: 5 + power: #analog + hardware: + name: daq + type: SyntheticLaser + channel: PCI6321/ao0 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + + - wavelength: 561 + onoff: + hardware: + name: daq + type: NI + channel: PCI6321/port0/line7 + min: 0 + max: 5 + power: #analog + hardware: + name: daq + type: SyntheticLaser + channel: PCI6321/ao1 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 87 + + - wavelength: 640 + onoff: #digital + hardware: + name: daq + type: NI + channel: PCI6321/port0/line1 + min: 0 + max: 5 + power: #analog + hardware: + name: daq + type: SyntheticLaser + channel: PCI6321/ao2 + min: 0 + max: 5 + type: LuxX + index: 2 + delay_percent: 10 + pulse_percent: 87 + +gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.100 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 diff --git a/docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv1.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv1.yaml new file mode 100644 index 000000000..3942f8bcd --- /dev/null +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv1.yaml @@ -0,0 +1,333 @@ +hardware: + daq: + type: NI + camera: + - + type: HamamatsuOrca + serial_number: 000420 + filter_wheel: + type: SutterFilterWheel + port: COM34 + baudrate: 9600 + number_of_wheels: 1 + stage: + - + type: MP285 + port: COM2 + timeout: 0.25 + baudrate: 9600 + serial_number: 0000 + stages: None + - + type: syntheticstage + port: COM9999 + timeout: 0.25 + baudrate: 9600 + serial_number: 0000 + stages: None + - + type: GalvoNIStage + port: COM9999 + timeout: 0.25 + baudrate: 9600 + serial_number: 0000 + stages: None + zoom: + type: synthetic + servo_id: 1 + port: COM18 + baudrate: 1000000 + +microscopes: + CTASLMv1: + daq: + hardware: + name: daq + type: NI + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: PCI6738/port0/line1 + camera_trigger_out_line: /PCI6738/ctr0 + trigger_source: /PCI6738/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PCI6738/port0/line0 + laser_switch_state: False + + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 000420 + x_pixels: 2048.0 + y_pixels: 2048.0 + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet + readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 1.0 + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 2 #10 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + remote_focus_device: + hardware: + name: remote_focus + type: EquipmentSolutions # NI + channel: PCI6738/ao2 #45/46 + comport: COM1 + min: -5 + max: 5 + delay_percent: 7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 2.5 + amplitude: 0.7 + offset: 2.3 + smoothing: 0.0 + galvo: + - + hardware: + name: daq + type: NI + channel: PCI6738/ao0 #10/11 + min: -5 + max: 5 + waveform: sawtooth + frequency: 99.9 + amplitude: 2.5 + offset: 0.5 + duty_cycle: 50 + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + name: filter_wheel + type: SutterFilterWheel + wheel_number: 1 + filter_wheel_delay: .030 # in seconds + available_filters: + 445-20: 6 + 525-30: 0 + 550-49: 9 # switched + 600-53: 7 + 665LP: 8 + EMPTY: 1 + BLOCKED1: 2 + BLOCKED2: 3 + BLOCKED3: 4 + BLOCKED4: 5 + # 665LP: 0 + # 550-49: 1 + # 525-30: 2 + # 445-20: 3 + # Blocked1: 4 + # Blocked2: 5 + # Blocked3: 6 + # Blocked4: 7 + # Blocked5: 8 + # Blocked6: 9 + stage: + hardware: + - + name: stage1 + type: MP285 + serial_number: 0000 + axes: [y, x, f] + axes_mapping: [z, y, x] + volts_per_micron: None + axes_channels: None + max: 25000 + min: 0 + - + name: stage2 + type: syntheticstage + serial_number: 0000 + axes: [theta] + axes_mapping: [theta] + volts_per_micron: PCI6738/ao0 + # axes_channels: f + max: 360 + min: 0 + - + name: stage3 + type: GalvoNIStage + serial_number: 0000 + axes: [z] + axes_mapping: [PCI6738/ao6] + volts_per_micron: 0.02*x + max: 10 + min: 0 + # joystick_axes: [x, y, f] + x_max: 12500 + x_min: -12500 + y_max: 12500 + y_min: -12500 + z_max: 500 + z_min: 0 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + + x_step: 500 + y_step: 500 + z_step: 5 + theta_step: 30 + f_step: 500 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + zoom: + hardware: + name: zoom + type: synthetic + servo_id: 1 + position: + 16X: 0 + pixel_size: + 16X: 0.425 + stage_positions: + BABB: + f: + 16X: 0 + shutter: + hardware: + name: daq + type: synthetic + channel: PCI6738/port0/line10 + min: 0 + max: 5 + lasers: + - wavelength: 642 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line5 # 38/35 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao8 #16/50 #ao1 # 44/11 + min: 0 + max: 5 + type: Obis + index: 0 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 561 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line2 # 5/39 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao9 #17/50 #ao3 # 12/46 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line3 # 6/39 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao10 #51/50 #ao4 13/14 + min: 0 + max: 5 + type: Obis + index: 2 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 405 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line4 # 40/41 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao11 #52/18 #ao5 #47/14 + min: 0 + max: 5 + type: Obis + index: 2 + delay_percent: 10 + pulse_percent: 87 + +gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.100 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 diff --git a/docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv2.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv2.yaml new file mode 100644 index 000000000..798b515fd --- /dev/null +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv2.yaml @@ -0,0 +1,312 @@ +# Specify all necessary information to find and connect to each hardware +# device that will be used on any of the scopes. +hardware: + daq: + type: NI + camera: + - + type: HamamatsuOrca + serial_number: 302153 + filter_wheel: + type: SutterFilterWheel + port: COM10 + baudrate: 9600 + number_of_wheels: 1 + stage: + - + type: MP285 + port: COM2 + timeout: 0.25 + baudrate: 9600 + serial_number: 0000 + stages: None + - + type: syntheticstage + port: COM9999 + timeout: 0.25 + baudrate: 9600 + serial_number: 0000 + stages: None + - + type: GalvoNIStage + port: COM9999 + timeout: 0.25 + baudrate: 9600 + serial_number: 0000 + stages: None + zoom: + type: synthetic + servo_id: 1 + port: COM18 + baudrate: 1000000 + +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + CTASLMv2: + daq: + hardware: + name: daq + type: NI + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: PCI6738/port0/line1 #3 + camera_trigger_out_line: /PCI6738/ctr0 #9/42 + trigger_source: /PCI6738/PFI0 #4 + + # Digital Laser Outputs + laser_port_switcher: PCI6738/port0/line0 + laser_switch_state: False + + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 302153 + x_pixels: 2048.0 + y_pixels: 2048.0 + flip_x: True + flip_y: False + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet + readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 1.0 + binning: 1x1 + readout_speed: 2.0 + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 20 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + x_pixels_step: 4 + y_pixels_step: 4 + x_pixels_min: 4 + y_pixels_min: 4 + remote_focus_device: + hardware: + name: remote_focus + type: EquipmentSolutions # NI + channel: PCI6738/ao2 #45/46 + comport: COM7 + min: -5 + max: 5 + delay_percent: 7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 5.0 + amplitude: 0.7 + offset: 2.3 + smoothing: 0.0 + galvo: + - + hardware: + name: daq + type: NI + channel: PCI6738/ao0 #10/11 + min: -5 + max: 5 + waveform: sawtooth + frequency: 99.9 + amplitude: 2.5 + offset: 0.5 + duty_cycle: 50 + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + name: filter_wheel + type: SutterFilterWheel + wheel_number: 1 + filter_wheel_delay: .030 # in seconds + available_filters: + Empty-1: 0 + 525-30: 1 + 600-52: 2 + 670-30: 3 + 647-LP: 4 + Empty-2: 5 + Empty-3: 6 + Empty-4: 7 + stage: + hardware: + - + name: stage1 + type: MP285 + serial_number: 0000 + axes: [y, x, f] + axes_mapping: [z, y, x] + volts_per_micron: None + axes_channels: None + max: 25000 + min: 0 + - + name: stage2 + type: syntheticstage + serial_number: 0000 + axes: [theta] + axes_mapping: [theta] + max: 360 + min: 0 + - + name: stage3 + type: GalvoNIStage + serial_number: 0000 + axes: [z] + axes_mapping: [PCI6738/ao6] #48/49 + volts_per_micron: 0.05*x + max: 10 + min: 0 + distance_threshold: 20 + settle_duration_ms: 100 + x_max: 12500 + x_min: -12500 + y_max: 12500 + y_min: -12500 + z_max: 200 + z_min: 0 + f_max: 12500 + f_min: -12500 + theta_max: 360 + theta_min: 0 + + x_step: 500 + y_step: 500 + z_step: 5 + theta_step: 30 + f_step: 500 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + coupled_axes: + z: f + zoom: + hardware: + name: zoom + type: synthetic + servo_id: 1 + position: + 36X: 0 + pixel_size: + 36X: 0.180 + stage_positions: + BABB: + f: + 36X: 0 + shutter: + hardware: + name: daq + type: SyntheticShutter + channel: PCI6738/port0/line10 + min: 0 + max: 5 + lasers: + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line5 # 7/41 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao8 #1 # 44/11 + min: 0 + max: 5 + type: Obis + index: 0 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 561 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line2 # 5/39 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao9 # 3 # 12/46 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 647 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line3 # 6/39 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao10 # 4 # 13/14 + min: 0 + max: 5 + type: Obis + index: 2 + delay_percent: 10 + pulse_percent: 87 + +gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.100 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 diff --git a/docs/source/user_guide/hardware/configurations_archive/configuration_mesospimbt.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_mesospimbt.yaml new file mode 100644 index 000000000..a3b0c17bd --- /dev/null +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_mesospimbt.yaml @@ -0,0 +1,300 @@ +# Specify all necessary information to find and connect to each hardware +# device that will be used on any of the scopes. +hardware: + daq: + type: NI + camera: + - + type: HamamatsuOrca # HamamatsuOrca + serial_number: 003209 + filter_wheel: + type: ASI #SyntheticFilterWheel #SutterFilterWheel + port: COM8 + baudrate: 115200 + number_of_wheels: 1 + stage: + - + type: ASI + port: COM8 + timeout: 0.25 + baudrate: 115200 + serial_number: 0000 + stages: None + zoom: + type: SyntheticZoom + servo_id: 1 + port: COM18 + baudrate: 1000000 + +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + BTMesoSPIM: + daq: + hardware: + name: daq + type: NI + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: PCI6738/port0/line1 #3 + camera_trigger_out_line: /PCI6738/ctr0 #9/42 + trigger_source: /PCI6738/PFI0 #4 + + # Digital Laser Outputs + laser_port_switcher: PCI6738/port0/line0 + laser_switch_state: False + + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 003209 + x_pixels: 2048.0 + y_pixels: 2048.0 + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet + readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 1.0 #2.0 + binning: 1x1 + readout_speed: 2.0 + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 10 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + flip_x: True + flip_y: False + remote_focus_device: + hardware: + name: remote_focus + type: NI # SyntheticRemoteFocus #EquipmentSolutions # NI + channel: PCI6738/ao2 #45/46 + comport: COM7 + min: 0 + max: 5 + delay_percent: 7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 2.5 + amplitude: 0.7 + offset: 2.3 + smoothing: 0.0 + galvo: + - + hardware: + name: daq # digitally scanned galvo + type: NI + channel: PCI6738/ao0 #10/11 + min: -5 + max: 5 + waveform: sawtooth + frequency: 99.9 + amplitude: 2.5 + offset: 0.5 + duty_cycle: 50 + phase: 1.57079 # pi/2 + + filter_wheel: + hardware: + name: filter_wheel + type: ASI #SyntheticFilterWheel #SutterFilterWheel + wheel_number: 1 + filter_wheel_delay: .030 # in seconds + available_filters: + 525-30: 0 + 600-37: 1 + 647LP: 2 + Empty1: 3 + Empty2: 4 + 670-30: 5 + Blocked2: 6 + Empty3: 7 + Blocked3: 8 + Blocked4: 9 + stage: + hardware: + - + name: stage + type: ASI + serial_number: 0000 + axes: [x, y, z, f, theta] + feedback_alignment: [88, 91, 91, 91, 85] + axes_mapping: [X, V, Z, Y, T] + volts_per_micron: None + axes_channels: None + max: 5 + min: 0 + + joystick_axes: [x, y, z, theta, f] + x_max: 125000 + x_min: -125000 + y_max: 125000 + y_min: -125000 + z_max: 50000 + z_min: -50000 + f_max: 1000000 + f_min: -1000000 + theta_max: 360000 + theta_min: -360000 + + flip_x: False + flip_y: False + flip_z: False + + x_step: 500 + y_step: 500 + z_step: 50 + theta_step: 30 + f_step: 500 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + zoom: + hardware: + name: zoom + type: SyntheticZoom + servo_id: 1 + position: + 5X: 0 + 4X: 0 + pixel_size: + 5X: 1.2 # 1.2 in BABB + 4X: 1.3 # 1.3 in BABB + stage_positions: + BABB: + f: + 5X: 0 + 4X: 0 + shutter: + hardware: + name: daq + type: SyntheticShutter + channel: PCI6738/port0/line10 + min: 0 + max: 5 + lasers: + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line5 # 7/41 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao8 # 1 # 44/11 + min: 0 + max: 5 + type: Obis + index: 0 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 561 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line2 # 5/39 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao9 # 3 # 12/46 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 638 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line3 # 6/39 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao10 # 4 # 13/14 + min: 0 + max: 5 + type: Obis + index: 2 + delay_percent: 10 + pulse_percent: 87 + +gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.100 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 + + +# BDVParameters: +# # The following parameters are used to configure the BigDataViewer +# # visualization. See the BigDataViewer documentation for more details. +# # https://imagej.net/BigDataViewer +# shear: +# shear_data: True +# shear_dimension: YZ # XZ, YZ, or XY +# shear_angle: 45 +# rotate: +# rotate_data: False +# rotate_dimension: X # X, Y, Z +# rotate_angle: 0 diff --git a/docs/source/user_guide/hardware/configurations_archive/configuration_multiscale.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_multiscale.yaml new file mode 100644 index 000000000..b5d37e9f0 --- /dev/null +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_multiscale.yaml @@ -0,0 +1,566 @@ +# Specify all necessary information to find and connect to each hardware +# device that will be used on any of the scopes. +hardware: + daq: + type: NI + camera: + - + type: HamamatsuOrca + serial_number: 500502 + - + type: HamamatsuOrca + serial_number: 302352 + filter_wheel: + type: SutterFilterWheel + port: COM2 + baudrate: 9600 + number_of_wheels: 2 + stage: + - + type: PI + controllername: C-884 + stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE + refmode: FRF FRF FRF FRF FRF FRF + serial_number: 119060508 + - + type: PI + controllername: E-709 + stages: P-726.1CD + refmode: ATZ + serial_number: 0116049747 + # - + # type: MCL + # serial_number: 4011 + zoom: + type: DynamixelZoom + servo_id: 1 + port: COM9 + baudrate: 1000000 + +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + Mesoscale: + daq: + hardware: + name: daq + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: PXI6259/port0/line1 + camera_trigger_out_line: /PXI6259/ctr0 + trigger_source: /PXI6259/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PXI6733/port0/line0 + laser_switch_state: False + + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 302352 + x_pixels: 2048.0 + y_pixels: 2048.0 + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. + readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 0x7FFFFFFF + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 10 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + flip_x: False + flip_y: False + x_pixels_step: 4 + y_pixels_step: 4 + x_pixels_min: 4 + y_pixels_min: 4 + + remote_focus_device: + hardware: + name: daq + type: NI + channel: PXI6259/ao2 + min: -5 + max: 5 + # Optotune EL-16-40-TC-VIS-5D-1-C + delay_percent: 7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 2.5 + amplitude: 0.7 + offset: 2.3 + smoothing: 0.0 + galvo: + - + hardware: + name: daq + type: NI + channel: PXI6259/ao0 + min: -5 + max: 5 + frequency: 99.9 + amplitude: 2.5 + offset: 0 + duty_cycle: 50 + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + name: filter_wheel + type: SutterFilterWheel + wheel_number: 1 + filter_wheel_delay: .030 # in seconds + available_filters: + Empty-Alignment: 5 + GFP - FF01-515/30-32: 6 + RFP - FF01-595/31-32: 7 + Far-Red - BLP01-647R/31-32: 8 + Blocked1: 4 + Blocked2: 0 + Blocked3: 1 + Blocked4: 2 + Blocked5: 3 + Blocked6: 9 + stage: + hardware: + name: stage + type: PI + serial_number: 119060508 + axes: [x, y, z, theta, f] + y_unload_position: 10000 + y_load_position: 90000 + + startfocus: 75000 + x_max: 100000 + x_min: -100000 + y_max: 100000 + y_min: -100000 + z_max: 100000 + z_min: -100000 + f_max: 100000 + f_min: 0 + theta_max: 360 + theta_min: 0 + + x_rot_position: 2000 + y_rot_position: 2000 + z_rot_position: 2000 + + x_step: 500 + y_step: 500 + z_step: 500 + theta_step: 30 + f_step: 500 + + position: + x_pos: 25250 + y_pos: 40000 + z_pos: 40000 + f_pos: 70000 + theta_pos: 0 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + + flip_x: False + flip_y: False + flip_z: False + zoom: + hardware: + name: zoom + type: DynamixelZoom + servo_id: 1 + position: + 0.63x: 0 + 1x: 627 + 2x: 1711 + 3x: 2301 + 4x: 2710 + 5x: 3079 + 6x: 3383 + pixel_size: + 0.63x: 9.7 + 1x: 6.38 + 2x: 3.14 + 3x: 2.12 + 4x: 1.609 + 5x: 1.255 + 6x: 1.044 + stage_positions: + BABB: + f: + 0.63x: 67410 + 1x: 70775 + 2x: 72455 + 3x: 72710 + 4x: 72795 + 5x: 72850 + 6x: 72880 + CUBIC: + f: + 0.63x: 67410 + 1x: 70775 + 2x: 72455 + 3x: 72710 + 4x: 72795 + 5x: 72850 + 6x: 72880 + shutter: + hardware: + name: daq + type: NI + channel: PXI6259/port0/line0 + min: 0 + max: 5 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line2 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao0 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 562 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line3 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao1 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 642 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line4 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao2 + min: 0 + max: 5 + type: LuxX + index: 2 + delay_percent: 10 + pulse_percent: 87 + + Nanoscale: + daq: + hardware: + name: daq + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: PXI6259/port0/line1 + camera_trigger_out_line: /PXI6259/ctr0 + trigger_source: /PXI6259/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PXI6733/port0/line0 + laser_switch_state: True + + camera: + hardware: + type: HamamatsuOrca + serial_number: 500502 + x_pixels: 2304.0 + y_pixels: 2304.0 + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. + readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 100 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 0x7FFFFFFF + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 20 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + x_pixels_step: 4 + y_pixels_step: 4 + x_pixels_min: 4 + y_pixels_min: 4 + + remote_focus_device: + hardware: + name: daq + type: EquipmentSolutions #NI + channel: PXI6259/ao3 + comport: COM6 + min: -5 + max: 5 + # ThorLabs BLINK + delay_percent: 0 + ramp_rising_percent: 85 + ramp_falling_percent: 2.5 + amplitude: 0.7 + offset: 2.3 + smoothing: 0.0 + # waveform: trig_remote_focus_ramp + galvo: + - + hardware: + name: daq + type: NI + channel: PXI6259/ao1 + min: -5 + max: 5 + offset: 0.5 + filter_wheel: + hardware: + name: filter_wheel + type: SutterFilterWheel + wheel_number: 2 + filter_wheel_delay: .030 # in seconds + available_filters: + Empty-Alignment: 0 + GFP - FF01-515/30-32: 1 + RFP - FF01-595/31-32: 2 + Far-Red - BLP01-647R/31-32: 3 + Blocked1: 4 + Blocked2: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + stage: + hardware: + - + name: stage + type: PI + serial_number: 119060508 + axes: [x, y, z, theta] + - + name: stage2 + type: PI + serial_number: 0116049747 + axes: [f] + # - + # name: stage2 + # type: MCL + # serial_number: 4011 + # axes: [f] + y_unload_position: 10000 + y_load_position: 90000 + + startfocus: 50 + x_max: 100000 + x_min: -100000 + y_max: 100000 + y_min: -100000 + z_max: 100000 + z_min: -100000 + f_max: 100000 + f_min: 0 + theta_max: 360 + theta_min: 0 + + x_rot_position: 2000 + y_rot_position: 2000 + z_rot_position: 2000 + + x_step: 500 + y_step: 500 + z_step: 500 + theta_step: 30 + f_step: 5 + + position: + x_pos: 25250 + y_pos: 40000 + z_pos: 40000 + f_pos: 0 + theta_pos: 0 + velocity: 1000 + + x_offset: 500 # -1000 + y_offset: 300 # -70 + z_offset: -18396 # -17842 + # x_offset: 0 + # y_offset: 0 + # z_offset: 0 + f_offset: 0 + theta_offset: 0 + zoom: + position: + N/A: 0 + pixel_size: + N/A: 0.167 + shutter: + hardware: + name: daq + type: NI + channel: PXI6259/port2/line0 + shutter_min_do: 0 + shutter_max_do: 5 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line2 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao0 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 562 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line3 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao1 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 642 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line4 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao2 + min: 0 + max: 5 + type: LuxX + index: 2 + delay_percent: 10 + pulse_percent: 87 + +gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.200 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 diff --git a/docs/source/user_guide/hardware/configurations_archive/configuration_spectral_tirf.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_spectral_tirf.yaml new file mode 100644 index 000000000..2c07945f4 --- /dev/null +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_spectral_tirf.yaml @@ -0,0 +1,386 @@ +# Specify all necessary information to find and connect to each hardware +# device that will be used on any of the scopes. +hardware: + daq: + type: NI + camera: + - + type: HamamatsuOrca + serial_number: 001480 +# - +# type: HamamatsuOrca +# serial_number: 001480 + filter_wheel: + type: ASI + port: COM17 + baudrate: 115200 + number_of_wheels: 2 + stage: + - + type: ASI + port: COM17 + baudrate: 115200 + controllername: 'C-884' + stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE + refmode: FRF FRF FRF FRF FRF FRF + serial_number: 119060508 + - + type: SyntheticStage + port: COM17 + baudrate: 115200 + controllername: 'C-884' + stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE + refmode: FRF FRF FRF FRF FRF FRF + serial_number: 119060508 + zoom: + type: synthetic + servo_id: 1 + port: COM18 + baudrate: 1000000 + +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + SpectralTIRF: + daq: + hardware: + name: daq + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: PCIE6738/port0/line1 + camera_trigger_out_line: /PCIE6738/ctr0 + trigger_source: /PCIE6738/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PCIE6738/port0/line0 + laser_switch_state: False + + camera: + hardware: + name: camera + type: HamamatsuOrca + serial_number: 001480 + x_pixels: 2048.0 + y_pixels: 2048.0 + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet + readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 1.0 + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 10 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + remote_focus_device: + hardware: + name: daq + type: NI + channel: PCIE6738/ao2 + min: 0 + max: 5 + # Optotune EL-16-40-TC-VIS-5D-1-C + delay_percent: 7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 2.5 + amplitude: 0.7 + offset: 2.3 + galvo: + - + hardware: + name: daq + type: NI + channel: PCIE6738/ao2 #galvo-x + min: -5 + max: 5 + waveform: sine + frequency: 99.9 + period: 10 + amplitude: 2.5 + offset: 0 + duty_cycle: 50 + phase: 0 + - + hardware: + name: daq + type: NI + channel: PCIE6738/ao3 #galvo-y + min: -5 + max: 5 + waveform: sine + frequency: 99.9 + period: 10 + amplitude: 2.5 + offset: 0 + duty_cycle: 50 + phase: 90 + filter_wheel: + hardware: + name: emission + type: ASI + wheel_number: 1 + filter_wheel_delay: .030 # in seconds + available_filters: + CFP - FF01-482/35: 0 + YFP - FF01-250/15: 1 + Blocked 1: 2 + Empty Position 1: 3 + Blocked 2: 4 + Blocked 3: 5 + Empty Position 2: 6 + Blocked 4: 7 + Blocked 5: 8 + Blocked 6: 9 + stage: + hardware: + - + name: ASI + type: ASI + serial_number: 119060508 + axes: [x, y, z] + axes_mapping: [x, y, z] + volts_per_micron: None + axes_channels: None + max: None + min: None + - + name: Synthetic + type: SyntheticStage + serial_number: 119060508 + axes: [theta, f] + axes_mapping: [theta, f] + volts_per_micron: None + axes_channels: None + max: None + min: None + + x_max: 50000 + x_min: -50000 + y_max: 50000 + y_min: -50000 + z_max: 50000 + z_min: -50000 + f_max: 50000 + f_min: 0 + theta_max: 360 + theta_min: 0 + + x_step: 500 + y_step: 500 + z_step: 500 + theta_step: 30 + f_step: 500 + velocity: 1000 + + zoom: + hardware: + name: zoom + type: synthetic + servo_id: 1 + position: + 110x: 0 + pixel_size: + 110x: 0.059 + shutter: + hardware: + name: daq + type: synthetic + channel: PCIE6738/port0/line0 + min: 0 + max: 5 + lasers: + - wavelength: 445 + onoff: + hardware: + name: daq + type: NI + channel: PCIE6738/ao5 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIE6738/ao4 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PCIE6738/ao7 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIE6738/ao6 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + + - wavelength: 514 + onoff: + hardware: + name: daq + type: NI + channel: PCIE6738/ao9 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIE6738/ao8 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 532 + onoff: + hardware: + name: daq + type: NI + channel: PCIE6738/ao11 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIE6738/ao10 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + + - wavelength: 562 + onoff: + hardware: + name: daq + type: NI + channel: PCIE6738/ao13 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIE6738/ao12 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 87 + + - wavelength: 592 + onoff: + hardware: + name: daq + type: NI + channel: PCIE6738/ao15 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIE6738/ao14 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + + + - wavelength: 642 + onoff: + hardware: + name: daq + type: NI + channel: PCIE6738/ao17 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCIE6738/ao16 + min: 0 + max: 5 + type: LuxX + index: 2 + delay_percent: 10 + pulse_percent: 87 + +gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.200 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 diff --git a/docs/source/user_guide/hardware/configurations_archive/configuration_upright.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_upright.yaml new file mode 100644 index 000000000..d64f0fcea --- /dev/null +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_upright.yaml @@ -0,0 +1,583 @@ +# Specify all necessary information to find and connect to each hardware +# device that will be used on any of the scopes. +hardware: + daq: + type: NI + camera: + - + type: HamamatsuOrcaLightning #SyntheticCamera + serial_number: 000035 + - + type: Photometrics + camera_connection: PMPCIECam00 + serial_number: 1 + filter_wheel: + type: ASI #SyntheticFilterWheel + port: COM8 + baudrate: 115200 + number_of_wheels: 2 + stage: + - + type: ASI + serial_number: 123456789 + port: COM8 + baudrate: 115200 + - + type: SyntheticStage + serial_number: 987654321 + zoom: + type: SyntheticZoom + servo_id: 0 + port: 0 + baudrate: 0 + +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + Nanoscale: + daq: + hardware: + name: daq + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: PXI6259/port0/line1 + camera_trigger_out_line: /PXI6259/ctr0 + trigger_source: /PXI6259/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PXI6733/port0/line1 + laser_switch_state: False + + camera: + hardware: + name: camera + type: HamamatsuOrcaLightning #SyntheticCamera + serial_number: 000035 + x_pixels: 4608.0 + y_pixels: 2592.0 + pixel_size_in_microns: 5.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. + readout_direction: Bottom-to-Top # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 0x7FFFFFFF + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 30 #30 #25 #8 #5.0 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + remote_focus_device: + hardware: + name: daq + type: NI + channel: PXI6259/ao3 + min: -0.5 + max: 0.5 + # Optotune EL-16-40-TC-VIS-5D-1-C + delay_percent: 0 #1.5 #7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 1.5 #2.5 + amplitude: 0.7 + offset: 2.3 + galvo: + - + hardware: + name: daq + type: NI + channel: PXI6259/ao1 + min: 0 + max: 5 + frequency: 99.9 + amplitude: 2.5 + offset: 0 + duty_cycle: 50 + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + name: filter_wheel + type: ASI #SyntheticFilterWheel + wheel_number: 2 + filter_wheel_delay: .030 # in seconds + available_filters: + BLU - FF01-442/42-32: 0 + GFP - FF01-515/30-32: 1 + RFP - FF01-595/31-32: 2 + Far-Red - FF01-670/30-32: 3 + Blocked1: 4 + Empty: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + stage: + hardware: + - + name: stage + type: ASI + serial_number: 123456789 + axes: [x, y, z, f] # Software + axes_mapping: [M, Y, X, Z] # M Shear axis mapping + #axes_mapping: [M, X, Y, Z] #testing y + #axes_mapping: [M, X, Z, Y] #testing Z + # axes_mapping: [Z, Y, X, M] + feedback_alignment: [90, 90, 90, 90] + + - + name: stage + type: SyntheticStage + serial_number: 987654321 + axes: [theta] + + startfocus: -16000 + x_max: 0 # Swapped from Z + x_min: -22708.3 # Swapped from Z + y_max: 1361.3 + y_min: -3496.3 + z_max: 3521.9 # Swapped from X + z_min: -4551.1 # Swapped from X + f_max: 3233.0 #=m + f_min: -9382.0 #=m + theta_max: 360 + theta_min: 0 + external_trigger: /PXI6259/PFI1 + # joystick_axes: [x, y, z, f] + + x_rot_position: 2000 + y_rot_position: 2000 + z_rot_position: 2000 + + x_step: 50 + y_step: 50 + z_step: 50 + theta_step: 30 + f_step: 50 + + position: + x_pos: 5 # Swapped from Z initial stage position + y_pos: 1 + z_pos: 1 # Swapped from X + f_pos: 0 + theta_pos: 0 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + zoom: + hardware: + name: zoom + type: SyntheticZoom + servo_id: 1 + position: + N/A: 0 + pixel_size: + N/A: 0.168 + shutter: + hardware: + name: daq + type: NI + channel: PXI6259/port0/line0 + min: 0 + max: 5 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 405 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line2 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao0 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line3 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao1 + min: 0 + max: 5 + type: LuxX + index: 1 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 561 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line4 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao2 + min: 0 + max: 5 + type: Obis + index: 2 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 642 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line5 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao3 + min: 0 + max: 5 + type: LuxX + index: 3 + delay_percent: 10 + pulse_percent: 87 + - wavelength: LED + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao4 + min: 0 + max: 5 + index: 4 + + Macroscale: + daq: + hardware: + name: daq + type: NI + + # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. + # Sampling rate in Hz + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: PXI6259/port0/line1 + camera_trigger_out_line: /PXI6259/ctr0 + trigger_source: /PXI6259/PFI0 + + # Digital Laser Outputs + laser_port_switcher: PXI6733/port0/line1 + laser_switch_state: True + + camera: + hardware: + name: camera + type: Photometrics #SyntheticCamera + serial_number: 1 + x_pixels: 5056.0 + y_pixels: 2960.0 + pixel_size_in_microns: 4.25 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. + readout_direction: Bottom-to-Top # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 608 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 0x7FFFFFFF + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 25 #8 #5.0 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 + remote_focus_device: + hardware: + name: daq + type: NI + channel: PXI6259/ao3 + min: -0.5 + max: 0.5 + # Optotune EL-16-40-TC-VIS-5D-1-C + delay_percent: 0 #1.5 #7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 2.5 + amplitude: 0.7 + offset: 2.3 + galvo: + - + hardware: + name: daq + type: NI + channel: PXI6259/ao1 + min: 0 + max: 5 + frequency: 99.9 + amplitude: 2.5 + offset: 0 + duty_cycle: 50 + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + name: filter_wheel + type: ASI #SyntheticFilterWheel + wheel_number: 2 + filter_wheel_delay: .030 # in seconds + available_filters: + BLU - FF01-442/42-32: 0 + GFP - FF01-515/30-32: 1 + RFP - FF01-595/31-32: 2 + Far-Red - FF01-670/30-32: 3 + Blocked1: 4 + Empty: 5 + Blocked3: 6 + Blocked4: 7 + Blocked5: 8 + Blocked6: 9 + stage: + hardware: + - + name: stage + type: ASI + serial_number: 123456789 + axes: [x, y, z, f] #Software + # axes_mapping: [M, Y, X, Z] + axes_mapping: [M, Y, X, Z] #M shear + feedback_alignment: [90, 90, 90, 90] + + - + name: stage + type: SyntheticStage + serial_number: 987654321 + axes: [theta] + + startfocus: -16000 + x_max: 0 # Swapped from Z + x_min: -22708.3 # Swapped from Z + y_max: 1361.3 + y_min: -3496.3 + z_max: 3521.9 # Swapped from X + z_min: -4651.1 # Swapped from X + f_max: 3233.0 #=m + f_min: -9382.0 #=m + theta_max: 360 + theta_min: 0 + external_trigger: /PXI6259/PFI1 + # joystick_axes: [x, y, z, f] + + x_rot_position: 2000 + y_rot_position: 2000 + z_rot_position: 2000 + + x_step: 50 + y_step: 50 + z_step: 50 + theta_step: 30 + f_step: 50 + + position: + x_pos: 5 # Swapped from Z initial stage position + y_pos: 1 + z_pos: 1 # Swapped from X + f_pos: 0 + theta_pos: 0 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + f_offset: 0 + theta_offset: 0 + zoom: + hardware: + name: zoom + type: SyntheticZoom + servo_id: 1 + position: + N/A: 0 + pixel_size: + N/A: 1.06 + shutter: + hardware: + name: daq + type: NI + channel: PXI6259/port0/line0 + min: 0 + max: 5 + lasers: + # Omicron LightHub Ultra + # 488 and 640 are LuxX+ Lasers + # 561 is a Coherent OBIS Laser + # Digital Laser Outputs + - wavelength: 405 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line2 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao0 + min: 0 + max: 5 + type: LuxX + index: 0 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line3 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao1 + min: 0 + max: 5 + type: LuxX + index: 1 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 561 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line4 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao2 + min: 0 + max: 5 + type: Obis + index: 2 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 642 + onoff: + hardware: + name: daq + type: NI + channel: PXI6733/port0/line5 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao3 + min: 0 + max: 5 + type: LuxX + index: 3 + delay_percent: 10 + pulse_percent: 87 + - wavelength: LED + power: + hardware: + name: daq + type: NI + channel: PXI6733/ao4 + min: 0 + max: 5 + index: 4 + + +gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.1 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 diff --git a/docs/source/user_guide/hardware/configurations_archive/configuration_voodoo.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_voodoo.yaml new file mode 100644 index 000000000..db38d045b --- /dev/null +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_voodoo.yaml @@ -0,0 +1,388 @@ +# Specify all necessary information to find and connect to each hardware +# device that will be used on any of the scopes. +hardware: + daq: + type: NI + camera: + - + type: HamamatsuOrca + serial_number: 100803 +# - +# type: HamamatsuOrca +# serial_number: 003054 + filter_wheel: + type: SutterFilterWheel + port: COM1 + baudrate: 9600 + number_of_wheels: 1 + stage: + - + type: synthetic #MP285 + port: COM6 + timeout: 0.25 + baudrate: 9600 + serial_number: 0001 + stages: None + - + type: syntheticstage #syntheticstage + port: COM9999 + timeout: 0.25 + baudrate: 9600 + serial_number: 0000 + stages: None + - + type: GalvoNIStage + port: COM9999 + timeout: 0.25 + baudrate: 9600 + serial_number: 0000 + stages: None + zoom: + type: synthetic + servo_id: 1 + port: COM18 + baudrate: 1000000 + +# Only one microscope can be active in the GUI at a time, but all microscopes will be accessible +microscopes: + CTASLMv2: + daq: + hardware: + name: daq + type: NI + sample_rate: 100000 + sweep_time: 0.2 + + # triggers + master_trigger_out_line: PCI6738/port0/line1 #3 + camera_trigger_out_line: /PCI6738/ctr0 #9/42 + trigger_source: /PCI6738/PFI0 #4 + + camera: +# - + hardware: + name: camera + type: HamamatsuOrca + serial_number: 100803 + x_pixels: 2048.0 + y_pixels: 2048.0 + pixel_size_in_microns: 6.5 + subsampling: [1, 2, 4] + sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet + readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' + lightsheet_rolling_shutter_width: 50 + defect_correct_mode: 2.0 + binning: 1x1 + readout_speed: 2.0 + trigger_active: 1.0 + trigger_mode: 1.0 # external light-sheet mode + trigger_polarity: 2.0 # positive pulse + trigger_source: 2.0 # 2 = external, 3 = software. + exposure_time: 20 # Use milliseconds throughout. + delay_percent: 20 + pulse_percent: 1 + line_interval: 0.000075 + display_acquisition_subsampling: 4 + average_frame_rate: 4.969 + frames_to_average: 1 + exposure_time_range: + min: 1 + max: 1000 + step: 1 +# - +# hardware: +# name: camera +# type: HamamatsuOrca +# serial_number: 003054 +# x_pixels: 2048.0 +# y_pixels: 2048.0 +# pixel_size_in_microns: 6.5 +# subsampling: [1, 2, 4] +# sensor_mode: Normal # 12 for progressive, 1 for normal. Normal/Light-Sheet +# readout_direction: Top-to-Bottom # Top-to-Bottom', 'Bottom-to-Top' +# lightsheet_rolling_shutter_width: 608 +# defect_correct_mode: 2.0 +# binning: 1x1 +# readout_speed: 2.0 +# trigger_active: 1.0 +# trigger_mode: 1.0 # external light-sheet mode +# trigger_polarity: 2.0 # positive pulse +# trigger_source: 2.0 # 2 = external, 3 = software. +# exposure_time: 20 # Use milliseconds throughout. +# delay_percent: 20 +# pulse_percent: 1 +# line_interval: 0.000075 +# display_acquisition_subsampling: 4 +# display_acquisition_subsampling: 4 +# average_frame_rate: 4.969 +# frames_to_average: 1 +# exposure_time_range: +# min: 1 +# max: 1000 +# step: 1 + + remote_focus_device: + hardware: + name: remote_focus + type: NI #synthetic #EquipmentSolutions # NI + channel: PCI6738/ao2 #45/46 + comport: COM700 + min: -5 + max: 5 + delay_percent: 7.5 + ramp_rising_percent: 85 + ramp_falling_percent: 5.0 + amplitude: 0.03 + offset: 0.007 + smoothing: 0.0 + galvo: + - + hardware: + name: daq + type: NI + channel: PCI6738/ao0 #10/11 + min: -5 + max: 5 + waveform: sawtooth + frequency: 99.9 + amplitude: 2.5 + offset: 0.5 + duty_cycle: 50 + phase: 1.57079 # pi/2 + filter_wheel: + hardware: + name: filter_wheel + type: SutterFilterWheel + wheel_number: 1 + filter_wheel_delay: .030 # in seconds + available_filters: + 647-LP: 0 + 600-50: 1 + 525-50: 2 + 480-40: 3 + Empty-1: 4 + Empty-2: 5 + Empty-3: 6 + Empty-4: 7 + stage: + hardware: + - + name: stage1 + type: synthetic #MP285 + serial_number: 0001 + axes: [y, x, f] + axes_mapping: [z, y, x] + max: 25000 + min: 0 + - + name: stage2 + type: syntheticstage + serial_number: 0000 + axes: [theta] + axes_mapping: [theta] + max: 360 + min: 0 + - + name: PIFOC + type: GalvoNIStage + serial_number: 0000 + axes: [z] + axes_mapping: [PCI6738/ao6] #48/49 + volts_per_micron: 0.1*x + max: 10 + min: 0 + x_max: 12500 + x_min: -12500 + y_max: 12500 + y_min: -12500 + z_max: 200 + z_min: 0 + f_max: 12500 + f_min: -12500 + theta_max: 360 + theta_min: 0 + + x_step: 500 + y_step: 500 + z_step: 5 + theta_step: 30 + f_step: 500 + velocity: 1000 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + zoom: + hardware: + name: zoom + type: synthetic + servo_id: 1 + position: + 62.5X: 0.104 + pixel_size: + 62.5X: 0.104 + stage_positions: + BABB: + f: + 62.5X: 0 + shutter: + hardware: + name: daq + type: SyntheticShutter + channel: PCI6738/port0/line10 + min: 0 + max: 5 + lasers: + - wavelength: 405 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line5 # 7/41 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao8 # 16/50 + min: 0 + max: 5 + type: Obis + index: 0 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 445 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line2 # 5/39 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao9 # 17/50 + min: 0 + max: 5 + type: Obis + index: 1 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 488 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line3 # 6/39 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao10 # 51/50 + min: 0 + max: 5 + type: Obis + index: 2 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 514 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line4 #40/41 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao11 #52/18 + min: 0 + max: 5 + type: Obis + index: 2 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 561 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port1/line6 # 8/42 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao12 #53/20 + min: 0 + max: 5 + type: Obis + index: 2 + delay_percent: 10 + pulse_percent: 87 + - wavelength: 640 + onoff: + hardware: + name: daq + type: NI + channel: PCI6738/port0/line0 #9/42 + min: 0 + max: 5 + power: + hardware: + name: daq + type: NI + channel: PCI6738/ao13 #54/20 + min: 0 + max: 5 + type: Obis + index: 2 + delay_percent: 10 + pulse_percent: 87 +gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.100 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 diff --git a/docs/source/user_guide/hardware/daq.rst b/docs/source/user_guide/hardware/daq.rst new file mode 100644 index 000000000..32fd6ad90 --- /dev/null +++ b/docs/source/user_guide/hardware/daq.rst @@ -0,0 +1,170 @@ +====================== +Data Acquisition Cards +====================== + +Data acquisition cards deliver and receive analog and digital signals. +To acquire an image, the software calculates all of the analog and digital waveforms and +queues these waveforms on the data acquisition card. Upon receipt of a trigger (either from the software itself, +or an external piece of hardware), all +of the analog and digital signals are delivered in parallel. This provides +deterministic behavior on a per-frame basis, which is necessary for proper acquisition of light-sheet data. +It does not however provide us with deterministic behavior between image +frames, and some jitter in timing is anticipated. + +------------------ + +.. _hardware_ni: + +National Instruments (NI) +------------------------- +In principle, most NI-based data acquisition cards should work with the software, so long +as there are a sufficient number of analog and digital ports, and the sampling rate (typically 100 kHz) +is high enough per port. + +Prior to installing the card within +the computer, first install the `NI-DAQmx drivers `_. +Once installed, connect the PCIe or PXIe-based device to the computer. A functioning +system should be recognized by the operating system, and visible in the Windows Device +Manager as a **NI Data Acquisition Device**. + +.. note:: + + **navigate** has been tested with the following versions of the NI-DAQmx drivers: + + - 22.5.0 + - 22.8.0 + - 23.3.0 + - 23.8.0 + + +.. tip:: + + **The most important aspect is to wire up the breakout box properly.** + + To find the device pin outs for your NI-based data acquisition card, open NI + MAX, find the card under devices, right-click and select "device pinouts". + + Important: Should you use the SCB-68A breakout box, do not look at the pinout on + the back of the cover. This is misleading. You must look at the device pinouts in + NI MAX. + + +.. note:: + + For NI-based cards, ``port0/line1`` is the equivalent of ``P0.1``. + There are multiple pins for each PFIO, including source, out, gate, etc. You must + use the out terminal. + + +- Identify the device name in NI MAX, and change it if you would like. Common names are + ``Dev1``, ``Dev2``, etc. This name must correspond with the pinouts provided in the + configuration file. + +- Connect the ``master_trigger_out_line`` to the ``trigger_source`` with a direct wire, + commonly ``PXI6259/port0/line1`` and ``/PXI6259/PFI0``. In this example, the default name + for the device (e.g., ``Dev1``) has been changed to ``PXI6259``. + +- Connect the ``camera_trigger_out_line`` to the ``Ext. Trigger`` on the camera using + the ``CTR0Out`` pin. + +- These values must precisely match those in the configuration file. An example is provided below: + + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + daq: + hardware: + type: NI + sample_rate: 10000 + master_trigger_out_line: PXI6259/port0/line1 + camera_trigger_out_line: /PXI6259/ctr0 + trigger_source: /PXI6259/PFIO + laser_port_switcher: PXI6733/port0/line0 + laser_switch_state: False + +| + +------------------ + + +**navigate** has been tested with the following NI-based cards: + +PCIe/PXIe-6738 +""""""""""""""" + +The PCIe-6738 can only create one software-timed analog task for every four channels. +As such, the lasers much be attached to analog output ports outside of the banks (shown as solid lines in the device pinout) used +by the galvo/remote focus units. For example, if you use ao0, ao2, and ao6 for the +remote focus, galvo, and galvo stage, the lasers should be connected to ao8, ao9, and +ao10. In such a configuration, they will not compete with the other analog output +ports. Since only one task will be created created on the ao8, ao9, ao10 bank at a time +(only one laser is on at a time), only one laser can be on at a time. If we wanted to +turn lasers on simultaneously, we could distribute the lasers across independent banks +(e.g. ao8, ao14, ao19). + +.. collapse:: Device Pinout + + .. image:: images/6738_pinout.png + +| + +------------------ + + +PCIe/PXIe-6259 +""""""""""""""" + +The PXI-6259 can create one software-timed analog task per channel. As such, the +galvo/remote focus/lasers can be attached to any of the analog output ports. The 6259 has +two connectors, and it is important to make sure that the analog and digital ports that you +are using are connected to the correct connector. For example, if you are using ``ao0``, this is +located on ``connector 0``. + +.. collapse:: Device Pinout + + .. image:: images/6259_pinout.png + +| + +------------------ + + +PCIe/PXIe-6723 +""""""""""""""" + +The PXI-6723 can also create one software-timed analog task per channel. As such, the analog +outputs can be wired up as is most convenient. + +.. collapse:: Device Pinout + + .. image:: images/6723_pinout.png + +------------------ + + +Synthetic Data Acquisition Card +------------------------------- +If no data acquisition card is present, one must configure the software to use a synthetic +data acquisition card. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + daq: + hardware: + type: NI + sample_rate: 10000 + master_trigger_out_line: PXI6259/port0/line1 + camera_trigger_out_line: /PXI6259/ctr0 + trigger_source: /PXI6259/PFIO + laser_port_switcher: PXI6733/port0/line0 + laser_switch_state: False + +| diff --git a/docs/source/user_guide/hardware/dcam_api.rst b/docs/source/user_guide/hardware/dcam_api.rst new file mode 100644 index 000000000..2211689dd --- /dev/null +++ b/docs/source/user_guide/hardware/dcam_api.rst @@ -0,0 +1,19 @@ +.. _dcam: + +================= +Hamamatsu Drivers +================= + +* Insert the USB that came with the camera into the computer and install HCImageLive. Alternatively, + download DCAM-API. The software can be found `here `_. +* When prompted with the DCAM-API Setup + + * If you are going to use the Frame Grabber, install the Active Silicon Firebird drivers. + * Select ... next to the tools button, and install DCAM tools onto the computer. + +* Shutdown the computer and install the Hamamatsu frame grabber into an appropriate + PCIe-x16 slot on the motherboard. +* Turn on the computer and the camera, and confirm that it is functioning properly in + HCImageLive or Excap (one of the DCAM tools installed). +* Connect the `camera_trigger_out_line` to the External Trigger of the Hamamatsu + Camera. Commonly, this is done with a counter port, e.g., ``/PXI6259/ctr0`` diff --git a/docs/source/user_guide/hardware/deformable_mirror.rst b/docs/source/user_guide/hardware/deformable_mirror.rst new file mode 100644 index 000000000..84e867ea2 --- /dev/null +++ b/docs/source/user_guide/hardware/deformable_mirror.rst @@ -0,0 +1,59 @@ + +================== +Deformable Mirrors +================== + +Deformable mirrors enable correction for aberrations in the image that arise from +sample or system-specific distortions in the optical wavefront. + +------------ + +Imagine Optic +------------- + +Mirao 52E +~~~~~~~~~ + +We currently have support for a +`Mirao 52E `_. +The ``flat_path`` provides a path to a system correction ``.wcs`` file, an Imagine +Optic proprietary file that stores actuator voltages and corresponding Zernike +coefficients. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + mirror: + hardware: + type: ImagineOpticsMirror + flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs + n_modes: 32 + + +| + +------------- + +Synthetic Mirror +---------------- +It is not necessary to have a deformable mirror to run the software. If no deformable +mirror is present, but one wants to evaluate the deformable mirror correction features, +one must configure the software to use a synthetic deformable mirror. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + mirror: + hardware: + type: SyntheticMirror + flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs + n_modes: 32 + + +| diff --git a/docs/source/user_guide/hardware/filter_wheel.rst b/docs/source/user_guide/hardware/filter_wheel.rst new file mode 100644 index 000000000..ec42da542 --- /dev/null +++ b/docs/source/user_guide/hardware/filter_wheel.rst @@ -0,0 +1,109 @@ +============= +Filter Wheels +============= + +Filter wheels can be used in both illumination and detection paths. Dichroic +turrets are controlled via the same code as filter wheels. The user is expected to +change the names of available filters to match what is in the filter wheel or turret. + +----------- + +Sutter Instruments +------------------ + +Lambda 10-3 & 10-B +~~~~~~~~~~~~~~~~~~ + +We typically communicate with Sutter Lambda 10-3 controllers via serial port. It is +recommended that you first establish communication with the device using manufacturer +provided software. Alternatively, one can use MicroManager. For some filter wheel types, +the filter_wheel_delay is calculated according to the size of the move and model of the +filter wheel. For other filter wheel types, the filter_wheel_delay is a fixed value, which is specified as +the ``filter_wheel_delay`` entry in the configuration file. The number of filter wheels +connected to the controller is specified as ``wheel_number`` in the configuration file. +Currently, both wheels are moved to the same position, but future implementations will +enable control of both filter wheels independently. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + filter_wheel: + hardware: + type: SutterFilterWheel + wheel_number: 1 + port: COM1 + baudrate: 9600 + filter_wheel_delay: 0.03 + available_filters: + Empty-Alignment: 0 + GFP: 1 + RFP: 2 + Far-Red: 3 + +| + +------------- + +ASI +--- + +FW-1000 +~~~~~~~ + +The ASI `filter wheel `_ is controlled by the +ASI Tiger Controller. Thus, you should provide the same ``comport`` entry as you did +for the stage. A single communication instance is used for both the stage and filter wheel. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + filter_wheel: + hardware: + type: ASI + wheel_number: 1 + port: COM1 + baudrate: 9600 + filter_wheel_delay: 0.03 + available_filters: + Empty-Alignment: 0 + GFP: 1 + RFP: 2 + Far-Red: 3 + +| + +-------------- + +Synthetic Filter Wheel +---------------------- +If no filter wheel is present, one must configure the software to use a synthetic +filter wheel. + + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + filter_wheel: + hardware: + type: synthetic + wheel_number: 1 + port: COM1 + baudrate: 9600 + filter_wheel_delay: 0.03 + available_filters: + Empty-Alignment: 0 + GFP: 1 + RFP: 2 + Far-Red: 3 + +| diff --git a/docs/source/user_guide/hardware/galvo.rst b/docs/source/user_guide/hardware/galvo.rst new file mode 100644 index 000000000..d210ade4f --- /dev/null +++ b/docs/source/user_guide/hardware/galvo.rst @@ -0,0 +1,75 @@ +============= +Galvanometers +============= + +Galvo mirrors are used for fast scanning, shadow reduction, and occasionally as stages +(see :ref:`Analog-Controlled Galvo/Piezo `). + +------------ + +Analog-Controlled Galvo +----------------------- + +Multiple types of galvanometers have been used, including Cambridge +Technologies/Novanta, Thorlabs, and ScannerMAX. Each of these devices +are externally controlled via analog signals delivered from a data +acquisition card. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + galvo: + - + hardware: + type: NI + channel: PXI6259/ao1 + min: -1.0 + max: 1.0 + waveform: sawtooth + phase: 0 + - + hardware: + type: NI + channel: PXI6259/ao1 + min: -1.0 + max: 1.0 + waveform: square + phase: 0 + +| + +----------------- + +Synthetic Galvo +--------------- +If no galvo is present, one must configure the software to use a synthetic +galvo. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + galvo: + - + hardware: + type: synthetic + channel: PXI6259/ao1 + min: -1.0 + max: 1.0 + waveform: sawtooth + phase: 0 + - + hardware: + type: synthetic + channel: PXI6259/ao1 + min: -1.0 + max: 1.0 + waveform: square + phase: 0 + +| diff --git a/docs/source/user_guide/hardware/hardware_home.rst b/docs/source/user_guide/hardware/hardware_home.rst index 5f4c96fae..dbdeaa991 100644 --- a/docs/source/user_guide/hardware/hardware_home.rst +++ b/docs/source/user_guide/hardware/hardware_home.rst @@ -1,7 +1,28 @@ -Hardware -======== +.. _hardware_overview: + +==================== +Supported Hardware +==================== + +**navigate** provides access to a growing list of hardware devices. Information on +how to configure each of these devices, including supported firmware, is provided +here. + +Additional devices are available by installing the +**navigate-mmcore-plugin**. To learn more, please visit the **navigate-mmcore-plugin** +`documentation `_. .. toctree:: - :maxdepth: 1 + :caption: Devices + :maxdepth: 3 - supported_hardware + daq.rst + camera.rst + remote_focus.rst + stage.rst + filter_wheel.rst + galvo.rst + laser.rst + shutter.rst + zoom.rst + deformable_mirror.rst diff --git a/docs/source/user_guide/hardware/laser.rst b/docs/source/user_guide/hardware/laser.rst new file mode 100644 index 000000000..26912a13a --- /dev/null +++ b/docs/source/user_guide/hardware/laser.rst @@ -0,0 +1,110 @@ +====== +Lasers +====== +We currently support laser control via voltage signals. In the near-future, we will consider implementing +laser control via serial communication for power control, but digital modulation will still be controlled via +voltage signals. + +--------------------- + +Analog/Digital-Controlled Lasers +-------------------------------- + +Most lasers are controlled externally via mixed analog and digital modulation. +The ``onoff`` entry is for digital modulation. The ``power`` entry is for analog +modulation. + +.. note:: + Omicron LightHUB Ultra laser launches include both Coherent- and LuxX lasers, + which vary according to wavelength. LuxX lasers should be operated in an ACC + operating mode with the analog modulation option enabled. The Coherent Obis lasers + should be set in the mixed modulation mode. + +.. note:: + Coherent Obis lasers should be set in the mixed modulation mode. It is not uncommon + for the slew rate from the data acquisition card to be insufficient to drive the modulation + of the laser if the laser is set to an analog modulation mode. + + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + lasers: + - + wavelength: 488 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line2 + min: 0.0 + max: 5.0 + power: + hardware: + type: NI + channel: PXI6733/ao0 + min: 0.0 + max: 5.0 + - + wavelength: 561 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line3 + min: 0.0 + max: 5.0 + power: + hardware: + type: NI + channel: PXI6733/ao1 + min: 0.0 + max: 5.0 + +| + +------------------- + + +Synthetic Lasers +-------------------------------- + + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + lasers: + - + wavelength: 488 + onoff: + hardware: + type: synthetic + channel: PXI6733/port0/line2 + min: 0.0 + max: 5.0 + power: + hardware: + type: synthetic + channel: PXI6733/ao0 + min: 0.0 + max: 5.0 + - + wavelength: 561 + onoff: + hardware: + type: synthetic + channel: PXI6733/port0/line3 + min: 0.0 + max: 5.0 + power: + hardware: + type: synthetic + channel: PXI6733/ao1 + min: 0.0 + max: 5.0 + +| diff --git a/docs/source/user_guide/hardware/pvcam.rst b/docs/source/user_guide/hardware/pvcam.rst new file mode 100644 index 000000000..9f91a9da3 --- /dev/null +++ b/docs/source/user_guide/hardware/pvcam.rst @@ -0,0 +1,21 @@ +.. _pvcam: + +==================== +Photometrics Drivers +==================== + +* Download the `PVCAM software `_ + from Photometrics. The PVCAM SDK is also available form this location. You will + likely have to register and agree to Photometrics terms. +* Perform the Full Installation of the PVCAM software. +* Should a "Base Device" still show up as unknown in the Windows Device Manager, you + may need to install the `Broadcom PCI/PCIe Software Development Kit `_ +* Upon successful installation, one should be able to acquire images with the + manufacturer-provided PVCamTest software. + +.. Note:: + + A static version of the Photometrics API is provided with this software. It is located + in in srcs/model/devices/APIs/photo_metrics/PyVCAM-master. To install this API, go to this + folder in the command line and from within your **navigate** environment, run + ``python setup.py install``. diff --git a/docs/source/user_guide/hardware/remote_focus.rst b/docs/source/user_guide/hardware/remote_focus.rst new file mode 100644 index 000000000..2161ea842 --- /dev/null +++ b/docs/source/user_guide/hardware/remote_focus.rst @@ -0,0 +1,134 @@ +======================= +Remote Focusing Devices +======================= + +Voice coils, also known as linear actuators, play a crucial role in implementing +aberration-free remote focusing in **navigate**. These electromagnetic actuators are +used to control the axial position of the light-sheet and the sample relative to the +microscope objective lens. By precisely adjusting the axial position, the focal plane +can be shifted without moving the objective lens, thus enabling remote focusing. + +Focus tunable lenses serve as an alternative to voice coils owing to their simple +operation and high bandwidth. Tunable lenses axially scan +a beam by introducing defocus into the optical train. Nonetheless, they do not provide the +higher-order correction provided by voice coils in an aberration-free remote focusing system. + +-------------- + +Equipment Solutions +------------------- + +LFA-2010 +~~~~~~~~ + +Configuration of the device can be variable. Many voice coils we have received require +establishing serial communication with the device to explicitly place it in an analog +control mode. In this case, the comport must be specified properly in the configuration +file. + +More recently, Equipment Solutions has begun delivering devices that +automatically initialize in an analog control mode, and thus no longer need the +serial communication to be established. For these devices, we recommend using the analog +control mode described in the next section. + +The `LFA-2010 Linear Focus Actuator `_ +is controlled with a `SCA814 Linear Servo Controller `_, +which accepts a +/- 2.5 Volt analog signal. The minimum and maximum voltages can be set +in the configuration file to prevent the device from receiving a voltage outside of its +operating range. + + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + remote_focus_device: + hardware: + type: EquipmentSolutions + channel: PXI6269/ao3 + min: -5.0 + max: 5.0 + port: COM2 + baudrate: 9600 + +| + +------------- + +Analog Controlled Voice Coils and Tunable Lenses +------------------------------------------------ + +In principle, this hardware type can support any analog-controlled voice coil or tunable lens. +The `BLINK `_ and the +`Optotune Focus Tunable Lens `_ are +controlled with an analog signal from the DAQ. + +Thorlabs BLINK +~~~~~~~~~~~~~~ +The BLINK is a voice coil that is +pneumatically actuated voice coil. It is recommended that you specify the min and max +voltages that are compatible with your device to prevent the device from receiving a +voltage outside of its operating range. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + remote_focus_device: + hardware: + type: NI + channel: PXI6269/ao3 + min: -5.0 + max: 5.0 + port: COM2 + baudrate: 9600 + +| + +Optotune Focus Tunable Lens +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + remote_focus_device: + hardware: + type: NI + channel: PXI6269/ao3 + min: -5.0 + max: 5.0 + port: COM2 + baudrate: 9600 + +| + +------------------ + +Synthetic Remote Focus Device +----------------------------- +If no remote focus device is present, one must configure the software to use a synthetic +remote focus device. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + remote_focus_device: + hardware: + type: synthetic + channel: PXI6269/ao3 + min: -5.0 + max: 5.0 + port: COM2 + baudrate: 9600 + +| diff --git a/docs/source/user_guide/hardware/shutter.rst b/docs/source/user_guide/hardware/shutter.rst new file mode 100644 index 000000000..42d0acdbf --- /dev/null +++ b/docs/source/user_guide/hardware/shutter.rst @@ -0,0 +1,54 @@ +======== +Shutters +======== + +When controlled with analog, digital, or mixed modulation, not all laser sources +reduce their emitted intensity to 0. In such cases, residual illumination subjects +the specimen to unnecessary irradiation between image acquisitions. Shutters overcome +this by completely blocking the laser, albeit on a much slower timescale than direct +modulation of the laser. With **navigate**, shutters automatically open at the start +of acquisition and close upon finish. + +------------ + +Analog/Digital-Controlled Shutters +---------------------------------- + +Thorlabs shutters are controlled via a digital on off voltage. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + shutter: + hardware: + type: NI + channel: PXI6249/port0/line0 + min: 0.0 + max: 5.0 + +| + +------------------ + +Synthetic Shutter +----------------- +If no shutter is present, one must configure the software to use a synthetic +shutter. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + shutter: + hardware: + type: synthetic + channel: PXI6249/port0/line0 + min: 0.0 + max: 5.0 + +| diff --git a/docs/source/user_guide/hardware/stage.rst b/docs/source/user_guide/hardware/stage.rst new file mode 100644 index 000000000..c9ad8eddf --- /dev/null +++ b/docs/source/user_guide/hardware/stage.rst @@ -0,0 +1,621 @@ +====== +Stages +====== + +Our software empowers users with a flexible solution for configuring +multiple stages, catering to diverse microscope modalities. Each stage can be +customized to suit the specific requirements of a particular modality or shared +across various modalities. Our unique approach allows seamless integration of stages +from different manufacturers, enabling users to mix and match components for a truly +versatile and optimized setup tailored to their research needs. + +.. Note:: + The software provides configure specific hardware axes to software axes. This is + specified in the configuration file. For example, if specified as follows, the software + x, y, z, and f axes can be mapped to the hardware axes M, Y, X, and Z, respectively. + + .. code-block:: yaml + + axes: [x, y, z, f] + axes_mapping: [M, Y, X, Z] + +------------------ + +Applied Scientific Instrumentation +---------------------------------- + +Tiger Controller +~~~~~~~~~~~~~~~~ + + +The ASI `Tiger Controller `_. is +a multi-purpose controller for ASI stages, filter wheels, dichroic sliders, +and more. We communicate with Tiger Controllers via a serial port. It is recommended that you +first establish communication with the device using `ASI provided software `_. + +.. note:: + + **navigate** has been tested with the following versions of the ASI's Tiger + Controller software: + + - Tiger Controller 2.2.0. + + + +.. warning:: + If you are using the FTP-2000 stage, do not change the F stage axis. This + will differentially drive the two vertical posts, causing them to torque and + potentially damage one another. + +.. tip:: + ASI stage's include a configuration option, ``feedback_alignment``, which + corresponds to the `Tiger Controller AA Command `_. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + type: ASI + serial_number: 001 + axes: [x, y, z, theta, f] + axes_mapping: [A, B, C, D, E] + feedback_alignment: [90, 90, 90, 5, 90] + volts_per_micron: 0.0 + min: 0.0 + max: 1.0 + controllername: + stages: + refmode: + port: COM12 + baudrate: 9600 + timeout: 0.25 + joystick_axes: [x, y, z] + x_min: -10000.0 + x_max: 10000.0 + y_min: -10000.0 + y_max: 10000.0 + z_min: -10000.0 + z_max: 10000.0 + theta_min: 0.0 + theta_max: 360.0 + f_min: -10000.0 + f_max: 10000.0 + x_offset: 0.0 + y_offset: 0.0 + z_offset: 0.0 + theta_offset: 0.0 + f_offset: 0.0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False + + +MFC2000 +~~~~~~~ + + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + type: MFC2000 + serial_number: 001 + axes: [x, y, z, theta, f] + axes_mapping: [A, B, C, D, E] + feedback_alignment: [90, 90, 90, 5, 90] + volts_per_micron: 0.0 + min: 0.0 + max: 1.0 + controllername: + stages: + refmode: + port: COM12 + baudrate: 9600 + timeout: 0.25 + joystick_axes: [x, y, z] + x_min: -10000.0 + x_max: 10000.0 + y_min: -10000.0 + y_max: 10000.0 + z_min: -10000.0 + z_max: 10000.0 + theta_min: 0.0 + theta_max: 360.0 + f_min: -10000.0 + f_max: 10000.0 + x_offset: 0.0 + y_offset: 0.0 + z_offset: 0.0 + theta_offset: 0.0 + f_offset: 0.0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False + +| + + +MS2000 +~~~~~~~ + + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + type: MS2000 + serial_number: 001 + axes: [x, y, z, theta, f] + axes_mapping: [A, B, C, D, E] + feedback_alignment: [90, 90, 90, 5, 90] + volts_per_micron: 0.0 + min: 0.0 + max: 1.0 + controllername: + stages: + refmode: + port: COM12 + baudrate: 9600 + timeout: 0.25 + joystick_axes: [x, y, z] + x_min: -10000.0 + x_max: 10000.0 + y_min: -10000.0 + y_max: 10000.0 + z_min: -10000.0 + z_max: 10000.0 + theta_min: 0.0 + theta_max: 360.0 + f_min: -10000.0 + f_max: 10000.0 + x_offset: 0.0 + y_offset: 0.0 + z_offset: 0.0 + theta_offset: 0.0 + f_offset: 0.0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False + +| + +------------------ + +Sutter Instruments +------------- + +MP-285 +~~~~~~ + +The `Sutter MP-285 `_ communicates +via serial port and is quite particular. We have done our best to ensure the +communication is stable, but occasionally the stage will send or receive an extra +character, throwing off communication. In this case, the MP-285's screen will be +covered in 0s, 1s or look garbled. If this happens, simply turn off the software, +power cycle the stage, and press the "MOVE" button on the MP-285 controller once. When +the software is restarted, it should work. + +.. tip:: + + Sometimes the Coherent Connection software messes with the MP-285 serial + communication if it is connected to the lasers. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + type: MP285 + serial_number: 001 + axes: [x, y, z] + axes_mapping: [x, y, z] + feedback_alignment: + volts_per_micron: 0.0 + min: 0.0 + max: 25000 + controllername: + stages: + refmode: + port: COM1 + baudrate: 9600 + timeout: 0.25 + joystick_axes: [x, y, z] + x_min: -10000.0 + x_max: 10000.0 + y_min: -10000.0 + y_max: 10000.0 + z_min: -10000.0 + z_max: 10000.0 + theta_min: 0.0 + theta_max: 360.0 + f_min: -10000.0 + f_max: 10000.0 + x_offset: 0.0 + y_offset: 0.0 + z_offset: 0.0 + theta_offset: 0.0 + f_offset: 0.0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False + +| + +Physik Instrumente +------------------ + +These stages are controlled by `PI `_'s own +`Python code `_ and are quite stable. + +.. note:: + + **navigate** has been tested with the following versions of the Physik + Instrumente software and drivers: + + - PIMikroMove: 2.36.1.0 + - PI_GCS2_DLL: 3.22.0.0 + + +They +include a special ``hardware`` option, ``refmode``, which corresponds to how the +PI stage chooses to self-reference. Options are ``REF``, ``FRF``, ``MNL``, ``FNL``, +``MPL`` or ``FPL``. These are PI's GCS commands, and the correct reference mode +for your stage should be found by launching PIMikroMove, which should come with +your stage. Stage names (e.g. ``L-509.20DG10``) can also be found in PIMikroMove +or on a label on the side of your stage. + +.. note:: + PI L-509.20DG10 has a unidirectional repeatability of 100 nm, bidirectional + repeatability of 2 microns, and a minimum incremental motion of 100 nm. + This is potentially too coarse. + +C-884 +~~~~~ + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + type: PI + serial_number: 119060508 + axes: [x, y, z, theta, f] + axes_mapping: [1, 2, 3, 4, 5] + feedback_alignment: + volts_per_micron: 0.0 + min: + max: + controllername: C-884 + stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE + refmode: FRF FRF FRF FRF FRF FRF + port: + baudrate: + timeout: + joystick_axes: [x, y, z] + x_min: -10000.0 + x_max: 10000.0 + y_min: -10000.0 + y_max: 10000.0 + z_min: -10000.0 + z_max: 10000.0 + theta_min: 0.0 + theta_max: 360.0 + f_min: -10000.0 + f_max: 10000.0 + x_offset: 0.0 + y_offset: 0.0 + z_offset: 0.0 + theta_offset: 0.0 + f_offset: 0.0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False + +| + +E-709 +~~~~~ + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + type: PI + serial_number: 119060508 + axes: [x, y, z, theta, f] + axes_mapping: [1, 2, 3, 4, 5] + feedback_alignment: + volts_per_micron: 0.0 + min: + max: + controllername: E-709 + stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE + refmode: FRF FRF FRF FRF FRF FRF + port: + baudrate: + timeout: + joystick_axes: [x, y, z] + x_min: -10000.0 + x_max: 10000.0 + y_min: -10000.0 + y_max: 10000.0 + z_min: -10000.0 + z_max: 10000.0 + theta_min: 0.0 + theta_max: 360.0 + f_min: -10000.0 + f_max: 10000.0 + x_offset: 0.0 + y_offset: 0.0 + z_offset: 0.0 + theta_offset: 0.0 + f_offset: 0.0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False + +| + +------------------ + +Thorlabs +-------- + +KIM001 +~~~~~~ +**navigate** supports the `KIM001 `_ controller. However, this device shows significant +hysteresis, and thus we do not recommend it for precise positioning tasks (e.g., +autofocusing). It serves as a cost-effective solution for manual, user-driven +positioning. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + type: Thorlabs + serial_number: 74000375 + axes: [f] + axes_mapping: [1] + feedback_alignment: + volts_per_micron: 0.0 + min: + max: + controllername: + stages: + refmode: + port: + baudrate: + timeout: + joystick_axes: [f] + x_min: -10000.0 + x_max: 10000.0 + y_min: -10000.0 + y_max: 10000.0 + z_min: -10000.0 + z_max: 10000.0 + theta_min: 0.0 + theta_max: 360.0 + f_min: -10000.0 + f_max: 10000.0 + x_offset: 0.0 + y_offset: 0.0 + z_offset: 0.0 + theta_offset: 0.0 + f_offset: 0.0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False + +| + + +KST101 +~~~~~~ + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + type: KST101 + serial_number: 26001318 + axes: [f] + axes_mapping: [1] + feedback_alignment: + device_units_per_mm: 20000000/9.957067 + volts_per_micron: 0.0 + min: 0 + max: 25 + controllername: + stages: + refmode: + port: + baudrate: + timeout: + joystick_axes: [f] + x_min: -10000.0 + x_max: 10000.0 + y_min: -10000.0 + y_max: 10000.0 + z_min: -10000.0 + z_max: 10000.0 + theta_min: 0.0 + theta_max: 360.0 + f_min: -10000.0 + f_max: 10000.0 + x_offset: 0.0 + y_offset: 0.0 + z_offset: 0.0 + theta_offset: 0.0 + f_offset: 0.0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False + +| +-------------- + +.. _galvo_stage: + +Analog-Controlled Galvo/Piezo +----------------------------- + +We sometimes control position via a galvo or piezo with no software API. +In this case, we treat a standard galvo mirror or piezo as a stage axis. We control the +"stage" via voltages sent to the galvo or piezo. The ``volts_per_micron`` setting +allows the user to pass an equation that converts position in microns ``X``, which is +passed from the software stage controls, to a voltage. Note that we use +``GalvoNIStage`` whether or not the device is a galvo or a piezo since the logic is +identical. The voltage signal is delivered via the data acquisition card specified in the +``axes_mapping`` entry. + +.. note:: + + The parameters ``distance_threshold`` and ``settle_duration_ms`` are used to provide + a settle time for large moves. if the move is larger than the ``distance_threshold``, + then a wait duration of ``settle_duration_ms`` is used to allow the stage to settle + before the image is acquired. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + type: GalvoNIStage + serial_number: 001 + axes: [Z] + axes_mapping: [PCI6738/ao6] + volts_per_micron: 0.05*x + min: 0.0 + max: 1.0 + distance_threshold: 5 + settle_duration_ms: 5 + controllername: + stages: + refmode: + port: + baudrate: 0 + joystick_axes: [f] + x_min: -10000.0 + x_max: 10000.0 + y_min: -10000.0 + y_max: 10000.0 + z_min: -10000.0 + z_max: 10000.0 + theta_min: 0.0 + theta_max: 360.0 + f_min: -10000.0 + f_max: 10000.0 + x_offset: 0.0 + y_offset: 0.0 + z_offset: 0.0 + theta_offset: 0.0 + f_offset: 0.0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False + +| + +---------------- + +Synthetic Stage +--------------- +If no stage is present for a particular axis, one must configure the software to use a synthetic +stage. For example, not all microscopes have a theta axis. + + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + type: synthetic + serial_number: 001 + axes: [x, y, z, theta, f] + axes_mapping: [A, B, C, D, E] + volts_per_micron: 0.0 + min: 0.0 + max: 1.0 + controllername: + stages: + refmode: + port: + baudrate: 0 + joystick_axes: [x, y, z] + x_min: -10000.0 + x_max: 10000.0 + y_min: -10000.0 + y_max: 10000.0 + z_min: -10000.0 + z_max: 10000.0 + theta_min: 0.0 + theta_max: 360.0 + f_min: -10000.0 + f_max: 10000.0 + x_offset: 0.0 + y_offset: 0.0 + z_offset: 0.0 + theta_offset: 0.0 + f_offset: 0.0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False + +| diff --git a/docs/source/user_guide/hardware/supported_hardware.rst b/docs/source/user_guide/hardware/supported_hardware.rst deleted file mode 100644 index 6c23605de..000000000 --- a/docs/source/user_guide/hardware/supported_hardware.rst +++ /dev/null @@ -1,1432 +0,0 @@ -============================ -Configuring Hardware Devices -============================ - -The following section aims to provide users with the requisite information for configuring -hardware devices. A high-level overview of the supported devices can be found -:doc:`here <../hardware_overview>`. Additional devices are available by installing the -**navigate-mmcore-plugin**. To learn more, please visit the **navigate-mmcore-plugin** -`documentation `_. - - -Data Acquisition Card -===================== - -Data acquisition cards deliver and receive analog and digital signals. -To acquire an image, the software calculates all of the analog and digital waveforms and -queues these waveforms on the data acquisition card. Upon receipt of a trigger (either from the software itself, -or an external piece of hardware), all -of the analog and digital signals are delivered in parallel. This provides -deterministic behavior on a per-frame basis, which is necessary for proper acquisition of light-sheet data. -It does not however provide us with deterministic behavior between image -frames, and some jitter in timing is anticipated. - ------------------- - -.. _hardware_ni: - -National Instruments (NI) -------------------------- -In principle, most NI-based data acquisition cards should work with the software, so long -as there are a sufficient number of analog and digital ports, and the sampling rate (typically 100 kHz) -is high enough per port. - -Prior to installing the card within -the computer, first install the `NI-DAQmx drivers `_. -Once installed, connect the PCIe or PXIe-based device to the computer. A functioning -system should be recognized by the operating system, and visible in the Windows Device -Manager as a **NI Data Acquisition Device**. - - -.. tip:: - - **The most important aspect is to wire up the breakout box properly.** - - To find the device pin outs for your NI-based data acquisition card, open NI - MAX, find the card under devices, right-click and select "device pinouts". - - Important: Should you use the SCB-68A breakout box, do not look at the pinout on - the back of the cover. This is misleading. You must look at the device pinouts in - NI MAX. - -Wiring -^^^^^^ - -- Identify the device name in NI MAX, and change it if you would like. Common names are - ``Dev1``, ``Dev2``, etc. This name must correspond with the pinouts provided in the - configuration file. - -- Connect the ``master_trigger_out_line`` to the ``trigger_source`` with a direct wire, - commonly ``PXI6259/port0/line1`` and ``/PXI6259/PFI0``. In this example, the default name - for the device (e.g., ``Dev1``) has been changed to ``PXI6259``. - -- Connect the ``camera_trigger_out_line`` to the ``Ext. Trigger`` on the camera using - the ``CTR0Out`` pin. - -- These values must precisely match those in the configuration file. An example is provided below: - - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - daq: - type: NI - - microscopes: - microscope_name: - daq: - hardware: - name: daq - type: NI - sample_rate: 100000 - sweep_time: 0.2 - master_trigger_out_line: PCI6738/port0/line1 - camera_trigger_out_line: /PCI6738/ctr0 - trigger_source: /PCI6738/PFI0 - laser_port_switcher: PCI6738/port0/line0 - laser_switch_state: False - -| - -.. note:: - - For NI-based cards, ``port0/line1`` is the equivalent of ``P0.1``. - There are multiple pins for each PFIO, including source, out, gate, etc. You must - use the out terminal. - -The software has been tested with the following NI-based cards: - -PCIe/PXIe-6738 -^^^^^^^^^^^^^^^^^ -The PCIe-6738 can only create one software-timed analog task for every four channels. -As such, the lasers much be attached to analog output ports outside of the banks (shown as solid lines in the device pinout) used -by the galvo/remote focus units. For example, if you use ao0, ao2, and ao6 for the -remote focus, galvo, and galvo stage, the lasers should be connected to ao8, ao9, and -ao10. In such a configuration, they will not compete with the other analog output -ports. Since only one task will be created created on the ao8, ao9, ao10 bank at a time -(only one laser is on at a time), only one laser can be on at a time. If we wanted to -turn lasers on simultaneously, we could distribute the lasers across independent banks -(e.g. ao8, ao14, ao19). - -.. collapse:: Device Pinout - - .. image:: images/6738_pinout.png - -| - -PCIe/PXIe-6259 -^^^^^^^^^^^^^^^ - -The PXI-6259 can create one software-timed analog task per channel. As such, the -galvo/remote focus/lasers can be attached to any of the analog output ports. The 6259 has -two connectors, and it is important to make sure that the analog and digital ports that you -are using are connected to the correct connector. For example, if you are using ``ao0``, this is -located on ``connector 0``. - -.. collapse:: Device Pinout - - .. image:: images/6259_pinout.png - -| - -PCIe/PXIe-6723 -^^^^^^^^^^^^^^^ - -The PXI-6723 can also create one software-timed analog task per channel. As such, the analog -outputs can be wired up as is most convenient. - -.. collapse:: Device Pinout - - .. image:: images/6723_pinout.png - -Synthetic Data Acquisition Card -------------------------------- -If no data acquisition card is present, one must configure the software to use a synthetic -data acquisition card. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - daq: - type: SyntheticDAQ - - microscopes: - microscope_name: - daq: - hardware: - name: daq - type: SyntheticDAQ - sample_rate: 100000 - sweep_time: 0.2 - master_trigger_out_line: PCI6738/port0/line1 - camera_trigger_out_line: /PCI6738/ctr0 - trigger_source: /PCI6738/PFI0 - laser_port_switcher: PCI6738/port0/line0 - laser_switch_state: False - -| - ---------- - -.. _camera_configuration: -Cameras -======= - -The software supports camera-based acquisition. It can run both normal and rolling -shutter modes of contemporary scientific CMOS cameras. - -Hamamatsu ORCA-Flash4.0 V3 ---------------------------------- - -* Insert the USB that came with the camera into the computer and install HCImageLive. Alternatively, - download DCAM-API. The software can be found `here `_. -* When prompted with the DCAM-API Setup - - * If you are going to use the Frame Grabber, install the Active Silicon Firebird drivers. - * Select ... next to the tools button, and install DCAM tools onto the computer. - -* Shutdown the computer and install the Hamamatsu frame grabber into an appropriate - PCIe-x16 slot on the motherboard. -* Turn on the computer and the camera, and confirm that it is functioning properly in - HCImageLive or Excap (one of the DCAM tools installed). -* Connect the `camera_trigger_out_line` to the External Trigger of the Hamamatsu - Camera. Commonly, this is done with a counter port, e.g., ``/PXI6259/ctr0`` - -More about the ORCA-Flash 4.0 v3 and ORCA-Fusion can be found `here `_ and -`here `_, respectively. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - camera: - - - type: HamamatsuOrca - serial_number: 302153 - - microscopes: - microscope_name: - camera: - hardware: - name: camera - type: HamamatsuOrca - serial_number: 302153 - x_pixels: 2048.0 - y_pixels: 2048.0 - flip_x: True - flip_y: False - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal - readout_direction: Top-to-Bottom - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 1.0 - binning: 1x1 - readout_speed: 2.0 - trigger_active: 1.0 - trigger_mode: 1.0 - trigger_polarity: 2.0 - trigger_source: 2.0 - exposure_time: 20 - delay_percent: 20 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - x_pixels_step: 4 - y_pixels_step: 4 - x_pixels_min: 4 - y_pixels_min: 4 - -| - -Hamamatsu ORCA-Fusion ------------------------- - -The ORCA-Fusion comes in a back-thinned and front-illuminated version. This code will work -with both. Learn more about the ORCA-Fusion `here `_. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - camera: - - - type: HamamatsuOrcaFusion - serial_number: 000035 - - microscopes: - microscope_name: - camera: - hardware: - name: camera - type: HamamatsuOrcaFusion - serial_number: 000035 - x_pixels: 4608.0 - y_pixels: 2592.0 - pixel_size_in_microns: 5.5 - subsampling: [1, 2, 4] - sensor_mode: Normal - readout_direction: Bottom-to-Top - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 0x7FFFFFFF - trigger_active: 1.0 - trigger_mode: 1.0 - trigger_polarity: 2.0 - trigger_source: 2.0 - exposure_time: 20 - delay_percent: 8 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - -| - -Hamamatsu ORCA-Lightning ------------------------- - -The Hamamatsu ORCA-Lightning has a slightly different class than the Flash/Fusion as it -reads out 4 rows at a time rather than 1 in rolling shutter mode. -Learn more `here `_. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - camera: - - - type: HamamatsuOrcaLightning - serial_number: 000035 - - microscopes: - microscope_name: - camera: - hardware: - name: camera - type: HamamatsuOrcaLightning - serial_number: 000035 - x_pixels: 4608.0 - y_pixels: 2592.0 - pixel_size_in_microns: 5.5 - subsampling: [1, 2, 4] - sensor_mode: Normal - readout_direction: Bottom-to-Top - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 0x7FFFFFFF - trigger_active: 1.0 - trigger_mode: 1.0 - trigger_polarity: 2.0 - trigger_source: 2.0 - exposure_time: 20 - delay_percent: 8 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - -| - - -Hamamatsu ORCA-Fire -------------------- - -The Hamamatsu ORCA-Fire is one of the latest releases from Hamamatsu. It is a -scientific CMOS camera that offers large 10.5 MPix sensor and greater diversity -of rolling shutter readout modes. Learn more `here `_. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - camera: - - - type: HamamatsuOrcaFire - serial_number: 000035 - - microscopes: - microscope_name: - camera: - hardware: - name: camera - type: HamamatsuOrcaFire - serial_number: 000035 - x_pixels: 4432.0 - y_pixels: 2368.0 - pixel_size_in_microns: 4.6 - subsampling: [1, 2, 4] - sensor_mode: Normal - readout_direction: Bottom-to-Top - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 0x7FFFFFFF - trigger_active: 1.0 - trigger_mode: 1.0 - trigger_polarity: 2.0 - trigger_source: 2.0 - exposure_time: 20 - delay_percent: 8 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - -| - -Photometrics Iris 15 --------------------- - -* Download the `PVCAM software `_ - from Photometrics. The PVCAM SDK is also available form this location. You will - likely have to register and agree to Photometrics terms. -* Perform the Full Installation of the PVCAM software. -* Should a "Base Device" still show up as unknown in the Windows Device Manager, you - may need to install the `Broadcom PCI/PCIe Software Development Kit `_ -* Upon successful installation, one should be able to acquire images with the - manufacturer-provided PVCamTest software. - -.. Note:: - - A static version of the Photometrics API is provided with this software. It is located - in in srcs/model/devices/APIs/photo_metrics/PyVCAM-master. To install this API, go to this - folder in the command line and from within your **navigate** environment, run - ``python setup.py install``. - - -.. collapse:: Configuration File - - .. code-block:: yaml - - camera: - type: Photometrics - camera_connection: PMPCIECam00 - serial_number: 1 - - camera: - hardware: - name: camera - type: Photometrics - serial_number: 1 - x_pixels: 5056.0 - y_pixels: 2960.0 - pixel_size_in_microns: 4.25 - subsampling: [1, 2, 4] - sensor_mode: Normal - readout_direction: Bottom-to-Top - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 - binning: 1x1 - readout_speed: 0x7FFFFFFF - trigger_active: 1.0 - trigger_mode: 1.0 - trigger_polarity: 2.0 - trigger_source: 2.0 - exposure_time: 20 - delay_percent: 25 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - -| - -Synthetic Camera ----------------- - -The synthetic camera simulates noise images from an sCMOS camera. If no camera is present, -the synthetic camera class must be used. - -.. collapse:: Configuration File - - .. code-block:: yaml - - camera: - type: SyntheticCamera - serial_number: 12345 - - microscopes: - microscope_name: - camera: - hardware: - name: camera - type: SyntheticCamera - serial_number: 12345 - x_pixels: 2048.0 - y_pixels: 2048.0 - flip_x: True - flip_y: False - pixel_size_in_microns: 6.5 - subsampling: [1, 2, 4] - sensor_mode: Normal - readout_direction: Top-to-Bottom - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 1.0 - binning: 1x1 - readout_speed: 2.0 - trigger_active: 1.0 - trigger_mode: 1.0 - trigger_polarity: 2.0 - trigger_source: 2.0 - exposure_time: 20 - delay_percent: 20 - pulse_percent: 1 - line_interval: 0.000075 - display_acquisition_subsampling: 4 - average_frame_rate: 4.969 - frames_to_average: 1 - exposure_time_range: - min: 1 - max: 1000 - step: 1 - x_pixels_step: 4 - y_pixels_step: 4 - x_pixels_min: 4 - y_pixels_min: 4 - -| - - ---------- - - -Remote Focusing Devices -======================= - -Voice coils, also known as linear actuators, play a crucial role in implementing -aberration-free remote focusing in navigate. These electromagnetic actuators are used -to control the axial position of the light-sheet and the sample relative to the -microscope objective lens. By precisely adjusting the axial position, the focal plane -can be shifted without moving the objective lens, thus enabling remote focusing. Focus tunable lenses -serve as an alternative to voice coils owing to their simple operation and high bandwidth. Tunable lenses axially scan -a beam by introducing defocus into the optical train. Nonetheless, they do not provide the -higher-order correction provided by voice coils in an aberration-free remote focusing system. - -Equipment Solutions -------------------- - -Configuration of the device can be variable. Many voice coils we have received require -establishing serial communication with the device to explicitly place it in an analog -control mode. In this case, the comport must be specified properly in the configuration -file. - -More recently, Equipment Solutions has begun delivering devices that -automatically initialize in an analog control mode, and thus no longer need the -serial communication to be established. For these devices, we recommend using the analog -control mode described in the next section. - -The `LFA-2010 Linear Focus Actuator `_ -is controlled with a `SCA814 Linear Servo Controller `_, -which accepts a +/- 2.5 Volt analog signal. The minimum and maximum voltages can be set -in the configuration file to prevent the device from receiving a voltage outside of its -operating range. - - -.. collapse:: Configuration File - - .. code-block:: yaml - - microscopes: - microscope_name: - remote_focus_device: - hardware: - name: remote_focus - type: EquipmentSolutions - channel: PCI6738/ao2 - comport: COM7 - min: -2.5 - max: 2.5 - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 5.0 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 - -| - -Analog Controlled Voice Coils and Tunable Lenses ------------------------------------------------- - -In principle, this hardware type can support any analog-controlled voice coil or tunable lens. -The `BLINK `_ and the -`Optotune Focus Tunable Lens `_ are -controlled with an analog signal from the DAQ. The BLINK is a voice coil that is -pneumatically actuated voice coil. it is recommended that you specify the min and max voltages -that are compatible with your device to prevent the device from receiving a voltage outside of its -operating range. - -.. collapse:: Configuration File - - .. code-block:: yaml - - microscopes: - microscope_name: - remote_focus_device: - hardware: - name: remote_focus - type: NI - channel: PCI6738/ao2 - comport: COM7 - min: -2.5 - max: 2.5 - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 5.0 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 - -| - -Synthetic Remote Focus Device ------------------------------ -If no remote focus device is present, one must configure the software to use a synthetic -remote focus device. - -.. collapse:: Configuration File - - .. code-block:: yaml - - microscopes: - microscope_name: - remote_focus_device: - hardware: - name: remote_focus - type: SyntheticRemoteFocus - channel: PCI6738/ao2 - comport: COM7 - min: -2.5 - max: 2.5 - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 5.0 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 - -| - ---------- - - -Stages -====== - -Our software empowers users with a flexible solution for configuring -multiple stages, catering to diverse microscope modalities. Each stage can be -customized to suit the specific requirements of a particular modality or shared -across various modalities. Our unique approach allows seamless integration of stages -from different manufacturers, enabling users to mix and match components for a truly -versatile and optimized setup tailored to their research needs. - -.. Note:: - The software provides configure specific hardware axes to software axes. This is - specified in the configuration file. For example, if specified as follows, the software - x, y, z, and f axes can be mapped to the hardware axes M, Y, X, and Z, respectively. - - .. code-block:: yaml - - axes: [x, y, z, f] - axes_mapping: [M, Y, X, Z] - -ASI Tiger Controller --------------------- - -The ASI `Tiger Controller `_. is -a multi-purpose controller for ASI stages, filter wheels, dichroic sliders, -and more. We communicate with Tiger Controllers via a serial port. It is recommended that you -first establish communication with the device using `ASI provided software `_. -For stages in particular, there is a ``feedback_alignment`` configuration option option -corresponds to the `Tiger Controller AA Command `_. - -.. tip:: - If you are using the FTP-2000 stage, do not change the F stage axis. This - will differentially drive the two vertical posts, causing them to torque and - potentially damage one another. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - stage: - type: ASI - serial_number: 123456789 - port: COM8 - baudrate: 115200 - - microscopes: - microscope: - stage: - hardware: - name: stage - type: ASI - serial_number: 123456789 - axes: [x, y, z, f] - axes_mapping: [M, Y, X, Z] - feedback_alignment: [90, 90, 90, 90] - -| - -Sutter MP-285 -------------- - -The `Sutter MP-285 `_ communicates -via serial port and is quite particular. We have done our best to ensure the -communication is stable, but occasionally the stage will send or receive an extra -character, throwing off communication. In this case, the MP-285's screen will be -covered in 0s, 1s or look garbled. If this happens, simply turn off the software, -power cycle the stage, and press the "MOVE" button on the MP-285 controller once. When -the software is restarted, it should work. - -.. tip:: - - Sometimes the Coherent Connection software messes with the MP-285 serial - communication if it is connected to the lasers. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - stage: - - - type: MP285 - port: COM2 - timeout: 0.25 - baudrate: 9600 - serial_number: 0000 - stages: None - - microscopes: - microscope_name: - stage: - hardware: - name: stage1 - type: MP285 - serial_number: 0000 - axes: [y, x, f] - axes_mapping: [z, y, x] - volts_per_micron: None - axes_channels: None - max: 25000 - min: 0 - -| - -Physik Instrumente ------------------- - -These stages are controlled by `PI `_'s own -`Python code `_ and are quite stable. They -include a special ``hardware`` option, ``refmode``, which corresponds to how the -PI stage chooses to self-reference. Options are ``REF``, ``FRF``, ``MNL``, ``FNL``, -``MPL`` or ``FPL``. These are PI's GCS commands, and the correct reference mode -for your stage should be found by launching PIMikroMove, which should come with -your stage. Stage names (e.g. ``L-509.20DG10``) can also be found in PIMikroMove -or on a label on the side of your stage. - -.. note:: - PI L-509.20DG10 has a unidirectional repeatability of 100 nm, bidirectional - repeatability of 2 microns, and a minimum incremental motion of 100 nm. - This is potentially too coarse. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - stage: - - - type: PI - controllername: C-884 - stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE - refmode: FRF FRF FRF FRF FRF FRF - serial_number: 119060508 - - - microscopes: - microscope_name: - stage: - hardware: - name: stage - type: PI - serial_number: 119060508 - axes: [x, y, z, theta, f] - y_unload_position: 10000 - y_load_position: 90000 - - startfocus: 75000 - x_max: 100000 - x_min: -100000 - y_max: 100000 - y_min: -100000 - z_max: 100000 - z_min: -100000 - f_max: 100000 - f_min: 0 - theta_max: 360 - theta_min: 0 - - x_rot_position: 2000 - y_rot_position: 2000 - z_rot_position: 2000 - - x_step: 500 - y_step: 500 - z_step: 500 - theta_step: 30 - f_step: 500 - - position: - x_pos: 25250 - y_pos: 40000 - z_pos: 40000 - f_pos: 70000 - theta_pos: 0 - velocity: 1000 - - x_offset: 0 - y_offset: 0 - z_offset: 0 - f_offset: 0 - theta_offset: 0 - -| - -Thorlabs --------- - -We currently support the `KIM001 `_ -controller. Importantly, this device shows significant hysterisis, and thus we do not recommend -it for precise positioning tasks (e.g., autofocusing). It serves as a cost-effective solution -for manual, user-driven positioning. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - stage: - - - type: Thorlabs - serial_number: 74000375 - - microscopes: - microscope_name: - stage: - hardware: - - - name: stage - type: Thorlabs - serial_number: 74000375 - axes: [f] - axes_mapping: [1] - volts_per_micron: None - axes_channels: None - max: None - min: None - -| - -.. _galvo_stage: - -Analog-Controlled Galvo/Piezo ------------------------------ - -We sometimes control position via a galvo or piezo with no software API. -In this case, we treat a standard galvo mirror or piezo as a stage axis. We control the -"stage" via voltages sent to the galvo or piezo. The ``volts_per_micron`` setting -allows the user to pass an equation that converts position in microns ``X``, which is -passed from the software stage controls, to a voltage. Note that we use -``GalvoNIStage`` whether or not the device is a galvo or a piezo since the logic is -identical. The voltage signal is delivered via the data acquisition card specified in the -``axes_mapping`` entry. - -.. note:: - - The parameters ``distance_threshold`` and ``settle_duration_ms`` are used to provide - a settle time for large moves. if the move is larger than the ``distance_threshold``, - then a wait duration of ``settle_duration_ms`` is used to allow the stage to settle - before the image is acquired. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - stage: - - - type: GalvoNIStage - port: COM9999 - timeout: 0.25 - baudrate: 9600 - serial_number: 0000 - stages: None - distance_threshold: 20 - settle_duration_ms: 5 - - microscopes: - microscope_name: - stage: - hardware: - name: stage3 - type: GalvoNIStage - serial_number: 0000 - axes: [z] - axes_mapping: [PCI6738/ao6] - volts_per_micron: 0.05*x - max: 10 - min: 0 - distance_threshold: 5 - settle_duration_ms: 5 - -| - - -Synthetic Stage ---------------- -If no stage is present for a particular axis, one must configure the software to use a synthetic -stage. For example, not all microscopes have a theta axis. - - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - stage: - - - type: SyntheticStage - serial_number: 74000375 - - microscopes: - microscope_name: - stage: - hardware: - - - name: stage - type: SyntheticStage - serial_number: 74000375 - axes: [theta] - axes_mapping: [purple] - volts_per_micron: None - axes_channels: None - max: None - min: None - -| - - - ---------- - - -Filter Wheels -============= - -Filter wheels can be used in both illumination and detection paths. Dichroic -turrets are controlled via the same code as filter wheels. The user is expected to -change the names of available filters to match what is in the filter wheel or turret. - -Sutter ------- -We typically communicate with Sutter Lambda 10-3 controllers via serial port. It is -recommended that you first establish communication with the device using manufacturer -provided software. Alternatively, one can use MicroManager. For some filter wheel types, -the filter_wheel_delay is calculated according to the size of the move and model of the -filter wheel. For other filter wheel types, the filter_wheel_delay is a fixed value, which is specified as -the ``filter_wheel_delay`` entry in the configuration file. The number of filter wheels -connected to the controller is specified as ``wheel_number`` in the configuration file. -Currently, both wheels are moved to the same position, but future implementations will -enable control of both filter wheels independently. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - filter_wheel: - type: SutterFilterWheel - port: COM10 - baudrate: 9600 - number_of_wheels: 1 - - microscopes: - microscope_name: - filter_wheel: - hardware: - name: filter_wheel - type: SutterFilterWheel - wheel_number: 1 - filter_wheel_delay: .030 - available_filters: - Empty-1: 0 - 525-30: 1 - 600-52: 2 - 670-30: 3 - 647-LP: 4 - Empty-2: 5 - Empty-3: 6 - Empty-4: 7 - - -| - -ASI ---- -The ASI filter wheel is controlled by the ASI Tiger Controller. Thus, you should provide the same -``comport`` entry as you did for the stage. A single communication instance is used for both the stage and filter wheel. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - filter_wheel: - type: ASI - port: COM10 - baudrate: 115200 - number_of_wheels: 1 - - microscopes: - microscope_name: - filter_wheel: - hardware: - name: filter_wheel - type: ASI - wheel_number: 1 - filter_wheel_delay: .030 - available_filters: - BLU - FF01-442/42-32: 0 - GFP - FF01-515/30-32: 1 - RFP - FF01-595/31-32: 2 - Far-Red - FF01-670/30-32: 3 - Blocked1: 4 - Empty: 5 - Blocked3: 6 - Blocked4: 7 - Blocked5: 8 - Blocked6: 9 - -| - -Synthetic Filter Wheel ----------------------- -If no filter wheel is present, one must configure the software to use a synthetic -filter wheel. - - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - filter_wheel: - type: SyntheticFilterWheel - port: COM10 - baudrate: 115200 - number_of_wheels: 1 - - microscopes: - microscope_name: - filter_wheel: - hardware: - name: filter_wheel - type: SyntheticFilterWheel - wheel_number: 1 - filter_wheel_delay: .030 - available_filters: - BLU - FF01-442/42-32: 0 - GFP - FF01-515/30-32: 1 - RFP - FF01-595/31-32: 2 - Far-Red - FF01-670/30-32: 3 - Blocked1: 4 - Empty: 5 - Blocked3: 6 - Blocked4: 7 - Blocked5: 8 - Blocked6: 9 - -| - ---------- - - -Galvanometers -============= - -Galvo mirrors are used for fast scanning, shadow reduction, and occasionally as stages -(see :ref:`Analog-Controlled Galvo/Piezo `). - -Analog-Controlled Galvo ------------------------ - -Multiple types of galvanometers have been used, including Cambridge -Technologies/Novanta, Thorlabs, and ScannerMAX Each of these devices -are externally controlled via analog signals delivered from a data -acquisition card. - -.. collapse:: Configuration File - - .. code-block:: yaml - - microscopes: - microscope_name: - galvo: - - - hardware: - name: daq - type: NI - channel: PCI6738/ao0 - min: -5 - max: 5 - waveform: sawtooth - frequency: 99.9 - amplitude: 2.5 - offset: 0.5 - duty_cycle: 50 - phase: 1.57079 - -| - - -Synthetic Galvo ---------------- -If no galvo is present, one must configure the software to use a synthetic -galvo. - -.. collapse:: Configuration File - - .. code-block:: yaml - - microscopes: - microscope_name: - galvo: - - - hardware: - name: daq - type: SynthticGalvo - channel: PCI6738/ao0 - min: -5 - max: 5 - waveform: sawtooth - frequency: 99.9 - amplitude: 2.5 - offset: 0.5 - duty_cycle: 50 - phase: 1.57079 - -| - - - -Lasers -====== -We currently support laser control via voltage signals. In the near-future, we will consider implementing -laser control via serial communication for power control, but digital modulation will still be controlled via -voltage signals. - -Omicron LightHUB Ultra ----------------------- - -.. note:: - Omicron laser source includes both Coherent- and LuxX lasers, which vary - according to wavelength. LuxX lasers should be operated in an ACC operating - mode with the analog modulation option enabled. The Coherent Obis lasers should be - set in the mixed modulation mode. - -Coherent Obis -------------- - -.. note:: - Coherent Obis lasers should be set in the mixed modulation mode. It is not uncommon - for the slew rate from the data acquisition card to be insufficient to drive the modulation - of the laser if the laser is set to an analog modulation mode. - -Analog/Digital-Controlled Lasers --------------------------------- - -Most lasers are controlled externally via mixed analog and digital modulation. -The ``onoff`` entry is for digital modulation. The ``power`` entry is for analog -modulation. - -.. collapse:: Configuration File - - .. code-block:: yaml - - microscopes: - microscope_name: - lasers: - - wavelength: 488 - onoff: - hardware: - name: daq - type: NI - channel: PCI6738/port1/line5 - min: 0 - max: 5 - power: - hardware: - name: daq - type: NI - channel: PCI6738/ao8 - min: 0 - max: 5 - type: Obis - index: 0 - delay_percent: 10 - pulse_percent: 87 - - wavelength: 561... - -| - - ---------- - - -Shutters -======== - -Shutters automatically open at the start of acquisition and close upon finish. - -Analog/Digital-Controlled Shutters ----------------------------------- - -Thorlabs shutters are controlled via a digital on off voltage. - -.. collapse:: Configuration File - - .. code-block:: yaml - - microscopes: - microscope_name: - shutter: - hardware: - name: daq - type: NI - channel: PXI6259/port0/line0 - min: 0 - max: 5 - -| - -Synthetic Shutter ------------------ -If no shutter is present, one must configure the software to use a synthetic -shutter. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - shutter: - hardware: - name: daq - type: synthetic - channel: PCIE6738/port0/line0 - min: 0 - max: 5 - -| - - ---------- - - -Mechanical Zoom -=============== - -Zoom devices control the magnification of the microscope. If such control is not -needed, the software expects a :ref:`Synthetic Zoom ` to provide -the fixed magnification and the effective pixel size of the microscope. - -Dynamixel Zoom --------------- - -This software supports the -`Dynamixel Smart Actuator `_. - -.. note:: - - The ``positions`` specify the voltage of the actuator at different zoom positions. - The ``stage_positions`` account for focal shifts in between the different zoom values - (the MVXPLAPO does not have a consistent focal plane). These may change depending on - the immersion media. Here it is specified for a ``BABB`` (Benzyl Alcohol Benzyl - Benzoate) immersion media. The ``pixel_size`` specifies the effective pixel size of - the system at each zoom. - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - zoom: - type: DynamixelZoom - servo_id: 1 - port: COM18 - baudrate: 1000000 - - microscopes: - microscope_name: - zoom: - hardware: - name: zoom - type: DynamixelZoom - servo_id: 1 - position: - 0.63x: 0 - 1x: 627 - 2x: 1711 - 3x: 2301 - 4x: 2710 - 5x: 3079 - 6x: 3383 - pixel_size: - 0.63x: 9.7 - 1x: 6.38 - 2x: 3.14 - 3x: 2.12 - 4x: 1.609 - 5x: 1.255 - 6x: 1.044 - stage_positions: - BABB: - f: - 0.63x: 0 - 1x: 1 - 2x: 2 - 3x: 3 - 4x: 4 - 5x: 5 - 6x: 6 - -| - -.. _synthetic_zoom: - -Synthetic Zoom --------------- - -.. collapse:: Configuration File - - .. code-block:: yaml - - hardware: - zoom: - type: synthetic - servo_id: 1 - port: COM18 - baudrate: 1000000 - - microscopes: - microscope_name: - zoom: - hardware: - name: zoom - type: synthetic - servo_id: 1 - position: - 36X: 0 - pixel_size: - 36X: 0.180 - stage_positions: - BABB: - f: - 36X: 0 - -| - - ---------- - - -Deformable Mirrors -================== - -Imagine Optic -------------- - -We currently have support for a -`Mirao 52E `_. -The ``flat_path`` provides a path to a system correction ``.wcs`` file, an Imagine -Optic proprietary file that stores actuator voltages and corresponding Zernike -coefficients. - -.. collapse:: Configuration File - - .. code-block:: yaml - - mirror: - type: ImagineOpticsMirror - - mirror: - hardware: - name: mirror - type: ImagineOpticsMirror - flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs - n_modes: 32 - - -| - -Synthetic Mirror ----------------- -It is not necessary to have a deformable mirror to run the software. If no deformable -mirror is present, but one wants to evaluate the deformable mirror correction features, -one must configure the software to use a synthetic deformable mirror. - -.. collapse:: Configuration File - - .. code-block:: yaml - - mirror: - type: SyntheticMirror - - mirror: - hardware: - name: mirror - type: ImagineOpticsMirror - flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs - n_modes: 32 - - -| diff --git a/docs/source/user_guide/hardware/zoom.rst b/docs/source/user_guide/hardware/zoom.rst new file mode 100644 index 000000000..7f20f1386 --- /dev/null +++ b/docs/source/user_guide/hardware/zoom.rst @@ -0,0 +1,87 @@ +=============== +Mechanical Zoom +=============== + +Zoom devices control the magnification of the microscope. If such control is not +needed, the software expects a :ref:`Synthetic Zoom ` to provide +the fixed magnification and the effective pixel size of the microscope. + +--------------- + +Dynamixel +--------- + +MX-28R +~~~~~~ + +This software supports the +`Dynamixel Smart Actuator `_. + +.. note:: + + The ``positions`` specify the voltage of the actuator at different zoom positions. + The ``stage_positions`` account for focal shifts in between the different zoom values + (the MVXPLAPO does not have a consistent focal plane). These may change depending on + the immersion media. Here it is specified for a ``BABB`` (Benzyl Alcohol Benzyl + Benzoate) immersion media. The ``pixel_size`` specifies the effective pixel size of + the system at each zoom. + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + zoom: + hardware: + type: DynamixelZoom + servo_id: 1 + port: COM1 + baudrate: 9600 + position: + 1x: 200.0 + 6.5x: 2000.0 + pixel_size: + 1x: 6.5 + 6.5x: 1.0 + stage_positions: + BABB: + f: + 1X: 0 + 6.5x: 2 + + +| + +--------------- + +.. _synthetic_zoom: + +Synthetic Zoom +-------------- + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + zoom: + hardware: + type: synthetic + servo_id: 1 + port: COM1 + baudrate: 9600 + position: + 1x: 200.0 + 6.5x: 2000.0 + pixel_size: + 1x: 6.5 + 6.5x: 1.0 + stage_positions: + BABB: + f: + 1X: 0 + 6.5x: 2 + +| diff --git a/docs/source/user_guide/hardware_overview.rst b/docs/source/user_guide/hardware_overview.rst deleted file mode 100644 index d9aa4d011..000000000 --- a/docs/source/user_guide/hardware_overview.rst +++ /dev/null @@ -1,103 +0,0 @@ - -.. _hardware_overview: - -################## -Supported Hardware -################## - - -**navigate** provides access to a growing list of hardware devices. Information on how to -configure each of these devices is provided :doc:`here `. - - -.. list-table:: - :widths: 25 75 - :header-rows: 1 - - * - **Equipment** - - **Devices** - * - *Cameras* - - - * Hamamatsu Orca Flash 4.0. - * Hamamatsu Orca Fusion. - * Hamamatsu Orca Fire. - * Hamamatsu Orca Lightning. - * Photometrics Iris15 - * - *Deformable Mirrors* - - - * Imagine Optics - * - *Filter Wheel* - - - * ASI with Tiger Controller - * Sutter Lambda 10-3 - * Sutter Lambda LS - * - *Galvanometers* - - - * Analog controlled devices. - * - *Lasers* - - - * Analog, Digital, and Mixed Modulation modes. - * - *Remote Focusing Devices* - - - * Analog controlled voice coils, electro-tunable lens, etc. - * Equipment Solutions LFA2004 with hybrid RS232 and analog control. - * - *Stages* - - - * Analog controlled galvanometers and piezoelectric stages. - * ASI with Tiger Controller - * ASI with MFC2000 Controller - * Mad City Labs Nano-Drive - * Physik Instrumente - * Sutter MP285 - * Thorlabs Stepper Actuators with a KST101 K-Cube Controller. - * Thorlabs Piezoelectric Inertia Actuators with a KIM001 K-Cube Controller - * - *Shutters* - - - * Digitally controlled shutters. - * - *Zoom* - - - * Dynamixel MX-28R - - -Device Firmware -=============== - -.. _firmware_overview: - - -**navigate** has been tested with the following firmware. Devices that are controlled -with analog or digital voltages are omitted. - - -.. list-table:: - :widths: 25 75 - :header-rows: 1 - - * - **Manufacturer** - - **Firmware Version** - * - *ASI* - - - * Tiger Controller 2.2.0. - - * - *Dynamixel* - - - * Dynamixel MX-28R - - * - *National Instruments* - - - * NI-DAQmx Device Drivers: 22.5.0, 22.8.0, 23.3.0, 23.8.0 - - * - *Hamamatsu* - - - * DCAM API: 20.7.641, 21.7.4321, 22.9.6509, 22.11.4321, 23.12.6736 - * Camera Firmware: 2.21B, 2.53.A, 3.20.A, 4.30.B, - * Active Silicon CoaXpress: 1.10, 1.13, 1.21. - - * - *Photometrics* - - - * PVCAM: 3.9.13 - - * - *Physik Instrumente* - - - * PIMikroMove: 2.36.1.0 - * PI_GCS2_DLL: 3.22.0.0 diff --git a/docs/source/user_guide/software_configuration.rst b/docs/source/user_guide/software_configuration.rst index 68335f7de..1eeba8d13 100644 --- a/docs/source/user_guide/software_configuration.rst +++ b/docs/source/user_guide/software_configuration.rst @@ -8,11 +8,13 @@ This section outlines the ``configuration.yaml``, ``experiment.yml``, ----------------- -Configuration File -================== +Initial Configuration +===================== In order for the **navigate** software to function, you will need to configure the -specifications of the various hardware that you will be using. The first time you -launch the software, **navigate** will create a copy of the +specifications of the various hardware that you will be using in the ``configuration +.yaml`` file. + +The first time you launch the software, **navigate** will create a copy of the ``navigate\config\configuration.yaml`` and the rest of the configuration files in ``C:\Users\Username\AppData\Local\.navigate\config`` on Windows or ``~/.navigate`` on Mac/Linux. **navigate** uses these local copies of the configuration files to store @@ -41,117 +43,16 @@ study for a general walkthrough of how to build your own configuration file and ----------------- -.. _hardware_section: - -Hardware Section ----------------- -The first section of the ``configuration.yaml`` file is called ``hardware``. It contains -all the necessary information to find and connect each hardware device to the -computer/software. - -Here is an example of what the section will look like: - -.. code-block:: yaml - - # Configuration in YAML - hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrca - serial_number: 302158 - - - type: HamamatsuOrca - serial_number: 302352 - filter_wheel: - type: SutterFilterWheel - port: COM19 - baudrate: 9600 - number_of_wheels: 2 - stage: - - - type: PI - controllername: 'C-884' - stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE - refmode: FRF FRF FRF FRF FRF FRF - serial_number: 119060508 - - - type: Thorlabs - serial_number: 74000375 - zoom: - type: DynamixelZoom - servo_id: 1 - port: COM18 - baudrate: 1000000 - -This example specifies that we are connected to - -* A National Instruments DAQ (possibly multiple). -* Two Hamamatsu Orca (Flash or Fusion) cameras with different serial numbers for - identification. -* A Sutter filter wheel controller connected via USB on port ``COM19``. This control two - filter wheels. -* A Physik Instrumente controller, identified by serial number, with access to 5 stages in ``FRF`` refrence mode - (see PI's documentation). -* A Thorlabs stage (with a single axis), identified by a serial number. -* A Dynamixel zoom device connected via USB on port ``COM18``. - -Make sure that the ``configuration.yaml`` specifies the hardware on your microscope. -For example, if you wanted to remove the Thorlabs stage and replace the PI stage with -an ASI stage, the ``stage`` section would instead read: - -.. code-block:: yaml - - stage: - type: ASI - serial_number: 123456789 - port: COM7 - baudrate: 115200 - -Notice that since we are now using a single stage, we no longer have a ``-`` above the -stage entry. The ``-`` indicates a list, and is only needed if we want to load multiple -types of a single hardware. - -.. note:: - - The type of the device is needed when deciding which Python object to instantiate - on startup of the software (eg ``type: ASI``). The other fields (eg ``port: COM7``) - change depending on the manufacturer's API. They help the API communicate with the - computer you are using, which in turn allows the **navigate** software to communicate - with the device. - -Running the software with our current microscope setup would fail. It turns out our -ASI stage only moves in the ``X``, ``Y``, ``Z`` and ``F`` axes. We need a way to handle -the ``Theta`` axis. To address this, we will change our ``stage`` block of the YAML to -also load a ``SyntheticStage``: - -.. code-block:: yaml - - stage: - - - type: ASI - serial_number: 123456789 - port: COM7 - baudrate: 115200 - - - type: SyntheticStage - serial_number: 987654321 - -If your microscope system does not have a device listed in the hardware section using -the synthetic typing will allow the software to run without it. Another example would -be replacing the zoom type with ``SyntheticZoom`` in the instance your microscope does -not use that hardware. Your system will still run as you expect. +Microscope Configurations +------------------------- ------------------ - -Microscope Section ------------------- - -The second section of ``configuration.yaml`` contains the microscope configurations +The ``configuration.yaml`` file contains the microscope configurations that you will be using with the software. Each microscope is represented as a YAML -dictionary, as in the hardware section. This section enables us to load one or more -microscopes using the same hardware with varying combinations: +dictionary. + +Switching between each microscope is +readily performed in **navigate**, enabling you to switch between different +configurations or imaging modes, each with their own unique or shared hardware: .. code-block:: yaml @@ -164,14 +65,14 @@ microscopes using the same hardware with varying combinations: ... Where ``microscope1`` and ``microscope2`` are names of two different microscopes using -different combinations of the hardware listed in the ``hardware`` section. The names of +different combinations of the hardware. The names of the microscopes must not include spaces or special characters such as ``<``, ``\``, ``#``, ``%``, or ``?``. Each microscope is expected to have a ``daq``, ``camera``, ``remote_focus_device``, -``galvo``, ``filter_wheel``, ``stage``, ``zoom``, ``shutter`` and ``lasers`` section of -the YAML dictionary. As in the hardware section, unused devices can be specified as -synthetic. +``galvo``, ``filter_wheel``, ``stage``, ``zoom``, ``shutter``, ``mirror`` and +``lasers`` section of the YAML dictionary. As in the hardware section, unused devices +can be specified as synthetic. Most of the information to set up these devices can be found in the :doc:`Supported Hardware ` section of the documentation. @@ -182,7 +83,7 @@ pixel size. ----------------- Stage Subsection -^^^^^^^^^^^^^^^^ +------------------------- The stage section of the microscope 1) puts the stage control from the ``hardware`` section into the microscope 2) sets boundaries for stage movement and 3) optionally @@ -226,14 +127,15 @@ specifies joystick-controlled axes. theta_offset: 0 f_offset: 0 + + First, we set the axes controlled by each piece of hardware and a mapping from the hardware's API axes to our software's axes. For example, the ASI ``M`` axis is mapped onto our software's ``X`` axis below. -As you may recall from the :ref:`Hardware Section `, we needed to -add the ``SyntheticStage`` to control ``Theta``. We now specify in the microscope that -``Theta`` is controlled by the synthetic stage in the ``hardware`` section of -``microscope1``. +For ``stages``, **navigate** requires that stages are configured for each microscope +in ``X``, ``Y``, ``Z``, ``F``, and ``Theta``. If no physical stage is present, then +that axes should be defined as a ``SyntheticStage``, as shown above for ``Theta``. Below this, we specify that only ``X``, ``Y`` and ``Z`` axes may be controlled by a joystick and we set the stage bounds for each of the axes. @@ -262,7 +164,7 @@ and ``F`` is focus, but this can be changed by changing axes mapping. axes: [x, y, z, theta, f] axes_mapping: [x, y, z, r, f] -If, on a certain microscope, the ``Z`` stage axis corresponds to the optical y-axis, +If, on a certain microscope, the ``Z`` stage axis corresponds to the optical Y-axis, and vice versa, you would then have to import the stages as following: .. code-block:: yaml @@ -298,12 +200,13 @@ appear in the stage field as following: ----------------- Zoom Subsection -^^^^^^^^^^^^^^^ +------------------------- + The ``zoom`` section of ``configuration.yaml`` specifies control over microscope -zoom lenses. For example, we use the -`Dynamixel Smart Actuator `_ to control the rotating -zoom wheel on an Olympus MVXPLAPO 1x/0.25. +zoom lenses, or devices that change the magnifcation of the imaging system. For +example, we use the `Dynamixel Smart Actuator `_ to +control the rotating zoom wheel on an Olympus MVXPLAPO 1x/0.25. .. code-block:: yaml @@ -342,12 +245,12 @@ zoom wheel on an Olympus MVXPLAPO 1x/0.25. 6x: 6 -The ``hardware`` section connects to the zoom hardware. The ``positions`` specify the -voltage of the actuator at different zoom positions. The ``pixel_size`` specifies the -effective pixel size of the system at each zoom. The ``stage_positions`` account for -focal shifts in between the different zoom values (the MVXPLAPO does not have a -consistent focal plane). These may change depending on the immersion media. Here it is -specified for a ``BABB`` (Benzyl Alcohol Benzyl Benzoate) immersion media. +The ``positions`` specify the voltage of the actuator at different zoom positions. +The ``pixel_size`` specifies the effective pixel size of the system at each zoom. The +``stage_positions`` account for focal shifts in between the different zoom values +(the MVXPLAPO does not have a consistent focal plane). These may change depending on +the immersion media. Here it is specified for a ``BABB`` (Benzyl Alcohol Benzyl +Benzoate) immersion media. Regardless of whether or not your microscope uses a zoom device, you must have a ``zoom`` entry, indicating the effective pixel size of your system in micrometers. @@ -365,83 +268,6 @@ For example, pixel_size: N/A: 0.168 ------------------ - -GUI Section ------------ - -The third and final section of the ``configuration.yaml`` file is the GUI parameters. - -It will look something like the below: - -.. code-block:: yaml - - gui: - channels: - count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.200 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 - -The values in each field relate to GUI widgets. - -- The ``channels`` section indicates GUI settings for the channel settings under - :guilabel:`Channels`, :guilabel:`Channel Settings`. - - - `count` specifies how many channels should be displayed. - - `laser_power`, `exposure_time` and `interval_time` are used to set - the minimum, maximum and step size values for :guilabel:`Power`, - :guilabel:`Exp. Time (ms)` and :guilabel:`Interval`, respectively. - -- The ``stack_acquisition`` section indicates GUI settings for the stack acquisition - settings under :guilabel:`Channels`, :guilabel:`Stack Acquisition Settings (um)`. - - - `step_size`, `start_pos` and `end_pos` are used to set the minimum, maximum and step - size values for :guilabel:`Step Size`, :guilabel:`Start` and :guilabel:`End`, - respectively. - -- The ``timepoint`` section indicates GUI settings for the timepoint - settings under :guilabel:`Channels`, :guilabel:`Timepoint Settings`. - - - `timepoints` and `stack_pause` are used to set the minimum, maximum and step - size values for :guilabel:`Timepoints` and :guilabel:`Stack Pause (s)`, - respectively. - -.. note:: - - This section is still under development. The plan going forward is to have all - widgets be controlled in this manner. ----------------- diff --git a/docs/source/user_guide/software_configuration_archive.rst b/docs/source/user_guide/software_configuration_archive.rst new file mode 100644 index 000000000..68335f7de --- /dev/null +++ b/docs/source/user_guide/software_configuration_archive.rst @@ -0,0 +1,484 @@ +====================== +Configuration Overview +====================== + +This section outlines the ``configuration.yaml``, ``experiment.yml``, +``rest_api_config.yml``, ``waveform_templates.yml``, and +``waveform_constants.yml`` files. + +----------------- + +Configuration File +================== +In order for the **navigate** software to function, you will need to configure the +specifications of the various hardware that you will be using. The first time you +launch the software, **navigate** will create a copy of the +``navigate\config\configuration.yaml`` and the rest of the configuration files in +``C:\Users\Username\AppData\Local\.navigate\config`` on Windows or ``~/.navigate`` on +Mac/Linux. **navigate** uses these local copies of the configuration files to store +information specific to the setup attached to the computer it is installed on. + +To avoid confusion, we recommend launching the software in the synthetic hardware +mode initially. Within your Terminal, or Anaconda Prompt, activate your **navigate** +Python environment and launch the software by typing: ``navigate -sh``. Thereafter, you +should only modify the ``configuration.yaml`` file in your local ``.navigate\config`` +directory. The local copy avoids conflicts between different microscopes after pulling +new changes from GitHub. + +.. tip:: + + Once **navigate** is open in the synthetic hardware mode, you can open the + ``configuration.yaml`` file by going to :menuselection:`File` menu and selecting + :ref:`Open Configuration Files `. + +It may help to open +``C:\Users\Username\AppData\Local\.navigate\config\configuration.yaml`` and follow +along in this file when reading the next sections. + +See the :ref:`Setting up an Axially Swept Light-Sheet Microscope ` case +study for a general walkthrough of how to build your own configuration file and see +:doc:`Implementations ` for examples of configuration files. + +----------------- + +.. _hardware_section: + +Hardware Section +---------------- +The first section of the ``configuration.yaml`` file is called ``hardware``. It contains +all the necessary information to find and connect each hardware device to the +computer/software. + +Here is an example of what the section will look like: + +.. code-block:: yaml + + # Configuration in YAML + hardware: + daq: + type: NI + camera: + - + type: HamamatsuOrca + serial_number: 302158 + - + type: HamamatsuOrca + serial_number: 302352 + filter_wheel: + type: SutterFilterWheel + port: COM19 + baudrate: 9600 + number_of_wheels: 2 + stage: + - + type: PI + controllername: 'C-884' + stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE + refmode: FRF FRF FRF FRF FRF FRF + serial_number: 119060508 + - + type: Thorlabs + serial_number: 74000375 + zoom: + type: DynamixelZoom + servo_id: 1 + port: COM18 + baudrate: 1000000 + +This example specifies that we are connected to + +* A National Instruments DAQ (possibly multiple). +* Two Hamamatsu Orca (Flash or Fusion) cameras with different serial numbers for + identification. +* A Sutter filter wheel controller connected via USB on port ``COM19``. This control two + filter wheels. +* A Physik Instrumente controller, identified by serial number, with access to 5 stages in ``FRF`` refrence mode + (see PI's documentation). +* A Thorlabs stage (with a single axis), identified by a serial number. +* A Dynamixel zoom device connected via USB on port ``COM18``. + +Make sure that the ``configuration.yaml`` specifies the hardware on your microscope. +For example, if you wanted to remove the Thorlabs stage and replace the PI stage with +an ASI stage, the ``stage`` section would instead read: + +.. code-block:: yaml + + stage: + type: ASI + serial_number: 123456789 + port: COM7 + baudrate: 115200 + +Notice that since we are now using a single stage, we no longer have a ``-`` above the +stage entry. The ``-`` indicates a list, and is only needed if we want to load multiple +types of a single hardware. + +.. note:: + + The type of the device is needed when deciding which Python object to instantiate + on startup of the software (eg ``type: ASI``). The other fields (eg ``port: COM7``) + change depending on the manufacturer's API. They help the API communicate with the + computer you are using, which in turn allows the **navigate** software to communicate + with the device. + +Running the software with our current microscope setup would fail. It turns out our +ASI stage only moves in the ``X``, ``Y``, ``Z`` and ``F`` axes. We need a way to handle +the ``Theta`` axis. To address this, we will change our ``stage`` block of the YAML to +also load a ``SyntheticStage``: + +.. code-block:: yaml + + stage: + - + type: ASI + serial_number: 123456789 + port: COM7 + baudrate: 115200 + - + type: SyntheticStage + serial_number: 987654321 + +If your microscope system does not have a device listed in the hardware section using +the synthetic typing will allow the software to run without it. Another example would +be replacing the zoom type with ``SyntheticZoom`` in the instance your microscope does +not use that hardware. Your system will still run as you expect. + +----------------- + +Microscope Section +------------------ + +The second section of ``configuration.yaml`` contains the microscope configurations +that you will be using with the software. Each microscope is represented as a YAML +dictionary, as in the hardware section. This section enables us to load one or more +microscopes using the same hardware with varying combinations: + +.. code-block:: yaml + + microscopes: + microscope1: + ... + ... + microscope2: + ... + ... + +Where ``microscope1`` and ``microscope2`` are names of two different microscopes using +different combinations of the hardware listed in the ``hardware`` section. The names of +the microscopes must not include spaces or special characters such as ``<``, ``\``, +``#``, ``%``, or ``?``. + +Each microscope is expected to have a ``daq``, ``camera``, ``remote_focus_device``, +``galvo``, ``filter_wheel``, ``stage``, ``zoom``, ``shutter`` and ``lasers`` section of +the YAML dictionary. As in the hardware section, unused devices can be specified as +synthetic. + +Most of the information to set up these devices can be found in the +:doc:`Supported Hardware ` section of the documentation. +Additional explanations of a few specific sections of the microscope configuration are +below. Notably, the ``zoom`` section of the ``configuration.yaml`` specifies effective +pixel size. + +----------------- + +Stage Subsection +^^^^^^^^^^^^^^^^ + +The stage section of the microscope 1) puts the stage control from the ``hardware`` +section into the microscope 2) sets boundaries for stage movement and 3) optionally +specifies joystick-controlled axes. + +.. code-block:: yaml + + microscopes: + microscope1: + stage: + hardware: + - + name: stage + type: ASI + serial_number: 123456789 + axes: [x, y, z, f] # Software + axes_mapping: [M, Y, X, Z] # M Shear axis mapping + + + - + name: stage + type: SyntheticStage + serial_number: 987654321 + axes: [theta] + + joystick_axes: [x, y, z] + x_max: 100000 + x_min: -100000 + y_max: 100000 + y_min: -100000 + z_max: 100000 + z_min: -100000 + f_max: 100000 + f_min: -100000 + theta_max: 360 + theta_min: 0 + + x_offset: 0 + y_offset: 0 + z_offset: 0 + theta_offset: 0 + f_offset: 0 + +First, we set the axes controlled by each piece of hardware and a mapping from the +hardware's API axes to our software's axes. For example, the ASI ``M`` axis is mapped +onto our software's ``X`` axis below. + +As you may recall from the :ref:`Hardware Section `, we needed to +add the ``SyntheticStage`` to control ``Theta``. We now specify in the microscope that +``Theta`` is controlled by the synthetic stage in the ``hardware`` section of +``microscope1``. + +Below this, we specify that only ``X``, ``Y`` and ``Z`` axes may be controlled by a +joystick and we set the stage bounds for each of the axes. + +Finally, we set the offset for each stage axis. This is an offset relative to other +microscopes (e.g. ``microscope2``) specified in ``configuration.yaml``. In this case, +``microscope1`` is the reference microscope. Additional microscopes may ask the stage +to move to a different offset in order to observe the sample at the same position as +``microscope1``. + +----------------- + +Stage Axes Definition +""""""""""""""""""""" + +Many times, the coordinate system of the stage hardware do not agree with the optical +definition of each axes identity. For example, many stages define their vertical +dimension as ``Z``, whereas optically, we often define this axis as ``X``. Thus, there +is often a need to map the mechanical axes to the optical axes, and this is done with +the ``axes_mapping`` dictionary entry in the stage hardware section. By default, stage +axes are read in as ``X``, ``Y``, ``Z``, ``Theta``, ``F``, where ``Theta`` is rotation +and ``F`` is focus, but this can be changed by changing axes mapping. + +.. code-block:: yaml + + axes: [x, y, z, theta, f] + axes_mapping: [x, y, z, r, f] + +If, on a certain microscope, the ``Z`` stage axis corresponds to the optical y-axis, +and vice versa, you would then have to import the stages as following: + +.. code-block:: yaml + + axes: [x, y, z, theta, f] + axes_mapping: [x, z, y, r, f] + +----------------- + +Joystick Axes Definition +"""""""""""""""""""""""" + +If you are using a joystick, it is possible to disable GUI control of the stage axes +that the joystick can interact with. The axes that the joystick can interact with +appear in the stage field as following: + +.. code-block:: yaml + + joystick_axes: [x, y, z] + +.. Note:: + + These axes should agree with the optical axes. If, on the same microscope + as mentioned in the :ref:`Stage Axes Definition ` + section, the joystick were to control the optical y-axis corresponding to + the stage z axis, you would have to put ``Y`` in the joystick axes brackets + as following: + +.. code-block:: yaml + + joystick_axes: [y] + +----------------- + +Zoom Subsection +^^^^^^^^^^^^^^^ + +The ``zoom`` section of ``configuration.yaml`` specifies control over microscope +zoom lenses. For example, we use the +`Dynamixel Smart Actuator `_ to control the rotating +zoom wheel on an Olympus MVXPLAPO 1x/0.25. + +.. code-block:: yaml + + microscopes: + microscope1: + zoom: + hardware: + name: zoom + type: DynamixelZoom + servo_id: 1 + position: + 0.63x: 0 + 1x: 627 + 2x: 1711 + 3x: 2301 + 4x: 2710 + 5x: 3079 + 6x: 3383 + pixel_size: + 0.63x: 9.7 + 1x: 6.38 + 2x: 3.14 + 3x: 2.12 + 4x: 1.609 + 5x: 1.255 + 6x: 1.044 + stage_positions: + BABB: + f: + 0.63x: 0 + 1x: 1 + 2x: 2 + 3x: 3 + 4x: 4 + 5x: 5 + 6x: 6 + + +The ``hardware`` section connects to the zoom hardware. The ``positions`` specify the +voltage of the actuator at different zoom positions. The ``pixel_size`` specifies the +effective pixel size of the system at each zoom. The ``stage_positions`` account for +focal shifts in between the different zoom values (the MVXPLAPO does not have a +consistent focal plane). These may change depending on the immersion media. Here it is +specified for a ``BABB`` (Benzyl Alcohol Benzyl Benzoate) immersion media. + +Regardless of whether or not your microscope uses a zoom device, you must have a +``zoom`` entry, indicating the effective pixel size of your system in micrometers. +For example, + +.. code-block:: yaml + + zoom: + hardware: + name: zoom + type: SyntheticZoom + servo_id: 1 + position: + N/A: 0 + pixel_size: + N/A: 0.168 + +----------------- + +GUI Section +----------- + +The third and final section of the ``configuration.yaml`` file is the GUI parameters. + +It will look something like the below: + +.. code-block:: yaml + + gui: + channels: + count: 5 + laser_power: + min: 0 + max: 100 + step: 10 + exposure_time: + min: 1 + max: 1000 + step: 5 + interval_time: + min: 0 + max: 1000 + step: 5 + stack_acquisition: + step_size: + min: 0.200 + max: 1000 + step: 0.1 + start_pos: + min: -5000 + max: 5000 + step: 1 + end_pos: + min: -5000 + max: 10000 + step: 1 + timepoint: + timepoints: + min: 1 + max: 1000 + step: 1 + stack_pause: + min: 0 + max: 1000 + step: 1 + +The values in each field relate to GUI widgets. + +- The ``channels`` section indicates GUI settings for the channel settings under + :guilabel:`Channels`, :guilabel:`Channel Settings`. + + - `count` specifies how many channels should be displayed. + - `laser_power`, `exposure_time` and `interval_time` are used to set + the minimum, maximum and step size values for :guilabel:`Power`, + :guilabel:`Exp. Time (ms)` and :guilabel:`Interval`, respectively. + +- The ``stack_acquisition`` section indicates GUI settings for the stack acquisition + settings under :guilabel:`Channels`, :guilabel:`Stack Acquisition Settings (um)`. + + - `step_size`, `start_pos` and `end_pos` are used to set the minimum, maximum and step + size values for :guilabel:`Step Size`, :guilabel:`Start` and :guilabel:`End`, + respectively. + +- The ``timepoint`` section indicates GUI settings for the timepoint + settings under :guilabel:`Channels`, :guilabel:`Timepoint Settings`. + + - `timepoints` and `stack_pause` are used to set the minimum, maximum and step + size values for :guilabel:`Timepoints` and :guilabel:`Stack Pause (s)`, + respectively. + +.. note:: + + This section is still under development. The plan going forward is to have all + widgets be controlled in this manner. + +----------------- + +Experiment File +=============== + +The ``experiment.yml`` file stores information about the current state of the program. +This includes laser and camera parameters, saving options, z-stack settings and much +more. This file does not need to be edited by the user. The program will update it +automatically and save changes automatically on exit. + +----------------- + +Waveform Constants File +======================= + +The ``waveform_constants.yml`` file stores the waveform parameters that can be edited +by going to :menuselection:`Microscope Configuration --> Waveform Parameters`. This +file does not need to be edited by the user. The program will update it automatically +and save changes automatically on exit. + +----------------- + +Waveform Templates File +======================= + +The waveform templates file stores default behavior for the number of repeats for +specific waveforms. This file only needs to be edited if the user wishes to introduce +a new waveform behavior to the application. + +----------------- + +Rest API Configuration File +=========================== + +The REST API configuration file specifies where the REST API should look to get +and post data. This is only needed if you are using a plugin that requires the +REST API, such as our communication with `ilastik `_. More +information on how to setup the REST API for communication with ilastik can be found +:doc:`here `. diff --git a/src/navigate/config/configuration.yaml b/src/navigate/config/configuration.yaml index b2977cfa9..483243825 100644 --- a/src/navigate/config/configuration.yaml +++ b/src/navigate/config/configuration.yaml @@ -1,48 +1,13 @@ -# Specify all necessary information to find and connect to each hardware -# device that will be used on any of the scopes. -hardware: - daq: - type: NI - camera: - - - type: HamamatsuOrca - serial_number: 302158 - - - type: HamamatsuOrca - serial_number: 302352 - filter_wheel: - type: SutterFilterWheel - port: COM19 - baudrate: 9600 - number_of_wheels: 2 - stage: - - - type: PI - controllername: 'C-884' - stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE - refmode: FRF FRF FRF FRF FRF FRF - serial_number: 119060508 - - - type: Thorlabs - serial_number: 74000375 - zoom: - type: DynamixelZoom - servo_id: 1 - port: COM18 - baudrate: 1000000 - # Only one microscope can be active in the GUI at a time, but all microscopes will be accessible microscopes: Mesoscale: daq: hardware: - name: daq type: NI # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. # Sampling rate in Hz sample_rate: 100000 - sweep_time: 0.2 # triggers master_trigger_out_line: PXI6259/port0/line1 @@ -55,21 +20,12 @@ microscopes: camera: hardware: - name: camera type: HamamatsuOrca - serial_number: 302352 - lightsheet_rolling_shutter_width: 608 - defect_correct_mode: 2.0 # Off: 1.0, On: 2.0 - delay_percent: 10 - pulse_percent: 1 - x_pixels_step: 4 - y_pixels_step: 4 - x_pixels_min: 4 - y_pixels_min: 4 - exposure_time_range: - min: 1 - max: 1000 - step: 1 + serial_number: 302158 + camera_connection: PMPCIECam00 #Photometrics only + defect_correct_mode: 2.0 + delay: 1.0 #ms + settle_down: 0.0 #ms flip_x: False flip_y: False remote_focus_device: @@ -79,32 +35,23 @@ microscopes: channel: PXI6259/ao2 min: 0 max: 5 - # Optotune EL-16-40-TC-VIS-5D-1-C - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 + port: + baudrate: galvo: - hardware: - name: daq type: NI channel: PXI6259/ao0 min: -5 max: 5 waveform: sine - frequency: 99.9 - amplitude: 2.5 - offset: 0.5 - duty_cycle: 50 phase: 1.57079 # pi/2 filter_wheel: hardware: - name: filter_wheel type: SutterFilterWheel wheel_number: 1 + port: + baudrate: 0 filter_wheel_delay: .030 # in seconds available_filters: Empty-Alignment: 0 @@ -120,17 +67,27 @@ microscopes: stage: hardware: - - name: stage type: PI serial_number: 119060508 axes: [x, y, z, theta, f] axes_mapping: [1, 2, 3, 4, 5] - volts_per_micron: None - axes_channels: None - max: None - min: None + feedback_alignment: + device_units_per_mm: + volts_per_micron: + min: 0.0 + max: 5.0 + distance_threshold: 5.0 + settle_duration_ms: 18.0 + controllername: 'C-884' + stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE + refmode: FRF FRF FRF FRF FRF FRF + port: + baudrate: 0 + timeout: 0.25 joystick_axes: [x, y, z] + # coupled_axes: + # z: f x_max: 100000 x_min: -100000 y_max: 100000 @@ -142,13 +99,6 @@ microscopes: theta_max: 360 theta_min: 0 - x_step: 500 - y_step: 500 - z_step: 500 - theta_step: 30 - f_step: 500 - velocity: 1000 - x_offset: 0 y_offset: 0 z_offset: 0 @@ -158,12 +108,14 @@ microscopes: flip_x: False flip_y: False flip_z: False + flip_f: False zoom: hardware: - name: zoom type: DynamixelZoom servo_id: 1 + port: COM9 + baudrate: 100000 position: 0.63x: 0 1x: 627 @@ -192,7 +144,6 @@ microscopes: 6x: 6 shutter: hardware: - name: daq type: NI channel: PXI6259/port0/line0 min: 0 @@ -205,70 +156,53 @@ microscopes: - wavelength: 488 onoff: hardware: - name: daq type: NI channel: PXI6733/port0/line2 min: 0 max: 5 power: hardware: - name: daq type: NI channel: PXI6733/ao0 min: 0 max: 5 type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - wavelength: 562 onoff: hardware: - name: daq type: NI channel: PXI6733/port0/line3 min: 0 max: 5 power: hardware: - name: daq type: NI channel: PXI6733/ao1 min: 0 max: 5 type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - wavelength: 642 onoff: hardware: - name: daq type: NI channel: PXI6733/port0/line4 min: 0 max: 5 power: hardware: - name: daq type: NI channel: PXI6733/ao2 min: 0 max: 5 type: LuxX - index: 2 - delay_percent: 10 - pulse_percent: 87 Nanoscale: daq: hardware: - name: daq type: NI # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. # Sampling rate in Hz sample_rate: 100000 - sweep_time: 0.2 # triggers master_trigger_out_line: PXI6259/port0/line1 @@ -281,54 +215,37 @@ microscopes: camera: hardware: - name: camera type: HamamatsuOrca - serial_number: 302158 - lightsheet_rolling_shutter_width: 100 - defect_correct_mode: 2.0 # Off: 1.0, On: 2.0 - delay_percent: 10 - pulse_percent: 1 - x_pixels_step: 4 - y_pixels_step: 4 - x_pixels_min: 4 - y_pixels_min: 4 - exposure_time_range: - min: 1 - max: 1000 - step: 1 + serial_number: 302352 + camera_connection: PMPCIECam00 #Photometrics only + defect_correct_mode: 2.0 + delay: 1.0 #ms + settle_down: 0 #ms + flip_x: False + flip_y: False remote_focus_device: hardware: - name: daq type: NI channel: PXI6259/ao3 min: -0.7 max: 0.7 - # Optotune EL-16-40-TC-VIS-5D-1-C - delay_percent: 7.5 - ramp_rising_percent: 85 - ramp_falling_percent: 2.5 - amplitude: 0.7 - offset: 2.3 - smoothing: 0.0 + port: + baudrate: 0 galvo: - hardware: - name: daq type: NI channel: PXI6259/ao1 min: -5 max: 5 waveform: sine - frequency: 99.9 - amplitude: 2.5 - offset: 0.5 - duty_cycle: 50 phase: 1.57079 # pi/2 filter_wheel: hardware: - name: filter_wheel type: SutterFilterWheel wheel_number: 2 + port: + baudrate: filter_wheel_delay: .030 # in seconds available_filters: Empty-Alignment: 0 @@ -344,27 +261,45 @@ microscopes: stage: hardware: - - name: stage type: PI serial_number: 119060508 axes: [x, y, z, theta] axes_mapping: [1, 2, 3, 4] - volts_per_micron: None - axes_channels: None - max: None - min: None + feedback_alignment: + device_units_per_mm: + volts_per_micron: + min: 0.0 + max: 5.0 + distance_threshold: 5.0 + settle_duration_ms: 18.0 + controllername: 'C-884' + stages: L-509.20DG10 L-509.40DG10 L-509.20DG10 M-060.DG M-406.4PD NOSTAGE + refmode: FRF FRF FRF FRF FRF FRF + port: + baudrate: 0 + timeout: 0.25 - - name: stage type: Thorlabs serial_number: 74000375 axes: [f] axes_mapping: [1] - volts_per_micron: None - axes_channels: None - max: None - min: None + feedback_alignment: + device_units_per_mm: + volts_per_micron: + min: 0.0 + max: 5.0 + distance_threshold: 5.0 + settle_duration_ms: 18.0 + controllername: + stages: + refmode: + port: + baudrate: 0 + timeout: 0.25 joystick_axes: [x, y, z] + # coupled_axes: + # z: f x_max: 100000 x_min: -100000 y_max: 100000 @@ -376,20 +311,22 @@ microscopes: theta_max: 360 theta_min: 0 - x_step: 500 - y_step: 500 - z_step: 500 - theta_step: 30 - f_step: 500 - velocity: 1000 - x_offset: 1 y_offset: 1 z_offset: 1 theta_offset: 0 f_offset: 0 + flip_x: False + flip_y: False + flip_z: False + flip_f: False zoom: + hardware: + type: synthetic + servo_id: + port: + baudrate: position: N/A: 0 pixel_size: @@ -403,8 +340,8 @@ microscopes: name: daq type: NI channel: PXI6259/port2/line0 - shutter_min_do: 0 - shutter_max_do: 5 + min: 0.0 + max: 5.0 lasers: # Omicron LightHub Ultra # 488 and 640 are LuxX+ Lasers @@ -413,98 +350,49 @@ microscopes: - wavelength: 488 onoff: hardware: - name: daq type: NI channel: PXI6733/port0/line2 min: 0 max: 5 power: hardware: - name: daq type: NI channel: PXI6733/ao0 min: 0 max: 5 type: LuxX - index: 0 - delay_percent: 10 - pulse_percent: 87 - wavelength: 562 onoff: hardware: - name: daq type: NI channel: PXI6733/port0/line3 min: 0 max: 5 power: hardware: - name: daq type: NI channel: PXI6733/ao1 min: 0 max: 5 type: Obis - index: 1 - delay_percent: 10 - pulse_percent: 87 - wavelength: 642 onoff: hardware: - name: daq type: NI channel: PXI6733/port0/line4 min: 0 max: 5 power: hardware: - name: daq type: NI channel: PXI6733/ao2 min: 0 max: 5 type: LuxX - index: 2 - delay_percent: 10 - pulse_percent: 87 gui: channels: count: 5 - laser_power: - min: 0 - max: 100 - step: 10 - exposure_time: - min: 1 - max: 1000 - step: 5 - interval_time: - min: 0 - max: 1000 - step: 5 - stack_acquisition: - step_size: - min: 0.100 - max: 1000 - step: 0.1 - start_pos: - min: -5000 - max: 5000 - step: 1 - end_pos: - min: -5000 - max: 10000 - step: 1 - timepoint: - timepoints: - min: 1 - max: 1000 - step: 1 - stack_pause: - min: 0 - max: 1000 - step: 1 BDVParameters: # The following parameters are used to configure the BigDataViewer diff --git a/src/navigate/config/configuration_database.py b/src/navigate/config/configuration_database.py index 2c69fd408..5b8e0e141 100644 --- a/src/navigate/config/configuration_database.py +++ b/src/navigate/config/configuration_database.py @@ -1,20 +1,46 @@ camera_device_types = { "Hamamatsu ORCA Lightning": "HamamatsuOrcaLightning", "Hamamatsu ORCA Fire": "HamamatsuOrcaFire", + "Hamamatsu ORCA Fusion": "HamamatsuOrcaFusion", "Hamamatsu Flash 4.0": "HamamatsuOrca", "Photometrics Iris 15B": "Photometrics", - "Virtual Device": "synthetic" + "Virtual Device": "synthetic", } camera_hardware_widgets = { "hardware/type": ["Device Type", "Combobox", "string", camera_device_types, None], - "hardware/serial_number": ["Serial Number", "Input", "string", None, 'Example: "302352"'], - "hardware/camera_connection": ["Camera Connection", "Input", "string", None, "*Photometrics Iris 15B only"], - "defect_correct_mode": ["Defect Correct Mode", "Combobox", "string", {"On": 2.0, "Off": 1.0}, None], - "delay": ["Delay (ms)", "Spinbox", "float", None, None], + "hardware/serial_number": [ + "Serial Number", + "Input", + "string", + None, + 'Example: "302352"', + ], + "hardware/camera_connection": [ + "Camera Connection", + "Input", + "string", + None, + "*Photometrics Iris 15B only", + ], + "defect_correct_mode": [ + "Defect Correct Mode", + "Combobox", + "string", + {"On": 2.0, "Off": 1.0}, + None, + ], + "delay": ["Delay (ms)", "Spinbox", "float", {"from": 0, "to": 100, "step": 0.1}, None], + "settle_down": ["Settle Down (ms)", "Spinbox", "float", {"from": 0, "to": 100, "step": 0.1}, None], "flip_x": ["Flip X", "Checkbutton", "bool", None, None], "flip_y": ["Flip Y", "Checkbutton", "bool", None, None], - "count": ["Microscope Channel Count", "Spinbox", "int", {"from": 5, "to": 10, "step": 1}, None] + "supported_channel_count": [ + "Microscope Channel Count", + "Spinbox", + "int", + {"from": 5, "to": 10, "step": 1}, + None, + ], } filter_wheel_device_types = { @@ -27,30 +53,86 @@ "filter_name": ["Filter Name", "Input", "string", None, "Example: Empty-Alignment"], "filter_value": ["Filter Value", "Input", "string", None, "Example: 0"], "button_1": ["Delete", "Button", {"delete": True}], - "frame_config": {"ref": "available_filters", "format": "item(filter_name,filter_value),", "direction": "horizon"} + "frame_config": { + "ref": "available_filters", + "format": "item(filter_name,filter_value),", + "direction": "horizon", + }, } filter_wheel_hardware_widgets = { - "hardware/type": ["Device Type", "Combobox", "string", filter_wheel_device_types, None], + "hardware/type": [ + "Device Type", + "Combobox", + "string", + filter_wheel_device_types, + None, + ], "hardware/wheel_number": ["Number of Wheels", "Spinbox", "int", None, "Example: 1"], "hardware/port": ["Serial Port", "Input", "string", None, "Example: COM1"], - "hardware/baudrate": ["Baudrate", "Input", "int", None, "Example: 9200"], - "filter_wheel_delay": ["Filter Wheel Delay (s)", "Input", "float", None, "Example: 0.03"], - "button_1": ["Add Available Filters", "Button", {"widgets":filter_wheel_widgets, "ref": "available_filters", "direction": "horizon"}] + "hardware/baudrate": ["Baudrate", "Input", "int", None, "Example: 9600"], + "filter_wheel_delay": [ + "Filter Wheel Delay (s)", + "Input", + "float", + None, + "Example: 0.03", + ], + "button_1": [ + "Add Available Filters", + "Button", + { + "widgets": filter_wheel_widgets, + "ref": "available_filters", + "direction": "horizon", + "parent": "constants", + }, + ], } daq_device_types = { "National Instruments": "NI", + "Virtual Device": "synthetic", } daq_hardware_widgets = { "hardware/type": ["Device Type", "Combobox", "string", daq_device_types, None], - "sample_rate": ["Sample Rate", "Input", "int", None, "Example: 9600"], - "master_trigger_out_line": ["Master Trigger Out", "Input", "string", None, "Example: PXI6259/port0/line1"], - "camera_trigger_out_line": ["Camera Trigger Out", "Input", "string", None, "Example: /PXI6259/ctr0"], - "trigger_source": ["Trigger Source", "Input", "string", None, "Example: /PXI6259/PFI0"], - "laser_port_switcher": ["Laser Switcher Port", "Input", "string", None, "Example: PXI6733/port0/line0"], - "laser_switch_state": ["Laser Switch On State", "Combobox", "bool", [True, False], None], + "sample_rate": ["Sample Rate", "Input", "int", None, "Example: 100000"], + "master_trigger_out_line": [ + "Master Trigger Out", + "Input", + "string", + None, + "Example: PXI6259/port0/line1", + ], + "camera_trigger_out_line": [ + "Camera Trigger Out", + "Input", + "string", + None, + "Example: /PXI6259/ctr0", + ], + "trigger_source": [ + "Trigger Source", + "Input", + "string", + None, + "Example: /PXI6259/PFI0", + ], + "laser_port_switcher": [ + "Laser Switcher Port", + "Input", + "string", + None, + "Example: PXI6733/port0/line0", + ], + "laser_switch_state": [ + "Laser Switch On State", + "Combobox", + "bool", + [True, False], + None, + ], } shutter_device_types = { @@ -63,80 +145,274 @@ "channel": ["NI Channel", "Input", "string", None, "Example: PXI6259/port0/line0"], "min": ["Minimum Voltage", "Spinbox", "float", None, "Example: 0"], "max": ["Maximum Voltage", "Spinbox", "float", None, "Example: 5"], - "frame_config": {"ref": "hardware"} + "frame_config": {"ref": "hardware"}, } stage_device_types = { "Applied Scientific Instrumentation": "ASI", + "ASI MFC2000": "MFC2000", + "ASI MS2000": "MS2000", "Analog/Digital Device": "GalvoNIStage", "Mad City Labs": "MCL", "Physik Instrumente": "PI", "Sutter Instruments": "MP285", - "ThorLabs KCube Inertial Device": "Thorlabs", + "ThorLabs KCube Inertial Device KIM001": "Thorlabs", + "ThorLabs KCube Inertial Device KST101": "KST101", "Virtual Device": "synthetic", } stage_hardware_widgets = { "type": ["Device Type", "Combobox", "string", stage_device_types, None], "serial_number": ["Serial Number", "Input", "string", None, None], - "axes": ["Axes", "Input", "string", None, "Example: [x, y, z]"], - "axes_mapping": ["Axes Mapping", "Input", "string", None, "Example: [X, M, Y]"], - "volts_per_micron": ["Volts Per Micron", "Spinbox", "float", {"from": 0, "to": 100, "step":0.1}, "*Analog/Digital Device only"], - "min": ["Minimum Volts", "Spinbox", "float", {"from": 0, "to": 5, "step": 0.1}, "*Analog/Digital Device only",], - "max": ["Maximum Volts", "Spinbox", "float", {"from": 1, "to": 100, "step": 0.1}, "*Analog/Digital Device only",], - "controllername": ["Controller Name", "Input", "string", None, "*Physik Instrumente only. Example: 'C-884'"], - "stages": ["PI Stages", "Input", "string", None, "*Physik Instrumente only. Example: L-509.20DG10 L-509.40DG10"], - "refmode": ["REF Modes", "Input", "string", None, "*Physik Instrumente only. Example: FRF FRF"], + "axes": ["Axes", "Input", "string", None,"Example: [x, y, z, theta, f]", "[x, y, z]"], + "axes_mapping": ["Axes Mapping", "Input", "string", None, "Example: [X, M, Y, D, E]", "[X, M, Y]"], + "feedback_alignment": ["Feedback Alighment", "Input", "string", None, "*ASI stage only. Example: [90, 90, 90, 0, 90]", "[90, 90, 90]"], + "device_units_per_mm": ["Device Units Per Micron", "Input", "float", None, "*KST101 only. Example: 2000.0", 1000.25], + "volts_per_micron": [ + "Volts Per Micron", + "Input", + "string", + None, + "*Analog/Digital Device only. Example: '0.1*x+0.05'", + "0.1*x+0.05" + ], + "min": [ + "Minimum Volts", + "Spinbox", + "float", + {"from": 0, "to": 5, "step": 0.1}, + "*Analog/Digital Device only", + 0, + ], + "max": [ + "Maximum Volts", + "Spinbox", + "float", + {"from": 1, "to": 100, "step": 0.1}, + "*Analog/Digital Device only", + 5, + ], + "distance_threshold": [ + "Distance Threshold", + "Spinbox", + "float", + {"from": 0, "to": 100, "step": 1}, + "*Analog-Controlled Galvo/Peizo only", + 5 + ], + "settle_duration_ms": [ + "Settle Duration (ms)", + "Spinbox", + "float", + {"from": 0, "to": 100, "step": 1}, + "*Analog-Controlled Galvo/Peizo only", + 20 + ], + "controllername": [ + "Controller Name", + "Input", + "string", + None, + "*Physik Instrumente only. Example: 'C-884'", + ], + "stages": [ + "PI Stages", + "Input", + "string", + None, + "*Physik Instrumente only. Example: L-509.20DG10 L-509.40DG10", + ], + "refmode": [ + "REF Modes", + "Input", + "string", + None, + "*Physik Instrumente only. Example: FRF FRF", + ], "port": ["Serial Port", "Input", "string", None, "Example: COM1"], - "baudrate": ["Baudrate", "Input", "int", None, "Example: 9200"], + "baudrate": ["Baudrate", "Input", "int", None, "Example: 9600"], + "timeout": ["Serial Timeout", "Input", "float", None, "Example: 0.25", 0.25], "button_2": ["Delete", "Button", {"delete": True}], - "frame_config": {"collapsible": True, "title": "Stage", "ref": "hardware", "format": "list-dict"} + "frame_config": { + "collapsible": True, + "title": "Stage", + "ref": "hardware", + "format": "list-dict", + }, } stage_top_widgets = { - "button_1": ["Add New Stage Device", "Button", {"widgets": stage_hardware_widgets, "ref": "hardware", "parent": "hardware"}], + "button_1": [ + "Add New Stage Device", + "Button", + {"widgets": stage_hardware_widgets, "ref": "hardware", "parent": "hardware"}, + ], } stage_constants_widgets = { - "joystick_axes": ["Joystick Axes", "Input", "string", None, "Example: [x, y, z]"], - "x_min": ["Min X", "Spinbox", "float", {"from": -100000, "to": 10000, "step": 1000}, None], - "x_max": ["Max X", "Spinbox", "float", {"from": 0, "to": 10000, "step": 1000}, None], - "y_min": ["Min Y", "Spinbox", "float", {"from": -100000, "to": 10000, "step": 1000}, None], - "y_max": ["Max Y", "Spinbox", "float", {"from": 0, "to": 10000, "step": 1000}, None], - "z_min": ["Min Z", "Spinbox", "float", {"from": -100000, "to": 10000, "step": 1000}, None], - "z_max": ["Max Z", "Spinbox", "float", {"from": 0, "to": 10000, "step": 1000}, None], - "theta_min": ["Min Theta", "Spinbox", "float", {"from": 0, "to": 360, "step": 1000}, None], - "theta_max": ["Max Theta", "Spinbox", "float", {"from": 0, "to": 360, "step": 1000}, None], - "f_min": ["Min Focus", "Spinbox", "float", {"from": -100000, "to": 10000, "step": 1000}, None], - "f_max": ["Max Focus", "Spinbox", "float", {"from": 0, "to": 10000, "step": 1000}, None], - "x_offset": ["Offset of X", "Spinbox", "float", {"from": -100000, "to": 10000, "step": 1000}, "Example: 0"], - "y_offset": ["Offset of Y", "Spinbox", "float", {"from": -100000, "to": 10000, "step": 1000}, "Example: 0"], - "z_offset": ["Offset of Z", "Spinbox", "float", {"from": -100000, "to": 10000, "step": 1000}, "Example: 0"], - "theta_offset": ["Offset of Theta", "Spinbox", "float", {"from": -100000, "to": 10000, "step": 1000}, "Example: 0"], - "f_offset": ["Offset of Focus", "Spinbox", "float", {"from": -100000, "to": 10000, "step": 1000}, "Example: 0"], - "frame_config": {"collapsible": True, "title": "Stage Constants"} + "joystick_axes": ["Joystick Axes", "Input", "string", None, "Example: [x, y, z]", "[x, y, z]"], + "x_min": [ + "Min X", + "Spinbox", + "float", + {"from": -100000, "to": 100000, "step": 1000}, + None, + -10000 + ], + "x_max": [ + "Max X", + "Spinbox", + "float", + {"from": 0, "to": 100000, "step": 1000}, + None, + 10000 + ], + "y_min": [ + "Min Y", + "Spinbox", + "float", + {"from": -100000, "to": 100000, "step": 1000}, + None, + -10000 + ], + "y_max": [ + "Max Y", + "Spinbox", + "float", + {"from": 0, "to": 100000, "step": 1000}, + None, + 10000 + ], + "z_min": [ + "Min Z", + "Spinbox", + "float", + {"from": -100000, "to": 10000, "step": 1000}, + None, + -10000 + ], + "z_max": [ + "Max Z", + "Spinbox", + "float", + {"from": 0, "to": 100000, "step": 1000}, + None, + 10000 + ], + "theta_min": [ + "Min Theta", + "Spinbox", + "float", + {"from": 0, "to": 360, "step": 1}, + None, + 0 + ], + "theta_max": [ + "Max Theta", + "Spinbox", + "float", + {"from": 0, "to": 360, "step": 1}, + None, + 360, + ], + "f_min": [ + "Min Focus", + "Spinbox", + "float", + {"from": -100000, "to": 100000, "step": 1000}, + None, + -10000, + ], + "f_max": [ + "Max Focus", + "Spinbox", + "float", + {"from": 0, "to": 100000, "step": 1000}, + None, + 10000, + ], + "x_offset": [ + "Offset of X", + "Spinbox", + "float", + {"from": -10000, "to": 10000, "step": 1000}, + None, + 0, + ], + "y_offset": [ + "Offset of Y", + "Spinbox", + "float", + {"from": -10000, "to": 10000, "step": 100}, + None, + 0, + ], + "z_offset": [ + "Offset of Z", + "Spinbox", + "float", + {"from": -10000, "to": 10000, "step": 10}, + None, + 0, + ], + "theta_offset": [ + "Offset of Theta", + "Spinbox", + "float", + {"from": 0, "to": 360, "step": 1}, + None, + 0, + ], + "f_offset": [ + "Offset of Focus", + "Spinbox", + "float", + {"from": -10000, "to": 10000, "step": 10}, + None, + 0, + ], + "flip_x": ["Flip X", "Checkbutton", "bool", None, None], + "flip_y": ["Flip Y", "Checkbutton", "bool", None, None], + "flip_z": ["Flip Z", "Checkbutton", "bool", None, None], + "flip_f": ["Flip F", "Checkbutton", "bool", None, None], + "frame_config": {"collapsible": True, "title": "Stage Constants"}, } remote_focus_device_types = { "Equipment Solutions": "EquipmentSolutions", "Analog Device": "NI", - "Virtual Device": "synthetic" + "Virtual Device": "synthetic", } remote_focus_hardware_widgets = { "type": ["Device Type", "Combobox", "string", remote_focus_device_types, None], "channel": ["DAQ Channel", "Input", "string", None, "Example: PXI6259/ao3"], - "min": ["Minimum Voltage", "Spinbox", "float", {"from": -10, "to": 10, "step": 1}, None], - "max": ["Maximum Voltage", "Spinbox", "float", {"from": 0, "to": 10, "step": 1}, None], - "comport": ["Serial Port", "Input", "string", None, "*Equipment Solutions only"], - "baudrate": ["Baudrate", "Input", "int", None, "*Equipment Solutions only. Example: 9200"], - "frame_config": {"ref": "hardware"} + "min": [ + "Minimum Voltage", + "Spinbox", + "float", + {"from": -10, "to": 10, "step": 1}, + None, + ], + "max": [ + "Maximum Voltage", + "Spinbox", + "float", + {"from": 0, "to": 10, "step": 1}, + None, + ], + "port": ["Serial Port", "Input", "string", None, "*Equipment Solutions only"], + "baudrate": [ + "Baudrate", + "Input", + "int", + None, + "*Equipment Solutions only. Example: 9600", + ], + "frame_config": {"ref": "hardware"}, } -galvo_device_types = { - "Analog Device": "NI", - "Virtual Device": "synthetic" -} +galvo_device_types = {"Analog Device": "NI", "Virtual Device": "synthetic"} waveform_types = { "Sine": "sine", @@ -146,30 +422,65 @@ galvo_hardware_widgets = { "hardware/type": ["Device Type", "Combobox", "string", galvo_device_types, None], - "hardware/channel": ["DAQ Channel", "Input", "string", None, "Example: PXI6259/ao1"], - "hardware/min": ["Minimum Voltage", "Spinbox", "float", {"from": -10, "to": 10, "step": 0.1}, None], - "hardware/max": ["Maximum Voltage", "Spinbox", "float", {"from": 0, "to": 10, "step": 0.1}, None], + "hardware/channel": [ + "DAQ Channel", + "Input", + "string", + None, + "*Analog Device only. Example: PXI6259/ao1", + ], + "hardware/min": [ + "Minimum Voltage", + "Spinbox", + "float", + {"from": -10, "to": 10, "step": 0.1}, + None, + ], + "hardware/max": [ + "Maximum Voltage", + "Spinbox", + "float", + {"from": 0, "to": 10, "step": 0.1}, + None, + ], "waveform": ["Waveform", "Combobox", "string", waveform_types, None], - "phase": ["Phase", "Input", "string", None, "Example: 1.57"], + "phase": [ + "Phase", + "Spinbox", + "float", + {"from": 0, "to": 10, "step": 0.1}, + "Example: 1.57", + 0 + ], "button_1": ["Delete", "Button", {"delete": True}], - "frame_config": {"collapsible": True, "title": "Galvo Device", "ref": "None", "format": "list-dict"} + "frame_config": { + "collapsible": True, + "title": "Galvo Device", + "ref": "None", + "format": "list-dict", + }, } galvo_top_widgets = { - "button_1": ["Add New Device", "Button", {"widgets": galvo_hardware_widgets, "parent": "hardware"}], + "button_1": [ + "Add New Device", + "Button", + {"widgets": galvo_hardware_widgets, "parent": "hardware"}, + ], } -zoom_device_types = { - "Dynamixel": "DynamixelZoom", - "Virtual Device": "synthetic" -} +zoom_device_types = {"Dynamixel": "DynamixelZoom", "Virtual Device": "synthetic"} zoom_position_widgets = { "zoom_value": ["Zoom Value", "Input", "string", None, "Example: 16x"], "position": ["Position", "Input", "float", None, "Example: 1000"], "pixel_size": ["Pixel Size (um)", "Input", "float", None, "Example: 0.5"], "button_1": ["Delete", "Button", {"delete": True}], - "frame_config": {"ref": "position;pixel_size", "format": "item(zoom_value, position);item(zoom_value, pixel_size)", "direction": "horizon"} + "frame_config": { + "ref": "position;pixel_size", + "format": "item(zoom_value, position);item(zoom_value, pixel_size)", + "direction": "horizon", + }, } zoom_hardware_widgets = { @@ -177,43 +488,101 @@ "servo_id": ["Servo ID", "Input", "string", None, "Example: 1"], "port": ["Serial Port", "Input", "string", None, "Example: COM1"], "baudrate": ["Baudrate", "Input", "int", None, "Example: 9600"], - "button_1": ["Add Zoom Value", "Button", {"widgets":zoom_position_widgets, "ref": "position;pixel_size", "direction": "horizon"}], - "frame_config": {"ref": "hardware"} + "button_1": [ + "Add Zoom Value", + "Button", + { + "widgets": zoom_position_widgets, + "ref": "position;pixel_size", + "direction": "horizon", + "parent": "constants", + }, + ], + "frame_config": {"ref": "hardware"}, } mirror_device_types = { "Imagine Optics": "ImagineOpticsMirror", - "Virtual Device": "SyntheticMirror" + "Virtual Device": "SyntheticMirror", } mirror_hardware_widgets = { - "type": ["Device Type", "Combobox", "string", mirror_device_types, None], - "frame_config": {"ref": "hardware"} + "hardware/type": ["Device Type", "Combobox", "string", mirror_device_types, None], + "hardware/flat_path": [ + "Flat Mirror Path", + "Input", + "string", + None, + "Example: D:\WaveKitX64\MirrorFiles\Beads.wcs", + ], + "n_modes": ["Number of Modes", "Input", "int", None, "Example: 32", 32], } -laser_device_types = { - "Analog Device": "NI", - "Virtual Device": "synthetic" -} +laser_device_types = {"Analog Device": "NI", "Virtual Device": "synthetic"} laser_hardware_widgets = { - "wavelength": ["Wavelength", "Input", "int", None, None, "Example: 488"], + "wavelength": ["Wavelength", "Input", "int", None, "Example: 488", 488], "onoff": ["On/Off Setting", "Label", None, None, None], "onoff/hardware/type": ["Type", "Combobox", "string", laser_device_types, None], - "onoff/hardware/channel": ["DAQ Channel", "Input", "string", None, "Example: PXI6733/port0/line2"], - "onoff/hardware/min": ["Minimum Voltage", "Spinbox", "float", {"from": 0, "to": 100, "step": 1}, None], - "onoff/hardware/max": ["Maximum Voltage", "Spinbox", "float", {"from": 0, "to": 100, "step": 1}, None], + "onoff/hardware/channel": [ + "DAQ Channel", + "Input", + "string", + None, + "Example: PXI6733/port0/line2", + ], + "onoff/hardware/min": [ + "Minimum Voltage", + "Spinbox", + "float", + {"from": 0, "to": 100, "step": 1}, + None, + ], + "onoff/hardware/max": [ + "Maximum Voltage", + "Spinbox", + "float", + {"from": 0, "to": 100, "step": 1}, + None, + ], "power": ["Power Setting", "Label", None, None, None], "power/hardware/type": ["Type", "Combobox", "string", laser_device_types, None], - "power/hardware/channel": ["DAQ Channel", "Input", "string", None, "Example: PXI6733/ao0"], - "power/hardware/min": ["Minimum Voltage", "Spinbox", "float", {"from": 0, "to": 100, "step": 1}, None], - "power/hardware/max": ["Maximum Voltage", "Spinbox", "float", {"from": 0, "to": 100, "step": 1}, None], + "power/hardware/channel": [ + "DAQ Channel", + "Input", + "string", + None, + "Example: PXI6733/ao0", + ], + "power/hardware/min": [ + "Minimum Voltage", + "Spinbox", + "float", + {"from": 0, "to": 1000, "step": 1}, + None, + ], + "power/hardware/max": [ + "Maximum Voltage", + "Spinbox", + "float", + {"from": 0, "to": 1000, "step": 1}, + None, + ], "button_1": ["Delete", "Button", {"delete": True}], - "frame_config": {"collapsible": True, "title": "Wavelength", "format": "list-dict", "ref": "None"} + "frame_config": { + "collapsible": True, + "title": "Wavelength", + "format": "list-dict", + "ref": "None", + }, } laser_top_widgets = { - "button_1": ["Add Wavelength", "Button", {"widgets": laser_hardware_widgets, "parent": "hardware"}], + "button_1": [ + "Add Wavelength", + "Button", + {"widgets": laser_hardware_widgets, "parent": "hardware"}, + ], } hardwares_dict = { @@ -226,7 +595,7 @@ "Adaptive Optics": mirror_hardware_widgets, "Shutters": shutter_hardware_widgets, "Stages": (stage_top_widgets, stage_hardware_widgets, stage_constants_widgets), - "Zoom Device": (None, zoom_hardware_widgets, zoom_position_widgets) + "Zoom Device": (None, zoom_hardware_widgets, zoom_position_widgets), } hardwares_config_name_dict = { @@ -240,4 +609,4 @@ "Shutters": "shutter", "Stages": "stage", "Zoom Device": "zoom", -} \ No newline at end of file +} diff --git a/src/navigate/controller/configurator.py b/src/navigate/controller/configurator.py index 73ce28b7b..95c627c0c 100644 --- a/src/navigate/controller/configurator.py +++ b/src/navigate/controller/configurator.py @@ -84,8 +84,8 @@ def __init__(self, root, splash_screen): self.view.top_window.load_button.config(command=self.load_configuration) self.view.top_window.save_button.config(command=self.save) self.view.top_window.cancel_button.config(command=self.on_cancel) + self.microscope_id = 0 self.create_config_window(0) - self.microscope_id = 1 print( "WARNING: The Configuration Assistant is not fully implemented. " @@ -99,14 +99,13 @@ def on_cancel(self): def add_microscope(self): """Add a new microscope tab""" - self.create_config_window(self.microscope_id) self.microscope_id += 1 + self.create_config_window(self.microscope_id) def delete_microscopes(self): """Delete all microscopes""" # delete microscopes - for index in range(self.view.microscope_window.index("end")): - tab_id = self.view.microscope_window.tabs()[index] + for tab_id in self.view.microscope_window.tabs(): self.view.microscope_window.forget(tab_id) self.view.microscope_window.tab_list = [] self.microscope_id = 0 @@ -306,11 +305,15 @@ def get_widgets_value(widgets, value_dict): continue value = get_widget_value(key, value_dict) # widgets[key][3] is the value mapping dict - if widgets[key][1] != "Spinbox" and widgets[key][3]: - reverse_value_dict = dict( - map(lambda v: (v[1], v[0]), widgets[key][3].items()) - ) - temp[key] = reverse_value_dict[value] + if widgets[key][1] != "Spinbox"and widgets[key][3]: + # if the value is not valid, return the last valid value + if type(widgets[key][3]) == list: + reverse_value_dict = dict(map(lambda v: (v, v), widgets[key][3])) + else: + reverse_value_dict = dict( + map(lambda v: (v[1], v[0]), widgets[key][3].items()) + ) + temp[key] = reverse_value_dict.get(value, list(reverse_value_dict.values())[-1]) else: temp[key] = value return temp @@ -396,7 +399,7 @@ def build_widgets_value(widgets, value_dict): hardware_ref_name ], ) - except: + except Exception as e: widgets_value = [None] microscope_tab.create_hardware_tab( hardware_type, widgets, hardware_widgets_value=widgets_value diff --git a/src/navigate/model/devices/remote_focus/remote_focus_equipment_solutions.py b/src/navigate/model/devices/remote_focus/remote_focus_equipment_solutions.py index b68954cb4..dff861c98 100644 --- a/src/navigate/model/devices/remote_focus/remote_focus_equipment_solutions.py +++ b/src/navigate/model/devices/remote_focus/remote_focus_equipment_solutions.py @@ -75,7 +75,7 @@ def __init__(self, microscope_name, device_connection, configuration): #: str: Name of the RS232 communication port. self.comport = configuration["configuration"]["microscopes"][microscope_name][ "remote_focus_device" - ]["hardware"].get("comport", "COM1") + ]["hardware"].get("port", "COM1") #: int: Baud rate of the RS232 communication port. self.baud_rate = 115200 diff --git a/src/navigate/view/configurator_application_window.py b/src/navigate/view/configurator_application_window.py index 884cc462e..b3ebb3537 100644 --- a/src/navigate/view/configurator_application_window.py +++ b/src/navigate/view/configurator_application_window.py @@ -342,16 +342,8 @@ def __init__( widgets_value=widgets_value, ) - count = 0 for widgets_value in constants_widgets_value: self.build_widgets(widgets, widgets_value=widgets_value) - # if self.name in ["Filter Wheel"]: - # count += 1 - # print("building widgets value:", self.name, widgets_value) - # if count > 4: - - # if count >= 10: - # break def create_hardware_widgets(self, hardware_widgets, frame, direction="vertical"): """create widgets @@ -416,6 +408,10 @@ def create_hardware_widgets(self, hardware_widgets, frame, direction="vertical") widget.config(to=v[3].get("to", 100000)) widget.config(increment=v[3].get("step", 1)) widget.set(v[3].get("from", 0)) + + # set default value + if len(v) >= 6 and v[5] is not None: + self.variables[k].set(str(v[5])) else: widget = ttk.Button( content_frame, @@ -429,6 +425,7 @@ def create_hardware_widgets(self, hardware_widgets, frame, direction="vertical") else: widget.grid(row=0, column=i, sticky=tk.NW, padx=(10, 3), pady=(3, 0)) + # display info label if len(v) >= 5 and v[4]: label = ttk.Label(content_frame, text=v[4]) if direction == "vertical": @@ -491,8 +488,6 @@ def build_widgets(self, widgets, *args, parent=None, widgets_value=None, **kwarg if widgets_value: for k, v in widgets_value.items(): try: - if k == "axes": - print("*** type", type(v), v, str(v)) self.variables[k].set(str(v)) except (TypeError, ValueError): pass diff --git a/test/config/test_configuration.py b/test/config/test_configuration.py index 0b71ad59f..b3e59ec18 100644 --- a/test/config/test_configuration.py +++ b/test/config/test_configuration.py @@ -54,27 +54,28 @@ def setUp(self): def tearDown(self): pass - def test_hardware_section(self): - expected_hardware = ["daq", "camera", "filter_wheel", "stage", "zoom"] - - hardware_types = self.data["hardware"].keys() - for hardware_type in hardware_types: - self.assertIn(hardware_type, expected_hardware) - if isinstance(self.data["hardware"][hardware_type], dict): - hardware_keys = self.data["hardware"][hardware_type].keys() - for key in hardware_keys: - self.assertIn("type", self.data["hardware"][hardware_type]) - elif isinstance(self.data["hardware"][hardware_type], list): - for i in range(len(self.data["hardware"][hardware_type])): - self.assertIn("type", self.data["hardware"][hardware_type][i]) + # # hardware head section has been removed + # def test_hardware_section(self): + # expected_hardware = ["daq", "camera", "filter_wheel", "stage", "zoom"] + + # hardware_types = self.data["hardware"].keys() + # for hardware_type in hardware_types: + # self.assertIn(hardware_type, expected_hardware) + # if isinstance(self.data["hardware"][hardware_type], dict): + # hardware_keys = self.data["hardware"][hardware_type].keys() + # for key in hardware_keys: + # self.assertIn("type", self.data["hardware"][hardware_type]) + # elif isinstance(self.data["hardware"][hardware_type], list): + # for i in range(len(self.data["hardware"][hardware_type])): + # self.assertIn("type", self.data["hardware"][hardware_type][i]) def test_gui_section(self): - expected_keys = ["channels", "stack_acquisition", "timepoint"] + expected_keys = ["channels"] expected_channel_keys = [ "count", - "laser_power", - "exposure_time", - "interval_time", + # "laser_power", + # "exposure_time", + # "interval_time", ] expected_stack_keys = ["step_size", "start_pos", "end_pos"] min_max_step_keys = ["min", "max", "step"] @@ -188,7 +189,7 @@ def daq_section(self, microscope, hardware_type): "laser_port_switcher", "laser_switch_state", ] - type_keys = ["name", "type"] + type_keys = ["type"] daq_keys = self.data["microscopes"][microscope][hardware_type].keys() for key in daq_keys: @@ -204,36 +205,13 @@ def daq_section(self, microscope, hardware_type): def camera_section(self, microscope, hardware_type): expected_keys = [ "hardware", - "x_pixels", - "y_pixels", - "pixel_size_in_microns", - "subsampling", - "sensor_mode", - "readout_direction", - "lightsheet_rolling_shutter_width", "defect_correct_mode", - "binning", - "readout_speed", - "trigger_active", - "trigger_mode", - "trigger_polarity", - "trigger_source", - "exposure_time", - "delay_percent", - "pulse_percent", - "line_interval", - "display_acquisition_subsampling", - "average_frame_rate", - "frames_to_average", - "exposure_time_range", + "delay", + "settle_down", "flip_x", "flip_y", - "x_pixels_step", - "y_pixels_step", - "x_pixels_min", - "y_pixels_min", ] - type_keys = ["name", "type"] + type_keys = ["type", "serial_number", "camera_connection"] camera_keys = self.data["microscopes"][microscope][hardware_type].keys() for key in camera_keys: @@ -249,14 +227,8 @@ def camera_section(self, microscope, hardware_type): def remote_focus_section(self, microscope, hardware_type): expected_keys = [ "hardware", - "delay_percent", - "ramp_rising_percent", - "ramp_falling_percent", - "amplitude", - "offset", - "smoothing", ] - type_keys = ["name", "type", "channel", "min", "max"] + type_keys = ["type", "channel", "min", "max", "port", "baudrate"] remote_focus_keys = self.data["microscopes"][microscope][hardware_type].keys() for key in remote_focus_keys: if key == "hardware": @@ -272,13 +244,9 @@ def galvo_section(self, microscope, hardware_type): expected_keys = [ "hardware", "waveform", - "frequency", - "amplitude", - "offset", - "duty_cycle", "phase", ] - type_keys = ["name", "type", "channel", "min", "max"] + type_keys = ["type", "channel", "min", "max"] if isinstance(self.data["microscopes"][microscope][hardware_type], list): for i in range(len(self.data["microscopes"][microscope][hardware_type])): @@ -305,7 +273,7 @@ def filter_wheel_section(self, microscope, hardware_type): "filter_wheel_delay", "available_filters", ] - type_keys = ["name", "type", "wheel_number"] + type_keys = ["type", "wheel_number", "port", "baudrate"] keys = self.data["microscopes"][microscope][hardware_type].keys() for key in keys: @@ -335,12 +303,6 @@ def stage_section(self, microscope, hardware_type): "f_min", "theta_max", "theta_min", - "x_step", - "y_step", - "z_step", - "theta_step", - "f_step", - "velocity", "x_offset", "y_offset", "z_offset", @@ -350,16 +312,22 @@ def stage_section(self, microscope, hardware_type): "flip_x", "flip_y", "flip_z", + "flip_f", ] type_keys = [ - "name", "type", "serial_number", "axes", "volts_per_micron", - "axes_channels", + "axes_mapping", "max", "min", + "controllername", + "stages", + "refmode", + "port", + "baudrate", + "timeout", ] for key in self.data["microscopes"][microscope][hardware_type].keys(): @@ -392,7 +360,7 @@ def stage_section(self, microscope, hardware_type): def zoom_section(self, microscope, hardware_type): expected_keys = ["hardware", "position", "pixel_size", "stage_positions"] - type_keys = ["name", "type", "servo_id"] + type_keys = ["type", "servo_id", "port", "baudrate"] for key in self.data["microscopes"][microscope][hardware_type].keys(): if key == "hardware": @@ -417,8 +385,8 @@ def zoom_section(self, microscope, hardware_type): self.assertIn(key, expected_keys) def shutter_section(self, microscope, hardware_type): - expected_keys = ["hardware", "shutter_min_do", "shutter_max_do"] - type_keys = ["name", "type", "channel"] + expected_keys = ["hardware"] + type_keys = ["type", "channel", "min", "max"] for key in self.data["microscopes"][microscope][hardware_type].keys(): if key == "hardware": @@ -436,12 +404,9 @@ def laser_section(self, microscope, hardware_type): "onoff", "power", "type", - "index", - "delay_percent", - "pulse_percent", ] - hardware_keys = ["name", "type", "channel", "min", "max"] + hardware_keys = ["type", "channel", "min", "max"] if isinstance(self.data["microscopes"][microscope][hardware_type], list): for i in range(len(self.data["microscopes"][microscope][hardware_type])):