From 75b0aa0e9f422033e3cd516280a2364e2fe8947f Mon Sep 17 00:00:00 2001 From: Kevin Dean <42547789+AdvancedImagingUTSW@users.noreply.github.com> Date: Tue, 14 May 2024 21:41:14 -0400 Subject: [PATCH 01/21] Updated Configuration Meant to convey changes to the configuration file. Still in progress. --- docs/source/user_guide/hardware/camera.rst | 186 +++ docs/source/user_guide/hardware/daq.rst | 161 ++ docs/source/user_guide/hardware/dcam_api.rst | 19 + .../user_guide/hardware/deformable_mirror.rst | 55 + .../user_guide/hardware/filter_wheel.rst | 99 ++ docs/source/user_guide/hardware/galvo.rst | 75 + .../user_guide/hardware/hardware_home.rst | 20 +- docs/source/user_guide/hardware/laser.rst | 110 ++ docs/source/user_guide/hardware/pvcam.rst | 21 + .../user_guide/hardware/remote_focus.rst | 101 ++ docs/source/user_guide/hardware/shutter.rst | 54 + docs/source/user_guide/hardware/stage.rst | 362 +++++ .../hardware/supported_hardware.rst | 1432 ----------------- docs/source/user_guide/hardware/zoom.rst | 89 + docs/source/user_guide/hardware_overview.rst | 2 +- .../user_guide/software_configuration.rst | 246 +-- .../software_configuration_archive.rst | 484 ++++++ src/navigate/config/configuration_database.py | 468 +++++- 18 files changed, 2263 insertions(+), 1721 deletions(-) create mode 100644 docs/source/user_guide/hardware/camera.rst create mode 100644 docs/source/user_guide/hardware/daq.rst create mode 100644 docs/source/user_guide/hardware/dcam_api.rst create mode 100644 docs/source/user_guide/hardware/deformable_mirror.rst create mode 100644 docs/source/user_guide/hardware/filter_wheel.rst create mode 100644 docs/source/user_guide/hardware/galvo.rst create mode 100644 docs/source/user_guide/hardware/laser.rst create mode 100644 docs/source/user_guide/hardware/pvcam.rst create mode 100644 docs/source/user_guide/hardware/remote_focus.rst create mode 100644 docs/source/user_guide/hardware/shutter.rst create mode 100644 docs/source/user_guide/hardware/stage.rst delete mode 100644 docs/source/user_guide/hardware/supported_hardware.rst create mode 100644 docs/source/user_guide/hardware/zoom.rst create mode 100644 docs/source/user_guide/software_configuration_archive.rst diff --git a/docs/source/user_guide/hardware/camera.rst b/docs/source/user_guide/hardware/camera.rst new file mode 100644 index 000000000..4e6d0b85a --- /dev/null +++ b/docs/source/user_guide/hardware/camera.rst @@ -0,0 +1,186 @@ + +.. _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 +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :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 + flip_x: False + flip_y: False + count: 5 + +| + +------------------ + + +ORCA-Fusion +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +**navigate** works with both the back-thinned and front-illuminated versions of the +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 + flip_x: False + flip_y: False + count: 5 + +| + +------------------ + + +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 + flip_x: False + flip_y: False + count: 5 + +| + +------------------ + + +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 + flip_x: False + flip_y: False + count: 5 +| + +------------------ + +Photometrics +------------ + +- :ref:`Install Directions `. + + +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 + flip_x: False + flip_y: False + count: 5 + +| + +------------------ + + +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 + flip_x: False + flip_y: False + count: 5 + +| diff --git a/docs/source/user_guide/hardware/daq.rst b/docs/source/user_guide/hardware/daq.rst new file mode 100644 index 000000000..5c78ef38a --- /dev/null +++ b/docs/source/user_guide/hardware/daq.rst @@ -0,0 +1,161 @@ +===================== +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 + + 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 + +| + +.. 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. + +------------------ + + +**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..29bb2b36d --- /dev/null +++ b/docs/source/user_guide/hardware/deformable_mirror.rst @@ -0,0 +1,55 @@ + +================== +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 +------------- + +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: + 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..73c4afcb0 --- /dev/null +++ b/docs/source/user_guide/hardware/filter_wheel.rst @@ -0,0 +1,99 @@ +============= +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 +------------------ +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 +--- +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..5fde4d510 --- /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: NI + 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..a169b7cfe 100644 --- a/docs/source/user_guide/hardware/hardware_home.rst +++ b/docs/source/user_guide/hardware/hardware_home.rst @@ -1,7 +1,23 @@ Hardware ======== +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 `_. + .. 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..1090b3302 --- /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: 0.0 + power: + hardware: + type: NI + channel: PXI6733/ao0 + min: 0.0 + max: 0.0 + - + wavelength: 561 + onoff: + hardware: + type: NI + channel: PXI6733/port0/line3 + min: 0.0 + max: 0.0 + power: + hardware: + type: NI + channel: PXI6733/ao1 + min: 0.0 + max: 0.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: 0.0 + power: + hardware: + type: synthetic + channel: PXI6733/ao0 + min: 0.0 + max: 0.0 + - + wavelength: 561 + onoff: + hardware: + type: synthetic + channel: PXI6733/port0/line3 + min: 0.0 + max: 0.0 + power: + hardware: + type: synthetic + channel: PXI6733/ao1 + min: 0.0 + max: 0.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..83b6daaae --- /dev/null +++ b/docs/source/user_guide/hardware/remote_focus.rst @@ -0,0 +1,101 @@ +======================= +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: + type: EquipmentSolutions + channel: PXI6269/ao3 + min: -5.0 + max: 5.0 + comport: 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. 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 + comport: 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 + comport: 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..352d9939e --- /dev/null +++ b/docs/source/user_guide/hardware/stage.rst @@ -0,0 +1,362 @@ +====== +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 `_. +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 + + microscopes: + microscope: + stage: + hardware: + - + type: ASI + serial_number: 001 + axes: [X, Y, Z, F, Theta] + axes_mapping: [A, B, C, D, E] + feedback_alignment: [90, 90, 90, 90] + volts_per_micron: 0.0 + min: 0.0 + max: 1.0 + controllername: + stages: + refmode: + port: + baudrate: 0 + joystick_axes: [X, Y, Z] + x_min: -100000.0 + x_max: 0.0 + y_min: -100000.0 + y_max: 0.0 + z_min: -100000.0 + z_max: 0.0 + theta_min: 0.0 + theta_max: 0.0 + f_min: -100000.0 + f_max: 0.0 + x_offset: -100000.0 + y_offset: -100000.0 + z_offset: -100000.0 + theta_offset: -100000.0 + f_offset: -100000.0 + +| + +------------------ + +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 + + 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 + + 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: [X, Y, Z] + x_min: -100000.0 + x_max: 0.0 + y_min: -100000.0 + y_max: 0.0 + z_min: -100000.0 + z_max: 0.0 + theta_min: 0.0 + theta_max: 0.0 + f_min: -100000.0 + f_max: 0.0 + x_offset: -100000.0 + y_offset: -100000.0 + z_offset: -100000.0 + theta_offset: -100000.0 + f_offset: -100000.0 + +| + +---------------- + +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, F, Theta] + 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: -100000.0 + x_max: 0.0 + y_min: -100000.0 + y_max: 0.0 + z_min: -100000.0 + z_max: 0.0 + theta_min: 0.0 + theta_max: 0.0 + f_min: -100000.0 + f_max: 0.0 + x_offset: -100000.0 + y_offset: -100000.0 + z_offset: -100000.0 + theta_offset: -100000.0 + f_offset: -100000.0 + +| 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..2f3e7adf3 --- /dev/null +++ b/docs/source/user_guide/hardware/zoom.rst @@ -0,0 +1,89 @@ +=============== +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 +--------- + +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: + 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: + 36X: 0 + + +| + +--------------- + +.. _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: + 36X: 0 + +| diff --git a/docs/source/user_guide/hardware_overview.rst b/docs/source/user_guide/hardware_overview.rst index d9aa4d011..f36294237 100644 --- a/docs/source/user_guide/hardware_overview.rst +++ b/docs/source/user_guide/hardware_overview.rst @@ -7,7 +7,7 @@ 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 `. +configure each of these devices is provided :doc:`here `. .. list-table:: 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_database.py b/src/navigate/config/configuration_database.py index 2c69fd408..5d9148a7f 100644 --- a/src/navigate/config/configuration_database.py +++ b/src/navigate/config/configuration_database.py @@ -1,20 +1,45 @@ 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], + "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], "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] + "count": [ + "Microscope Channel Count", + "Spinbox", + "int", + {"from": 5, "to": 10, "step": 1}, + None, + ], } filter_wheel_device_types = { @@ -27,30 +52,85 @@ "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"}] + "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", + }, + ], } 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], + "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,7 +143,7 @@ "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 = { @@ -81,62 +161,212 @@ "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"], + "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", + ], "port": ["Serial Port", "Input", "string", None, "Example: COM1"], "baudrate": ["Baudrate", "Input", "int", None, "Example: 9200"], "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"} + "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"}, } 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], + "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"} + "baudrate": [ + "Baudrate", + "Input", + "int", + None, + "*Equipment Solutions only. Example: 9200", + ], + "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 +376,58 @@ 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, + "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"], "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 +435,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", + }, + ], + "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"} + "flat_path": [ + "Flat Mirror Path", + "Input", + "string", + None, + "Example: D:\WaveKitX64\MirrorFiles\Beads.wcs", + ], + "n_modes": ["Number of Modes", "Input", "int", None, None, "Example: 32"], + "frame_config": {"ref": "hardware"}, } -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"], "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": 100, "step": 1}, + None, + ], + "power/hardware/max": [ + "Maximum Voltage", + "Spinbox", + "float", + {"from": 0, "to": 100, "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 +542,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 +556,4 @@ "Shutters": "shutter", "Stages": "stage", "Zoom Device": "zoom", -} \ No newline at end of file +} From 95e52160801e55a0f2472e2190e012a53e4285bc Mon Sep 17 00:00:00 2001 From: Kevin Dean <42547789+AdvancedImagingUTSW@users.noreply.github.com> Date: Tue, 14 May 2024 21:55:59 -0400 Subject: [PATCH 02/21] Minor tweaks --- .../contributing/software_architecture.rst | 18 +++++++++++---- docs/source/user_guide/hardware/camera.rst | 3 --- docs/source/user_guide/hardware/daq.rst | 22 +++++++++---------- .../user_guide/hardware/remote_focus.rst | 6 +++++ 4 files changed, 31 insertions(+), 18 deletions(-) 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/user_guide/hardware/camera.rst b/docs/source/user_guide/hardware/camera.rst index 4e6d0b85a..033cf06e0 100644 --- a/docs/source/user_guide/hardware/camera.rst +++ b/docs/source/user_guide/hardware/camera.rst @@ -42,9 +42,6 @@ ORCA-Flash4.0 V3 ORCA-Fusion ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -**navigate** works with both the back-thinned and front-illuminated versions of the -ORCA-Fusion. - - :ref:`Install Directions `. - `ORCA-Fusion Manual `_. diff --git a/docs/source/user_guide/hardware/daq.rst b/docs/source/user_guide/hardware/daq.rst index 5c78ef38a..3d841b24c 100644 --- a/docs/source/user_guide/hardware/daq.rst +++ b/docs/source/user_guide/hardware/daq.rst @@ -39,8 +39,13 @@ Manager as a **NI Data Acquisition Device**. the back of the cover. This is misleading. You must look at the device pinouts in NI MAX. -Wiring -^^^^^^ + +.. 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 @@ -74,19 +79,14 @@ Wiring | -.. 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. - ------------------ **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 @@ -107,7 +107,7 @@ turn lasers on simultaneously, we could distribute the lasers across independent 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 @@ -125,7 +125,7 @@ located on ``connector 0``. 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. diff --git a/docs/source/user_guide/hardware/remote_focus.rst b/docs/source/user_guide/hardware/remote_focus.rst index 83b6daaae..67473857f 100644 --- a/docs/source/user_guide/hardware/remote_focus.rst +++ b/docs/source/user_guide/hardware/remote_focus.rst @@ -13,6 +13,8 @@ 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 ------------------- @@ -50,6 +52,8 @@ operating range. | +------------- + Analog Controlled Voice Coils and Tunable Lenses ------------------------------------------------ @@ -78,6 +82,8 @@ operating range. | +------------------ + Synthetic Remote Focus Device ----------------------------- If no remote focus device is present, one must configure the software to use a synthetic From 5e2e30c9f4140679f39f396d07e9920e0a6137e7 Mon Sep 17 00:00:00 2001 From: Kevin Dean <42547789+AdvancedImagingUTSW@users.noreply.github.com> Date: Thu, 16 May 2024 07:49:49 -0400 Subject: [PATCH 03/21] Hardware updates Realized that the hardware overview was no longer really necessary after restructuring the hardware_home page. By adding a table of contents to the latter, it became much easier to read. Consequently, the former was just data duplication and would only be additional maintenance. --- docs/source/index.rst | 2 +- docs/source/user_guide/hardware/camera.rst | 21 ++ docs/source/user_guide/hardware/daq.rst | 15 +- .../user_guide/hardware/deformable_mirror.rst | 3 + .../user_guide/hardware/filter_wheel.rst | 14 +- .../user_guide/hardware/hardware_home.rst | 15 +- .../user_guide/hardware/remote_focus.rst | 35 ++- docs/source/user_guide/hardware/stage.rst | 224 +++++++++++++++++- docs/source/user_guide/hardware/zoom.rst | 10 +- docs/source/user_guide/hardware_overview.rst | 103 -------- 10 files changed, 309 insertions(+), 133 deletions(-) delete mode 100644 docs/source/user_guide/hardware_overview.rst 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 index 033cf06e0..e748e8133 100644 --- a/docs/source/user_guide/hardware/camera.rst +++ b/docs/source/user_guide/hardware/camera.rst @@ -10,6 +10,18 @@ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -132,6 +144,15 @@ Photometrics - :ref:`Install Directions `. +.. note:: + + **navigate** has been tested with the following versions of the Photometric's + drivers: + + - PVCAM: 3.9.13 + +----------------- + Iris 15 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/source/user_guide/hardware/daq.rst b/docs/source/user_guide/hardware/daq.rst index 3d841b24c..32fd6ad90 100644 --- a/docs/source/user_guide/hardware/daq.rst +++ b/docs/source/user_guide/hardware/daq.rst @@ -1,6 +1,6 @@ -===================== -Data Acquisition Card -===================== +====================== +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 @@ -27,6 +27,15 @@ Once installed, connect the PCIe or PXIe-based device to the computer. A functio 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:: diff --git a/docs/source/user_guide/hardware/deformable_mirror.rst b/docs/source/user_guide/hardware/deformable_mirror.rst index 29bb2b36d..7809811f2 100644 --- a/docs/source/user_guide/hardware/deformable_mirror.rst +++ b/docs/source/user_guide/hardware/deformable_mirror.rst @@ -11,6 +11,9 @@ 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 diff --git a/docs/source/user_guide/hardware/filter_wheel.rst b/docs/source/user_guide/hardware/filter_wheel.rst index 73c4afcb0..ec42da542 100644 --- a/docs/source/user_guide/hardware/filter_wheel.rst +++ b/docs/source/user_guide/hardware/filter_wheel.rst @@ -10,6 +10,10 @@ change the names of available filters to match what is in the filter wheel or tu 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, @@ -45,8 +49,14 @@ enable control of both filter wheels independently. 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. + +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 diff --git a/docs/source/user_guide/hardware/hardware_home.rst b/docs/source/user_guide/hardware/hardware_home.rst index a169b7cfe..dbdeaa991 100644 --- a/docs/source/user_guide/hardware/hardware_home.rst +++ b/docs/source/user_guide/hardware/hardware_home.rst @@ -1,9 +1,14 @@ -Hardware -======== +.. _hardware_overview: -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 +==================== +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 `_. diff --git a/docs/source/user_guide/hardware/remote_focus.rst b/docs/source/user_guide/hardware/remote_focus.rst index 67473857f..6e6f462a5 100644 --- a/docs/source/user_guide/hardware/remote_focus.rst +++ b/docs/source/user_guide/hardware/remote_focus.rst @@ -18,6 +18,9 @@ higher-order correction provided by voice coils in an aberration-free remote foc 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 @@ -60,10 +63,34 @@ 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. +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 + comport: COM2 + baudrate: 9600 + +| + +Optotune Focus Tunable Lens +~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. collapse:: Configuration File diff --git a/docs/source/user_guide/hardware/stage.rst b/docs/source/user_guide/hardware/stage.rst index 352d9939e..84de4a603 100644 --- a/docs/source/user_guide/hardware/stage.rst +++ b/docs/source/user_guide/hardware/stage.rst @@ -32,14 +32,25 @@ The ASI `Tiger Controller `_. -For stages in particular, there is a ``feedback_alignment`` configuration option option -corresponds to the `Tiger Controller AA Command `_. -.. tip:: +.. 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 @@ -81,6 +92,97 @@ corresponds to the `Tiger Controller AA Command `_'s own -`Python code `_ and are quite stable. They +`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 @@ -149,6 +262,9 @@ or on a label on the side of your stage. 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 @@ -211,15 +327,83 @@ or on a label on the side of your stage. | +E-709 +~~~~~ + +.. collapse:: Configuration File + + .. code-block:: yaml + + hardware: + stage: + - + type: PI + 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 + 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. +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 @@ -248,6 +432,30 @@ for manual, user-driven positioning. | + +KST101 +~~~~~~ + +.. collapse:: Configuration File + + .. code-block:: yaml + + microscopes: + microscope_name: + stage: + hardware: + - + name: stage + type: KST101 + serial_number: 74000375 + axes: [f] + axes_mapping: [1] + volts_per_micron: None + axes_channels: None + max: None + min: None + +| -------------- .. _galvo_stage: diff --git a/docs/source/user_guide/hardware/zoom.rst b/docs/source/user_guide/hardware/zoom.rst index 2f3e7adf3..35fa5293c 100644 --- a/docs/source/user_guide/hardware/zoom.rst +++ b/docs/source/user_guide/hardware/zoom.rst @@ -11,6 +11,9 @@ the fixed magnification and the effective pixel size of the microscope. Dynamixel --------- +MX-28R +~~~~~~ + This software supports the `Dynamixel Smart Actuator `_. @@ -27,13 +30,6 @@ This software supports the .. code-block:: yaml - hardware: - zoom: - type: DynamixelZoom - servo_id: 1 - port: COM18 - baudrate: 1000000 - microscopes: microscope_name: zoom: diff --git a/docs/source/user_guide/hardware_overview.rst b/docs/source/user_guide/hardware_overview.rst deleted file mode 100644 index f36294237..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 From 911b231de7ef33eb590b395eb61aefed1e449be8 Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Thu, 16 May 2024 15:28:44 -0700 Subject: [PATCH 04/21] camera configuration --- docs/source/user_guide/hardware/camera.rst | 23 ++++++------- src/navigate/config/configuration.yaml | 34 ++++--------------- src/navigate/config/configuration_database.py | 2 +- 3 files changed, 19 insertions(+), 40 deletions(-) diff --git a/docs/source/user_guide/hardware/camera.rst b/docs/source/user_guide/hardware/camera.rst index e748e8133..a2c1ac0e3 100644 --- a/docs/source/user_guide/hardware/camera.rst +++ b/docs/source/user_guide/hardware/camera.rst @@ -41,10 +41,10 @@ ORCA-Flash4.0 V3 serial_number: 111 camera_connection: defect_correct_mode: 2.0 - delay: 1.0 + delay: 1.0 #ms flip_x: False flip_y: False - count: 5 + | @@ -70,10 +70,10 @@ ORCA-Fusion serial_number: 111 camera_connection: defect_correct_mode: 2.0 - delay: 1.0 + delay: 1.0 #ms flip_x: False flip_y: False - count: 5 + | @@ -100,10 +100,10 @@ ORCA-Lightning serial_number: 111 camera_connection: defect_correct_mode: 2.0 - delay: 1.0 + delay: 1.0 #ms flip_x: False flip_y: False - count: 5 + | @@ -130,10 +130,10 @@ ORCA-Fire serial_number: 111 camera_connection: defect_correct_mode: 2.0 - delay: 1.0 + delay: 1.0 #ms flip_x: False flip_y: False - count: 5 + | ------------------ @@ -168,10 +168,10 @@ Iris 15 serial_number: 111 camera_connection: PMPCIECam00 defect_correct_mode: 2.0 - delay: 1.0 + delay: 1.0 #ms flip_x: False flip_y: False - count: 5 + | @@ -196,9 +196,8 @@ the synthetic camera class must be used. serial_number: 111 camera_connection: defect_correct_mode: 2.0 - delay: 1.0 + delay: 1.0 #ms flip_x: False flip_y: False - count: 5 | diff --git a/src/navigate/config/configuration.yaml b/src/navigate/config/configuration.yaml index b2977cfa9..5a5bb0099 100644 --- a/src/navigate/config/configuration.yaml +++ b/src/navigate/config/configuration.yaml @@ -58,18 +58,8 @@ microscopes: 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 + camera_connection: PMPCIECam00 #Photometrics only + delay: 1.0 #ms flip_x: False flip_y: False remote_focus_device: @@ -257,8 +247,6 @@ microscopes: max: 5 type: LuxX index: 2 - delay_percent: 10 - pulse_percent: 87 Nanoscale: daq: hardware: @@ -283,19 +271,11 @@ microscopes: 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 + delay: 1.0 #ms + flip_x: False + flip_y: False remote_focus_device: hardware: name: daq diff --git a/src/navigate/config/configuration_database.py b/src/navigate/config/configuration_database.py index 5d9148a7f..691a2cedb 100644 --- a/src/navigate/config/configuration_database.py +++ b/src/navigate/config/configuration_database.py @@ -33,7 +33,7 @@ "delay": ["Delay (ms)", "Spinbox", "float", None, None], "flip_x": ["Flip X", "Checkbutton", "bool", None, None], "flip_y": ["Flip Y", "Checkbutton", "bool", None, None], - "count": [ + "supported_channel_count": [ "Microscope Channel Count", "Spinbox", "int", From 429f94cd034aaf87882ac92522d0f79af08ced45 Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Thu, 16 May 2024 15:40:42 -0700 Subject: [PATCH 05/21] daq configuration --- src/navigate/config/configuration.yaml | 2 -- src/navigate/config/configuration_database.py | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/navigate/config/configuration.yaml b/src/navigate/config/configuration.yaml index 5a5bb0099..01f4feaf3 100644 --- a/src/navigate/config/configuration.yaml +++ b/src/navigate/config/configuration.yaml @@ -42,7 +42,6 @@ microscopes: # 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 @@ -256,7 +255,6 @@ microscopes: # 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 diff --git a/src/navigate/config/configuration_database.py b/src/navigate/config/configuration_database.py index 691a2cedb..9dfb2fcd7 100644 --- a/src/navigate/config/configuration_database.py +++ b/src/navigate/config/configuration_database.py @@ -95,7 +95,7 @@ daq_hardware_widgets = { "hardware/type": ["Device Type", "Combobox", "string", daq_device_types, None], - "sample_rate": ["Sample Rate", "Input", "int", None, "Example: 9600"], + "sample_rate": ["Sample Rate", "Input", "int", None, "Example: 100000"], "master_trigger_out_line": [ "Master Trigger Out", "Input", From b2fc9dbc43e46cba6ba938666a5e3931bc78929a Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Thu, 16 May 2024 17:46:42 -0700 Subject: [PATCH 06/21] stage configuration --- docs/source/user_guide/hardware/stage.rst | 531 ++++++++++-------- src/navigate/config/configuration_database.py | 100 +++- .../view/configurator_application_window.py | 5 + 3 files changed, 368 insertions(+), 268 deletions(-) diff --git a/docs/source/user_guide/hardware/stage.rst b/docs/source/user_guide/hardware/stage.rst index 84de4a603..bdd59f8ae 100644 --- a/docs/source/user_guide/hardware/stage.rst +++ b/docs/source/user_guide/hardware/stage.rst @@ -62,35 +62,39 @@ first establish communication with the device using `ASI provided software = 6 and v[5] is not None: + self.variables[k].set(str(v[5])) else: widget = ttk.Button( content_frame, @@ -429,6 +433,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": From f467962b55aa905f9f09d50cdd0e009f798af7bc Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Thu, 16 May 2024 17:59:40 -0700 Subject: [PATCH 07/21] filter wheel configuration --- src/navigate/config/configuration_database.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/navigate/config/configuration_database.py b/src/navigate/config/configuration_database.py index 89328b401..aa6dbb41e 100644 --- a/src/navigate/config/configuration_database.py +++ b/src/navigate/config/configuration_database.py @@ -69,7 +69,7 @@ ], "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"], + "hardware/baudrate": ["Baudrate", "Input", "int", None, "Example: 9600"], "filter_wheel_delay": [ "Filter Wheel Delay (s)", "Input", @@ -405,7 +405,7 @@ "Input", "int", None, - "*Equipment Solutions only. Example: 9200", + "*Equipment Solutions only. Example: 9600", ], "frame_config": {"ref": "hardware"}, } From 2be8a2cc2558edb9ad23d60dfad7671184c0bf42 Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Thu, 16 May 2024 18:08:21 -0700 Subject: [PATCH 08/21] Galvo configuration --- docs/source/user_guide/hardware/galvo.rst | 2 +- src/navigate/config/configuration_database.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/source/user_guide/hardware/galvo.rst b/docs/source/user_guide/hardware/galvo.rst index 5fde4d510..d210ade4f 100644 --- a/docs/source/user_guide/hardware/galvo.rst +++ b/docs/source/user_guide/hardware/galvo.rst @@ -65,7 +65,7 @@ galvo. phase: 0 - hardware: - type: NI + type: synthetic channel: PXI6259/ao1 min: -1.0 max: 1.0 diff --git a/src/navigate/config/configuration_database.py b/src/navigate/config/configuration_database.py index aa6dbb41e..1d9cbad57 100644 --- a/src/navigate/config/configuration_database.py +++ b/src/navigate/config/configuration_database.py @@ -425,7 +425,7 @@ "Input", "string", None, - "Example: PXI6259/ao1", + "*Analog Device only. Example: PXI6259/ao1", ], "hardware/min": [ "Minimum Voltage", @@ -442,7 +442,14 @@ 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, From d62ac5e9f7375cf8e23dfeaddcaf667b496d689a Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Thu, 16 May 2024 18:18:26 -0700 Subject: [PATCH 09/21] laser and mirror configuration --- docs/source/user_guide/hardware/laser.rst | 16 ++++++++-------- src/navigate/config/configuration_database.py | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/source/user_guide/hardware/laser.rst b/docs/source/user_guide/hardware/laser.rst index 1090b3302..26912a13a 100644 --- a/docs/source/user_guide/hardware/laser.rst +++ b/docs/source/user_guide/hardware/laser.rst @@ -40,13 +40,13 @@ modulation. type: NI channel: PXI6733/port0/line2 min: 0.0 - max: 0.0 + max: 5.0 power: hardware: type: NI channel: PXI6733/ao0 min: 0.0 - max: 0.0 + max: 5.0 - wavelength: 561 onoff: @@ -54,13 +54,13 @@ modulation. type: NI channel: PXI6733/port0/line3 min: 0.0 - max: 0.0 + max: 5.0 power: hardware: type: NI channel: PXI6733/ao1 min: 0.0 - max: 0.0 + max: 5.0 | @@ -85,13 +85,13 @@ Synthetic Lasers type: synthetic channel: PXI6733/port0/line2 min: 0.0 - max: 0.0 + max: 5.0 power: hardware: type: synthetic channel: PXI6733/ao0 min: 0.0 - max: 0.0 + max: 5.0 - wavelength: 561 onoff: @@ -99,12 +99,12 @@ Synthetic Lasers type: synthetic channel: PXI6733/port0/line3 min: 0.0 - max: 0.0 + max: 5.0 power: hardware: type: synthetic channel: PXI6733/ao1 min: 0.0 - max: 0.0 + max: 5.0 | diff --git a/src/navigate/config/configuration_database.py b/src/navigate/config/configuration_database.py index 1d9cbad57..2bf327991 100644 --- a/src/navigate/config/configuration_database.py +++ b/src/navigate/config/configuration_database.py @@ -512,14 +512,14 @@ None, "Example: D:\WaveKitX64\MirrorFiles\Beads.wcs", ], - "n_modes": ["Number of Modes", "Input", "int", None, None, "Example: 32"], + "n_modes": ["Number of Modes", "Input", "int", None, "Example: 32", 32], "frame_config": {"ref": "hardware"}, } 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": [ @@ -556,14 +556,14 @@ "Minimum Voltage", "Spinbox", "float", - {"from": 0, "to": 100, "step": 1}, + {"from": 0, "to": 1000, "step": 1}, None, ], "power/hardware/max": [ "Maximum Voltage", "Spinbox", "float", - {"from": 0, "to": 100, "step": 1}, + {"from": 0, "to": 1000, "step": 1}, None, ], "button_1": ["Delete", "Button", {"delete": True}], From 9953cfc13524d07317f748b01a541d94db590de8 Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Thu, 16 May 2024 21:57:59 -0700 Subject: [PATCH 10/21] zoom configuration --- docs/source/user_guide/hardware/zoom.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/source/user_guide/hardware/zoom.rst b/docs/source/user_guide/hardware/zoom.rst index 35fa5293c..7f20f1386 100644 --- a/docs/source/user_guide/hardware/zoom.rst +++ b/docs/source/user_guide/hardware/zoom.rst @@ -47,7 +47,8 @@ This software supports the stage_positions: BABB: f: - 36X: 0 + 1X: 0 + 6.5x: 2 | @@ -80,6 +81,7 @@ Synthetic Zoom stage_positions: BABB: f: - 36X: 0 + 1X: 0 + 6.5x: 2 | From 41261ba5123e45786936df8b8cc82cbc348176cc Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Fri, 17 May 2024 10:38:47 -0700 Subject: [PATCH 11/21] add camera settle down time for future usage --- docs/source/user_guide/hardware/camera.rst | 6 ++++++ src/navigate/config/configuration_database.py | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/source/user_guide/hardware/camera.rst b/docs/source/user_guide/hardware/camera.rst index a2c1ac0e3..a72ab638c 100644 --- a/docs/source/user_guide/hardware/camera.rst +++ b/docs/source/user_guide/hardware/camera.rst @@ -42,6 +42,7 @@ ORCA-Flash4.0 V3 camera_connection: defect_correct_mode: 2.0 delay: 1.0 #ms + settle_down: 0.1 #ms flip_x: False flip_y: False @@ -71,6 +72,7 @@ ORCA-Fusion camera_connection: defect_correct_mode: 2.0 delay: 1.0 #ms + settle_down: 0.1 #ms flip_x: False flip_y: False @@ -101,6 +103,7 @@ ORCA-Lightning camera_connection: defect_correct_mode: 2.0 delay: 1.0 #ms + settle_down: 0.1 #ms flip_x: False flip_y: False @@ -131,6 +134,7 @@ ORCA-Fire camera_connection: defect_correct_mode: 2.0 delay: 1.0 #ms + settle_down: 0.1 #ms flip_x: False flip_y: False @@ -169,6 +173,7 @@ Iris 15 camera_connection: PMPCIECam00 defect_correct_mode: 2.0 delay: 1.0 #ms + settle_down: 0.1 #ms flip_x: False flip_y: False @@ -197,6 +202,7 @@ the synthetic camera class must be used. 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/src/navigate/config/configuration_database.py b/src/navigate/config/configuration_database.py index 2bf327991..d43adbfba 100644 --- a/src/navigate/config/configuration_database.py +++ b/src/navigate/config/configuration_database.py @@ -30,7 +30,8 @@ {"On": 2.0, "Off": 1.0}, None, ], - "delay": ["Delay (ms)", "Spinbox", "float", None, 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], "supported_channel_count": [ From d886f025b06995f6839365f4e0de49439e19f063 Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Fri, 17 May 2024 11:45:12 -0700 Subject: [PATCH 12/21] Update configuration.yaml --- src/navigate/config/configuration.yaml | 205 +++++++------------------ 1 file changed, 58 insertions(+), 147 deletions(-) diff --git a/src/navigate/config/configuration.yaml b/src/navigate/config/configuration.yaml index 01f4feaf3..976fd7216 100644 --- a/src/navigate/config/configuration.yaml +++ b/src/navigate/config/configuration.yaml @@ -1,42 +1,8 @@ -# 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. @@ -54,11 +20,11 @@ microscopes: camera: hardware: - name: camera type: HamamatsuOrca - serial_number: 302352 + serial_number: 302158 camera_connection: PMPCIECam00 #Photometrics only delay: 1.0 #ms + settle_down: 0.0 #ms flip_x: False flip_y: False remote_focus_device: @@ -91,9 +57,10 @@ microscopes: 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 @@ -109,15 +76,23 @@ 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] x_max: 100000 @@ -131,13 +106,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 @@ -147,10 +115,10 @@ microscopes: flip_x: False flip_y: False flip_z: False + flip_f: False zoom: hardware: - name: zoom type: DynamixelZoom servo_id: 1 position: @@ -181,7 +149,6 @@ microscopes: 6x: 6 shutter: hardware: - name: daq type: NI channel: PXI6259/port0/line0 min: 0 @@ -194,62 +161,48 @@ 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 Nanoscale: daq: hardware: - name: daq type: NI # NI PCIe-1073 Chassis with PXI-6259 and PXI-6733 DAQ Boards. @@ -267,27 +220,21 @@ microscopes: camera: hardware: - name: camera type: HamamatsuOrca serial_number: 302352 camera_connection: PMPCIECam00 #Photometrics only 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 + comport: + baudrate: 0 galvo: - hardware: @@ -297,14 +244,9 @@ microscopes: 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 filter_wheel_delay: .030 # in seconds @@ -322,25 +264,41 @@ 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] x_max: 100000 @@ -354,20 +312,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: @@ -381,8 +341,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 @@ -391,98 +351,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 From 5f218d1cfa6b6efdb5d3e0fd1da82ccb83343bc0 Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Fri, 17 May 2024 12:20:08 -0700 Subject: [PATCH 13/21] update configuration.yaml --- src/navigate/config/configuration.yaml | 21 ++--- test/config/test_configuration.py | 109 +++++++++---------------- 2 files changed, 44 insertions(+), 86 deletions(-) diff --git a/src/navigate/config/configuration.yaml b/src/navigate/config/configuration.yaml index 976fd7216..e17236f1c 100644 --- a/src/navigate/config/configuration.yaml +++ b/src/navigate/config/configuration.yaml @@ -23,6 +23,7 @@ microscopes: type: HamamatsuOrca 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 @@ -34,26 +35,16 @@ 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: @@ -223,6 +214,7 @@ microscopes: type: HamamatsuOrca serial_number: 302352 camera_connection: PMPCIECam00 #Photometrics only + defect_correct_mode: 2.0 delay: 1.0 #ms settle_down: 0 #ms flip_x: False @@ -233,12 +225,11 @@ microscopes: channel: PXI6259/ao3 min: -0.7 max: 0.7 - comport: + port: baudrate: 0 galvo: - hardware: - name: daq type: NI channel: PXI6259/ao1 min: -5 @@ -249,6 +240,8 @@ microscopes: hardware: type: SutterFilterWheel wheel_number: 2 + port: + baudrate: filter_wheel_delay: .030 # in seconds available_filters: Empty-Alignment: 0 diff --git a/test/config/test_configuration.py b/test/config/test_configuration.py index 0b71ad59f..2bc856613 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"] 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])): From 0f373b84de801bb68327f0afa06dd2a8a002519b Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Fri, 17 May 2024 12:20:49 -0700 Subject: [PATCH 14/21] rename comport to port --- docs/source/user_guide/hardware/remote_focus.rst | 8 ++++---- src/navigate/config/configuration_database.py | 4 +++- .../remote_focus/remote_focus_equipment_solutions.py | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/source/user_guide/hardware/remote_focus.rst b/docs/source/user_guide/hardware/remote_focus.rst index 6e6f462a5..2161ea842 100644 --- a/docs/source/user_guide/hardware/remote_focus.rst +++ b/docs/source/user_guide/hardware/remote_focus.rst @@ -50,7 +50,7 @@ operating range. channel: PXI6269/ao3 min: -5.0 max: 5.0 - comport: COM2 + port: COM2 baudrate: 9600 | @@ -84,7 +84,7 @@ voltage outside of its operating range. channel: PXI6269/ao3 min: -5.0 max: 5.0 - comport: COM2 + port: COM2 baudrate: 9600 | @@ -104,7 +104,7 @@ Optotune Focus Tunable Lens channel: PXI6269/ao3 min: -5.0 max: 5.0 - comport: COM2 + port: COM2 baudrate: 9600 | @@ -128,7 +128,7 @@ remote focus device. channel: PXI6269/ao3 min: -5.0 max: 5.0 - comport: COM2 + port: COM2 baudrate: 9600 | diff --git a/src/navigate/config/configuration_database.py b/src/navigate/config/configuration_database.py index d43adbfba..59f4f5454 100644 --- a/src/navigate/config/configuration_database.py +++ b/src/navigate/config/configuration_database.py @@ -85,6 +85,7 @@ "widgets": filter_wheel_widgets, "ref": "available_filters", "direction": "horizon", + "parent": "constants", }, ], } @@ -400,7 +401,7 @@ {"from": 0, "to": 10, "step": 1}, None, ], - "comport": ["Serial Port", "Input", "string", None, "*Equipment Solutions only"], + "port": ["Serial Port", "Input", "string", None, "*Equipment Solutions only"], "baudrate": [ "Baudrate", "Input", @@ -494,6 +495,7 @@ "widgets": zoom_position_widgets, "ref": "position;pixel_size", "direction": "horizon", + "parent": "constants", }, ], "frame_config": {"ref": "hardware"}, 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 From 2a17cc129b2841f5810b49f0dee106db8450026b Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Fri, 17 May 2024 12:33:46 -0700 Subject: [PATCH 15/21] small fix --- src/navigate/controller/configurator.py | 7 +++---- src/navigate/view/configurator_application_window.py | 10 ---------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/navigate/controller/configurator.py b/src/navigate/controller/configurator.py index 73ce28b7b..c00cdc031 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 diff --git a/src/navigate/view/configurator_application_window.py b/src/navigate/view/configurator_application_window.py index 2c7e1aa01..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 @@ -496,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 From ba72cc671c3f89e6e64f416af6f7de7467580205 Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Fri, 17 May 2024 12:57:06 -0700 Subject: [PATCH 16/21] Update stage.rst --- docs/source/user_guide/hardware/stage.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/source/user_guide/hardware/stage.rst b/docs/source/user_guide/hardware/stage.rst index bdd59f8ae..c9ad8eddf 100644 --- a/docs/source/user_guide/hardware/stage.rst +++ b/docs/source/user_guide/hardware/stage.rst @@ -56,7 +56,7 @@ first establish communication with the device using `ASI provided software Date: Fri, 17 May 2024 12:59:52 -0700 Subject: [PATCH 17/21] archive old configurations --- .../configuration_OPMv2.yaml | 630 ++++----- .../configuration_OPMv3.yaml | 1070 +++++++-------- .../configuration_biofrontiers.yaml | 672 +++++----- .../configuration_ctaslmv1.yaml | 666 +++++----- .../configuration_ctaslmv2.yaml | 624 ++++----- .../configuration_mesospimbt.yaml | 600 ++++----- .../configuration_multiscale.yaml | 1130 ++++++++-------- .../configuration_spectral_tirf.yaml | 772 +++++------ .../configuration_upright.yaml | 1164 ++++++++--------- .../configuration_voodoo.yaml | 776 +++++------ 10 files changed, 4052 insertions(+), 4052 deletions(-) rename docs/source/user_guide/hardware/{configurations => configurations_archive}/configuration_OPMv2.yaml (95%) rename docs/source/user_guide/hardware/{configurations => configurations_archive}/configuration_OPMv3.yaml (95%) rename docs/source/user_guide/hardware/{configurations => configurations_archive}/configuration_biofrontiers.yaml (95%) rename docs/source/user_guide/hardware/{configurations => configurations_archive}/configuration_ctaslmv1.yaml (95%) rename docs/source/user_guide/hardware/{configurations => configurations_archive}/configuration_ctaslmv2.yaml (95%) rename docs/source/user_guide/hardware/{configurations => configurations_archive}/configuration_mesospimbt.yaml (95%) rename docs/source/user_guide/hardware/{configurations => configurations_archive}/configuration_multiscale.yaml (95%) rename docs/source/user_guide/hardware/{configurations => configurations_archive}/configuration_spectral_tirf.yaml (95%) rename docs/source/user_guide/hardware/{configurations => configurations_archive}/configuration_upright.yaml (95%) rename docs/source/user_guide/hardware/{configurations => configurations_archive}/configuration_voodoo.yaml (95%) diff --git a/docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_OPMv2.yaml similarity index 95% rename from docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml rename to docs/source/user_guide/hardware/configurations_archive/configuration_OPMv2.yaml index e586fda3a..eb48ad4cc 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_OPMv2.yaml @@ -1,315 +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 +# 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/configuration_OPMv3.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_OPMv3.yaml similarity index 95% rename from docs/source/user_guide/hardware/configurations/configuration_OPMv3.yaml rename to docs/source/user_guide/hardware/configurations_archive/configuration_OPMv3.yaml index ab180cfad..5a8c0e6d0 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_OPMv3.yaml +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_OPMv3.yaml @@ -1,535 +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 +# 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/configuration_biofrontiers.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_biofrontiers.yaml similarity index 95% rename from docs/source/user_guide/hardware/configurations/configuration_biofrontiers.yaml rename to docs/source/user_guide/hardware/configurations_archive/configuration_biofrontiers.yaml index 75474b68e..22e64653c 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_biofrontiers.yaml +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_biofrontiers.yaml @@ -1,336 +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 +# 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/configuration_ctaslmv1.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv1.yaml similarity index 95% rename from docs/source/user_guide/hardware/configurations/configuration_ctaslmv1.yaml rename to docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv1.yaml index 8df8ae49d..3942f8bcd 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_ctaslmv1.yaml +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv1.yaml @@ -1,333 +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 +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/configuration_ctaslmv2.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv2.yaml similarity index 95% rename from docs/source/user_guide/hardware/configurations/configuration_ctaslmv2.yaml rename to docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv2.yaml index 9bacd7ce4..798b515fd 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_ctaslmv2.yaml +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_ctaslmv2.yaml @@ -1,312 +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 +# 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/configuration_mesospimbt.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_mesospimbt.yaml similarity index 95% rename from docs/source/user_guide/hardware/configurations/configuration_mesospimbt.yaml rename to docs/source/user_guide/hardware/configurations_archive/configuration_mesospimbt.yaml index 46164f9b9..a3b0c17bd 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_mesospimbt.yaml +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_mesospimbt.yaml @@ -1,300 +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 +# 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/configuration_multiscale.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_multiscale.yaml similarity index 95% rename from docs/source/user_guide/hardware/configurations/configuration_multiscale.yaml rename to docs/source/user_guide/hardware/configurations_archive/configuration_multiscale.yaml index 2e897c72d..b5d37e9f0 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_multiscale.yaml +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_multiscale.yaml @@ -1,566 +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 +# 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/configuration_spectral_tirf.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_spectral_tirf.yaml similarity index 95% rename from docs/source/user_guide/hardware/configurations/configuration_spectral_tirf.yaml rename to docs/source/user_guide/hardware/configurations_archive/configuration_spectral_tirf.yaml index 0b79dda51..2c07945f4 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_spectral_tirf.yaml +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_spectral_tirf.yaml @@ -1,386 +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 +# 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/configuration_upright.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_upright.yaml similarity index 95% rename from docs/source/user_guide/hardware/configurations/configuration_upright.yaml rename to docs/source/user_guide/hardware/configurations_archive/configuration_upright.yaml index 3cc5c71f8..d64f0fcea 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_upright.yaml +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_upright.yaml @@ -1,583 +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 +# 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/configuration_voodoo.yaml b/docs/source/user_guide/hardware/configurations_archive/configuration_voodoo.yaml similarity index 95% rename from docs/source/user_guide/hardware/configurations/configuration_voodoo.yaml rename to docs/source/user_guide/hardware/configurations_archive/configuration_voodoo.yaml index 05bf35945..db38d045b 100644 --- a/docs/source/user_guide/hardware/configurations/configuration_voodoo.yaml +++ b/docs/source/user_guide/hardware/configurations_archive/configuration_voodoo.yaml @@ -1,388 +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 +# 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 From 49cf5634d142114183f6ceb269856bd3c45a4e85 Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Fri, 17 May 2024 14:35:23 -0700 Subject: [PATCH 18/21] update configurations --- .../configurations/configuration_OPMv2.yaml | 164 ++++++++ .../configurations/configuration_OPMv3.yaml | 311 ++++++++++++++ .../configuration_biofrontiers.yaml | 212 ++++++++++ .../configuration_ctaslmv1.yaml | 194 +++++++++ .../configuration_ctaslmv2.yaml | 173 ++++++++ .../configuration_mesospimbt.yaml | 183 ++++++++ .../configuration_multiscale.yaml | 389 ++++++++++++++++++ .../configuration_spectral_tirf.yaml | 229 +++++++++++ .../configurations/configuration_upright.yaml | 370 +++++++++++++++++ .../configurations/configuration_voodoo.yaml | 243 +++++++++++ 10 files changed, 2468 insertions(+) create mode 100644 docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml create mode 100644 docs/source/user_guide/hardware/configurations/configuration_OPMv3.yaml create mode 100644 docs/source/user_guide/hardware/configurations/configuration_biofrontiers.yaml create mode 100644 docs/source/user_guide/hardware/configurations/configuration_ctaslmv1.yaml create mode 100644 docs/source/user_guide/hardware/configurations/configuration_ctaslmv2.yaml create mode 100644 docs/source/user_guide/hardware/configurations/configuration_mesospimbt.yaml create mode 100644 docs/source/user_guide/hardware/configurations/configuration_multiscale.yaml create mode 100644 docs/source/user_guide/hardware/configurations/configuration_spectral_tirf.yaml create mode 100644 docs/source/user_guide/hardware/configurations/configuration_upright.yaml create mode 100644 docs/source/user_guide/hardware/configurations/configuration_voodoo.yaml diff --git a/docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml b/docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml new file mode 100644 index 000000000..8a3bdfcea --- /dev/null +++ b/docs/source/user_guide/hardware/configurations/configuration_OPMv2.yaml @@ -0,0 +1,164 @@ +# 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 new file mode 100644 index 000000000..fd50423a9 --- /dev/null +++ b/docs/source/user_guide/hardware/configurations/configuration_OPMv3.yaml @@ -0,0 +1,311 @@ +# 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 new file mode 100644 index 000000000..8c032902c --- /dev/null +++ b/docs/source/user_guide/hardware/configurations/configuration_biofrontiers.yaml @@ -0,0 +1,212 @@ +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 new file mode 100644 index 000000000..903a750a0 --- /dev/null +++ b/docs/source/user_guide/hardware/configurations/configuration_ctaslmv1.yaml @@ -0,0 +1,194 @@ +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 new file mode 100644 index 000000000..afc40364b --- /dev/null +++ b/docs/source/user_guide/hardware/configurations/configuration_ctaslmv2.yaml @@ -0,0 +1,173 @@ +# 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 new file mode 100644 index 000000000..d1dd4b3b7 --- /dev/null +++ b/docs/source/user_guide/hardware/configurations/configuration_mesospimbt.yaml @@ -0,0 +1,183 @@ +# 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 new file mode 100644 index 000000000..8fb89889f --- /dev/null +++ b/docs/source/user_guide/hardware/configurations/configuration_multiscale.yaml @@ -0,0 +1,389 @@ +# 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 new file mode 100644 index 000000000..4e8abc123 --- /dev/null +++ b/docs/source/user_guide/hardware/configurations/configuration_spectral_tirf.yaml @@ -0,0 +1,229 @@ +# 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 new file mode 100644 index 000000000..e4ddad933 --- /dev/null +++ b/docs/source/user_guide/hardware/configurations/configuration_upright.yaml @@ -0,0 +1,370 @@ +# 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 new file mode 100644 index 000000000..efe3e4017 --- /dev/null +++ b/docs/source/user_guide/hardware/configurations/configuration_voodoo.yaml @@ -0,0 +1,243 @@ +# 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 From bdfbf84ead3dbb15a742b982bcb6d165b693e3de Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Fri, 17 May 2024 14:42:36 -0700 Subject: [PATCH 19/21] deformable mirror configuration --- docs/source/user_guide/hardware/deformable_mirror.rst | 7 ++++--- src/navigate/config/configuration_database.py | 5 ++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/source/user_guide/hardware/deformable_mirror.rst b/docs/source/user_guide/hardware/deformable_mirror.rst index 7809811f2..84e867ea2 100644 --- a/docs/source/user_guide/hardware/deformable_mirror.rst +++ b/docs/source/user_guide/hardware/deformable_mirror.rst @@ -30,7 +30,7 @@ coefficients. hardware: type: ImagineOpticsMirror flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs - n_modes: 32 + n_modes: 32 | @@ -50,8 +50,9 @@ one must configure the software to use a synthetic deformable mirror. microscopes: microscope_name: mirror: - type: SyntheticMirror - flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs + hardware: + type: SyntheticMirror + flat_path: D:\WaveKitX64\MirrorFiles\BeadsCoverslip_20231212.wcs n_modes: 32 diff --git a/src/navigate/config/configuration_database.py b/src/navigate/config/configuration_database.py index 59f4f5454..5b8e0e141 100644 --- a/src/navigate/config/configuration_database.py +++ b/src/navigate/config/configuration_database.py @@ -507,8 +507,8 @@ } mirror_hardware_widgets = { - "type": ["Device Type", "Combobox", "string", mirror_device_types, None], - "flat_path": [ + "hardware/type": ["Device Type", "Combobox", "string", mirror_device_types, None], + "hardware/flat_path": [ "Flat Mirror Path", "Input", "string", @@ -516,7 +516,6 @@ "Example: D:\WaveKitX64\MirrorFiles\Beads.wcs", ], "n_modes": ["Number of Modes", "Input", "int", None, "Example: 32", 32], - "frame_config": {"ref": "hardware"}, } laser_device_types = {"Analog Device": "NI", "Virtual Device": "synthetic"} From d8ecfbd683fd70316501259049fe82af6833782f Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Fri, 17 May 2024 14:43:28 -0700 Subject: [PATCH 20/21] update zoom configuration --- src/navigate/config/configuration.yaml | 6 ++++++ test/config/test_configuration.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/navigate/config/configuration.yaml b/src/navigate/config/configuration.yaml index e17236f1c..483243825 100644 --- a/src/navigate/config/configuration.yaml +++ b/src/navigate/config/configuration.yaml @@ -86,6 +86,8 @@ microscopes: timeout: 0.25 joystick_axes: [x, y, z] + # coupled_axes: + # z: f x_max: 100000 x_min: -100000 y_max: 100000 @@ -112,6 +114,8 @@ microscopes: hardware: type: DynamixelZoom servo_id: 1 + port: COM9 + baudrate: 100000 position: 0.63x: 0 1x: 627 @@ -294,6 +298,8 @@ microscopes: timeout: 0.25 joystick_axes: [x, y, z] + # coupled_axes: + # z: f x_max: 100000 x_min: -100000 y_max: 100000 diff --git a/test/config/test_configuration.py b/test/config/test_configuration.py index 2bc856613..b3e59ec18 100644 --- a/test/config/test_configuration.py +++ b/test/config/test_configuration.py @@ -360,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 = ["type", "servo_id"] + type_keys = ["type", "servo_id", "port", "baudrate"] for key in self.data["microscopes"][microscope][hardware_type].keys(): if key == "hardware": From 3c3a3e3d40029645805ab2ab2ac24adf83382d6f Mon Sep 17 00:00:00 2001 From: Annie Wang Date: Fri, 17 May 2024 15:38:24 -0700 Subject: [PATCH 21/21] small fix --- src/navigate/controller/configurator.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/navigate/controller/configurator.py b/src/navigate/controller/configurator.py index c00cdc031..95c627c0c 100644 --- a/src/navigate/controller/configurator.py +++ b/src/navigate/controller/configurator.py @@ -305,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 @@ -395,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