navigate Logo

Getting Started

  • Quick Start Guide
  • Software Installation
  • I Want To…

User Guide

  • Supported Hardware
  • Supported File Formats
  • User Interface Walkthrough
  • Setting Up A Microscope
  • Acquiring Data
  • Case Studies

Development

  • Contributing Guidelines
  • Developer Install
  • Software Architecture
  • Feature Container
  • REST-API
  • Plugin Architecture

Troubleshooting & Known Issues

  • Troubleshooting
  • Known Issues

Plugins

  • navigate Plugin Template
  • navigate Confocal Projection
  • navigate at Scale
  • navigate Constant Velocity Acquisition
  • navigate MMCore
  • navigate ilastik Server
  • navigate Photoactivation

Reference

  • Implemented Microscopes
  • Software API
    • navigate.config
    • navigate.controller
    • navigate.controller.configurator
    • navigate.log_files
    • navigate.model
      • navigate.model.analysis
      • navigate.model.concurrency
      • navigate.model.data_sources
      • navigate.model.device_startup_functions
      • navigate.model.devices
        • navigate.model.devices.MonitoredSerial
        • navigate.model.devices.camera
        • navigate.model.devices.daq
        • navigate.model.devices.device_types
        • navigate.model.devices.filter_wheel
        • navigate.model.devices.galvo
        • navigate.model.devices.laser
        • navigate.model.devices.mirror
        • navigate.model.devices.objectives
        • navigate.model.devices.pump
        • navigate.model.devices.remote_focus
        • navigate.model.devices.shutter
        • navigate.model.devices.stage
        • navigate.model.devices.zoom
      • navigate.model.features
      • navigate.model.metadata_sources
      • navigate.model.microscope
      • navigate.model.model
      • navigate.model.plugins_model
      • navigate.model.waveforms
    • navigate.tools
    • navigate.view
navigate
  • Software API
  • navigate.model
  • navigate.model.devices
  • navigate.model.devices.galvo
  • navigate.model.devices.galvo.base
  • navigate.model.devices.galvo.base.GalvoBase
  • View page source

navigate.model.devices.galvo.base.GalvoBase

class navigate.model.devices.galvo.base.GalvoBase(microscope_name: str, device_connection: Any, configuration: dict[str, Any], device_id: int = 0)

Bases: ABC

Abstract base class for galvanometer devices.

This class provides the interface and common functionality for controlling galvanometers with navigate. It handles waveform generation based on configuration parameters and experimental settings.

The class generates appropriate control waveforms (sawtooth, sine, halfsaw) according to camera exposure times and configuration parameters. Child classes must implement the turn_off method to control hardware-specific behaviors.

__init__(microscope_name: str, device_connection: Any, configuration: dict[str, Any], device_id: int = 0) → None

Initialize the GalvoBase class.

Parameters:
  • microscope_name (str) – Name of the microscope.

  • device_connection (Any) – Device connection.

  • configuration (dict[str, Any]) – Dictionary of configuration parameters.

  • device_id (int) – Galvo ID. Default is 0.

Methods

__init__(microscope_name, device_connection, ...)

Initialize the GalvoBase class.

adjust(exposure_times, sweep_times)

Adjust the galvo waveform to account for the camera readout time.

turn_off()

Turn off the galvo.

Attributes

device_connection

Device connection.

configuration

Dictionary of microscope configuration parameters.

microscope_name

Name of the microscope.

galvo_name

Name of the galvo.

device_config

Dictionary of device connections.

sample_rate

Sample rate.

sweep_time

Sweep time.

camera_delay

Camera delay

galvo_max_voltage

Galvo max voltage.

galvo_min_voltage

Galvo min voltage.

galvo_waveform

Galvo waveform.

waveform_dict

Dictionary of galvo waveforms.

abstract adjust(exposure_times: dict[str, float], sweep_times: dict[str, float]) → dict

Adjust the galvo waveform to account for the camera readout time.

Parameters:
  • exposure_times (dict) – Dictionary of camera exposure time in seconds on a per-channel basis. e.g., exposure_times = {“channel_1”: 0.1, “channel_2”: 0.2}

  • sweep_times (dict) – Dictionary of acquisition sweep time in seconds on a per-channel basis. e.g., sweep_times = {“channel_1”: 0.1, “channel_2”: 0.2}

Returns:

waveform_dict – Dictionary that includes the galvo waveforms on a per-channel basis.

Return type:

dict

abstract turn_off() → None

Turn off the galvo.

camera_delay

Camera delay

Type:

float

configuration

Dictionary of microscope configuration parameters.

Type:

dict

device_config

Dictionary of device connections.

Type:

dict

device_connection

Device connection.

Type:

Any

galvo_max_voltage

Galvo max voltage.

Type:

float

galvo_min_voltage

Galvo min voltage.

Type:

float

galvo_name

Name of the galvo.

Type:

str

galvo_waveform

Galvo waveform. Waveform or Sawtooth.

Type:

str

microscope_name

Name of the microscope.

Type:

str

sample_rate

Sample rate.

Type:

int

sweep_time

Sweep time.

Type:

float

waveform_dict

Dictionary of galvo waveforms.

Type:

dict

Previous Next

© Copyright 2025, Dean Lab, UT Southwestern Medical Center.