Glossary
References¶
Devices¶
- Device
- A device is a peripheral that is either physical (hardware) or virtual (software-defined). Each device is controlled by a driver and includes a sub-device responsible for its initialization (Init) and shutdown (Finish). A device may contain multiple sub-devices that perform various functions or actions. These are either mechanical (e.g., moving a motor) or informational (e.g., retrieving values or version data). A hardware device connects either to the Inscoper Device Controller (DC) or directly to the computer (e.g., a USB camera).
Device Description¶
- Device Description
The device description is a structure summarizing all known information about a device. It is stored either in the firmware or within the driver, if applicable. Information includes:
Field Description Driver The type of driver used to control the device (see Driver Type). Brand The hardware manufacturer of the device. Example: Nikon for a Nikon microscope. Model The model(s) compatible with this device description. Example: Ti2 for a Nikon Ti2 microscope. Example: All models for Hamamatsu cameras operated using the same driver. Description A short text describing the driver. Author The author of the device description. Changelog A manually maintained log of changes (no specific content convention). Release Date The date and time when the driver version was tagged. Version The version number of the driver.
Detect¶
- Detect
- The Detect function scans all hardware connected to the computer that is compatible with the selected driver and retrieves the corresponding serial numbers. This allows the selection of the serial number corresponding to the device being added, ensuring the correct module is identified. Identification is critical when multiple devices using the same driver (e.g., two Hamamatsu cameras) are present on the system. The Detect function is available only for custom drivers.
Diagnostic¶
- Diagnostic
The Diagnostic function performs two primary tasks:
- Verify that the device is properly connected to the device controller.
- Retrieve all sub-devices associated with the device, indicating whether each is available or unavailable.
Each sub-device has one of three possible statuses:
Status Meaning Available The sub-device is detected and operational. Unavailable The sub-device is detected but not functional. Unknown The system cannot automatically determine the presence or absence of the sub-device. For custom drivers and Micro-Manager drivers, the function returns the list of device properties (equivalent to the list of available sub-devices).
For all drivers, the Diagnostic function updates parameter constraints such as minimum, maximum, and allowed values (list).
Camera¶
- Camera
- A Camera is a specialized device responsible for acquiring image data. In the Inscoper API, cameras are treated as high-level devices that manage image buffers, acquisition parameters, and triggering modes.
Trigger Device¶
- Trigger Device
A Trigger Device provides precise control of a camera through triggering (TRIG) with the device controller. Installing a camera may require two devices:
- A Camera Device, which retrieves all camera functions and properties.
- A Trigger Device, which enables fine control and synchronization of the camera through hardware triggering by the DC.
If a camera connects only via USB to the computer and not through the DC, create only the camera device, as trigger control is not handled by the Inscoper hardware.
Camera Stream¶
- Camera Stream
A Camera Stream defines the method used to trigger image acquisition and control exposure timing. It determines whether the camera operates autonomously, responds to software commands, or synchronizes with external hardware signals.
Stream Mode Description Internal Use for Live or Snap operations (but not triggered Live). Also use for acquisitions not requiring specific hardware driving. Software The camera is triggered by a software command; exposure time is handled by the computer. External Edge The camera is triggered by an external TTL edge; exposure time is internal to the camera. Exposure cannot vary within a single sequence. External Level The camera is triggered by an external TTL level; exposure lasts as long as the trigger is asserted. This allows multiple different exposure times within one sequence.
Start Acquisition¶
- Start Acquisition
- A function that sets the camera to image acquisition mode. Unlike "Snap," which captures a single image, this starts continuous image acquisition (Live). Use this when a continuous stream of images is required. Note that images may not be acquired immediately, depending on the camera trigger mode (Internal, Software, Edge, Level).
Stop Acquisition¶
- Stop Acquisition
- A function that stops the current acquisition mode of the camera.
Snap¶
- Snap
A function to capture a single image.
Note
For specific cameras such as Maico or PcoFlim, a "Snap" may acquire multiple images (e.g., different selected wavelengths for Maico, or different phases for PcoFlim).
Camera Stream Definitions¶
Software Trigger¶
- Software Trigger
- The sub-device used for image capture in software stream mode. The image capture signal is transmitted via software rather than an electronic signal.
Edge Trigger¶
- Edge Trigger
- The sub-device used for image capture in external edge stream mode. A short electronic signal is transmitted to start image capture.
Level Trigger¶
- Level Trigger
- The sub-device used for image capture in external level stream mode. An electronic signal with a duration equal to the exposure time is transmitted to start image capture and control the exposure duration.
Check Ready¶
- Check Ready
- A sub-device that waits for the camera to signal it is ready for the next image. It waits for an electronic signal from the camera (often called "Trigger Ready") or uses a timer delay if the camera does not provide a signal. This ensures the system waits until the camera is ready before transmitting the next trigger signal.
Is Controlled¶
- Is Controlled
A function used when the camera external triggers are controlled by a device other than the Inscoper Controller (DC).
Example
Confocal.nl hardware.
Select For IIS¶
- Select For IIS
- Automatically select the subset of sub-devices/functions useful for controlling the camera with the Inscoper imaging software (IIS). This is available only for custom drivers.
Shutter¶
- Shutter
A motorized element in the microscope or an external component that allows the light source beam to pass through or be blocked.
Note
Values (0/1, True/False) depend on the specific implementation.
Update Only When Imaging¶
- Update Only When Imaging
- When enabled for a shutter, the "Open" status is transmitted only while the camera is actively acquiring images. Otherwise, it remains closed to preserve the sample, even if the software sets the shutter to "Open".
Device Controller¶
- Device Controller
- The Inscoper hardware unit responsible for executing sequences and managing high-speed synchronization.
Firmware¶
- Firmware
- Software operating within the Device Controller (DC) that enables the execution of sequences transmitted by the Imaging Software (IIS). While the firmware offers various functions (providing device descriptions, restarting the box, etc.), its primary role is to execute pre-received sequences.
Drivers¶
- Driver
- Software that allows the operating system and Inscoper applications to communicate with specific hardware devices.
External Resources¶
Path to the directory on the computer where Micro-Manager and custom drivers (DLL files) are stored.
Drivers Type¶
Custom¶
- Custom driver
- Drivers integrated directly via their SDK and controlled on the computer. This primarily applies to cameras.
µManager¶
Drivers used to control devices through Micro-Manager.
Module Name¶
"Module Name" and "Device Name" are concepts specific to Micro-Manager.
Inscoper Box¶
Drivers that operate inside the Device Controller (DC).
Hardware ID¶
- Hardware ID
- A unique identifier for a specific hardware model.
Sub-devices¶
- Sub-devices
A sub-device is a functional component within a device representing a controllable property, capability, or action. Sub-devices are the modular building blocks allowing the Inscoper system to interact with hardware at a granular level.
Core Concept:
While a device represents an entire piece of hardware (e.g., a motorized stage, a camera, or a filter wheel), a sub-device represents a specific aspect or function of that hardware. This modular approach allows complex devices to be controlled through simple, well-defined interfaces.
Categories of Sub-Devices:
1. Property Sub-Devices (State/Value Access)
Represent readable or writable hardware properties:
- Camera exposure time
- Stage X, Y, or Z position
- Filter wheel position
- Shutter open/closed state
- Objective turret position
- Device firmware version number
2. Action Sub-Devices (Commands/Operations)
Represent operations or commands that do not necessarily correspond to a single property:
MoveXY: Trigger coordinated movement of both X and Y axesStartAcquisition: Initiate camera image captureStopAcquisition: Halt ongoing acquisitionInitialize: Perform device initialization sequence
3. Virtual Sub-Devices (Software-Defined)
Exist purely in software without direct hardware correspondence:
- Calculated values derived from multiple hardware readings
- Software-managed state flags
- Version information and metadata
- Diagnostic status indicators
Example
A motorized XY stage device might contain these sub-devices:
XPosition(property): Current X-axis position in micrometersYPosition(property): Current Y-axis position in micrometersXResolution(property): Step size for X-axis movementYResolution(property): Step size for Y-axis movementMoveXY(action): Command to execute coordinated movementVersion(virtual): Firmware version string
Example
A camera device might contain:
Exposure(property): Exposure time in millisecondsBinning(property): Pixel binning factorROI(property): Region of interest coordinatesStartAcquisition(action): Begin capturing imagesStopAcquisition(action): End image captureSnap(action): Capture a single image
Properties¶
Status¶
Indicates whether a sub-device is present for a device.
| Status | Meaning |
|---|---|
| Available | The sub-device is detected and operational. |
| Unavailable | The sub-device is detected but not functional. |
| Unknown | The system cannot determine the presence or absence of the sub-device (e.g., after a failed diagnostic check). |
| Partially Available | Only specific functions of the sub-device are available. |
Param¶
- Property Name: The name of a configurable parameter for a sub-device (e.g., "Exposure" for a camera exposure time). This is valid only for external drivers (Custom and Micro-Manager). This name is FIXED for IIS, though not necessarily for API use.
-
Property Value: The value assigned to a property (e.g., "200ms"). Valid only for external drivers. The default value is set when IIS starts but is modifiable.
Example
To start a camera in "Fast Mode" upon IIS launch, set Property Name = "Read Mode" and Property Value = "3".
-
Default: The default value of the parameter.
-
Fixed: If selected, the sub-device value cannot be modified.
Example
For a 3-axis controller, three sub-devices are created. The axis identifier is marked as Fixed for each, while the position value remains editable.
- Note: Never use two unfixed parameters in one sub-device.
- Min: The minimum allowed value. Defined by the device manufacturer (based on the datasheet) or provided by the driver/Micro-Manager.
- Max: The maximum allowed value. Defined by the device manufacturer (based on the datasheet) or provided by the driver/Micro-Manager.
- Step: Minimum increment for value updates. The type of constraint can define the step; for example, for integer constraint types, the default step is 1 (the step is induced by value type). If the firmware or drivers do not provide a step, IIS uses either step = 1 (if integer) or step = (max - min) / 1000 (for float).
- Type: Parameter type, including: unsigned char, double, STRING.
Description¶
Name¶
Name of the sub-device.
Type¶
Flags or tags used to characterize the nature of a sub-device.
Lifecycle / System¶
| Type | Description |
|---|---|
| NONE | No specific category or behavior associated with this sub-device. |
| INIT | Sub-device triggering the device initialization sequence. |
| FINISH | Sub-device triggering the device shutdown sequence. |
| DIAG | Sub-device executing the diagnostic (DIAG) procedure. |
| USB_CHECK | Verify the USB device is connected and responsive. |
Motion & Axis Control¶
| Type | Description |
|---|---|
| X_AXIS | Represents movement or positioning along the X axis. |
| Y_AXIS | Represents movement or positioning along the Y axis. |
| MOVE_AXIS | Generic movement command for an axis (X, Y, Z, or other). |
| FOCUS | Controls the focus mechanism (typically the Z axis). |
Optical / Hardware Components¶
| Type | Description |
|---|---|
| SHUTTER | Controls the opening and closing of a shutter. |
| OBJECTIVE | Selects or controls a physical objective lens. |
| CUBE | Controls filter cubes or optical paths. |
| FILTER_WHEEL | Selects filter positions using a rotating wheel. |
| MAGNIFICATION | Handles magnification settings (e.g., objective changer, zoom optics). |
| PROPERTY | Generic hardware property used for reading/writing vendor-specific parameters. |
Triggering & Synchronization¶
| Type | Description |
|---|---|
| TRIG_EDGE | Trigger based on a digital edge (rising or falling edge). |
| TRIG_LEVEL | Trigger based on a digital level (high or low). |
Camera Operations¶
| Type | Description |
|---|---|
| CAM_CHECK_READY | Verify the camera is initialized and ready for acquisition. |
| CAM_START_CONTINUOUS | Start continuous acquisition mode (Live). |
| CAM_START | Start a single-sequence acquisition. |
| CAM_STOP | Stop acquisition (Live or sequence). |
| CAM_SNAP | Camera snap sub-device: perform a single image capture. |
| CAM_SOFTWARE_TRIG | Software-triggered image acquisition sub-device. |
Functions (Set/Get/Check)¶
- Functions
Function Description Set Assigns a new value to the device (e.g., moves an objective lens, opens a shutter).
Example: Sending 0 or 1 to a shutter sub-device to close or open it.Get Retrieves the current value from the device. Check Verifies whether a SET function completed successfully by searching for a match between the GET result and the expected target. For each function, determine:
- Input Params: Parameters transmitted to the function.
- Output Params: Parameters returned by the function.
Connections¶
- Connections
A Connection defines the physical or logical communication channel used to control a device and exchange commands. Connections establish the link between a device and the Inscoper Device Controller (DC), enabling control signals and status reception.
Key Concepts:
- Configure each device with one or more connections specifying DC communication.
- Execute sub-device functions (SET, GET, CHECK) through these defined connections.
- Connection types determine the protocol, signal characteristics, and data flow direction.
- Different connection types support specific capabilities (digital signals, serial communication, analog values, etc.).
Driver-Specific Behavior
The "Connection" configuration field for sub-devices is available only when using
INSCOPER_BOXdrivers. Custom and Micro-Manager drivers handle connections through their respective APIs.Connection Types:
Type Signal Type Direction Description TTL_IN_GEN Digital (0–5V) Input Digital signal read by the Device Controller from external hardware. Used for reading trigger signals, limit switches, or sensor states. TTL_OUT_GEN Digital (0–5V) Output Digital signal transmitted by the Device Controller to external hardware. Used for triggering cameras, controlling shutters, or activating relays. SERIAL Serial Data Bidirectional RS232 or USB serial connection for command-based communication. Supports both commands and responses. USB_GENERIC USB Protocol Bidirectional Standard USB connection requiring manufacturer-specific drivers. Used for devices with proprietary USB protocols. USB_SERIAL USB Serial Bidirectional USB connection emulating a serial port (Virtual COM Port). Combines USB convenience with serial protocol compatibility. USB_HID USB HID Bidirectional USB Human Interface Device protocol. Used for devices that present themselves as HID-class peripherals. AIN Analog Input Analog voltage input to the Device Controller. Used for reading sensor values or potentiometer positions. AOUT Analog Output Analog voltage output from the Device Controller. Used for controlling variable-intensity light sources or motor speeds. UART Serial Data Bidirectional Universal Asynchronous Receiver-Transmitter (RS232) connection. Low-level serial communication protocol. Example
A motorized filter wheel might utilize:
- SERIAL: Transmit position commands and receive status information.
- TTL_IN_GEN: Read a home position sensor.
- TTL_OUT_GEN: Trigger movement completion signals.
Inscoper I.S.¶
Configure Inscoper I.S. (IIS) using this tab to:
- Define and modify graphical elements.
- Activate modules such as tiling options or virtual joysticks.
- Configure advanced calibrations linking sub-devices.
- Set up the graphical representation of sub-devices in IIS (e.g., relabel objectives, add side ports or filter cubes, represent laser power with sliders).
This section includes: Display, Group, Device Updates, Image Scaler, and Calibration.
Display¶
The Display tab allows adding, modifying, and organizing the graphical representations of sub-devices in IIS.
Initialize¶
The Initialize button adds all available sub-devices defined in the configuration to the device display list. This allows modification of how a function appears in the software. Note: Upon configuration creation, the display data list is empty and requires initialization.
Update¶
If adding new devices to an existing configuration, the Update button automatically adds the associated sub-devices to the device display list.
Image Scaler¶
A sub-device that alters the image size.
- Image Scaler Mult: A sub-device that enlarges the image size (e.g., lenses or objectives that produce image reduction).
- Inv: A sub-device that reduces the image size (e.g., lenses or objectives that produce image magnification).
Calibration¶
A model linking two or more sub-devices.
Type¶
| Type | Description |
|---|---|
| Linear | sd1 = a * sd2 + b (Linear formula). |
| Linear Delta | Variant of the Linear formula exposing the alpha parameter in IIS (used for SoSPIM). |
| Bilinear | Represents a 3D plane (ax + by + c). |
| Linear Piecewise | Facilitates curve approximation. |
| Constant | Applies a fixed parameter between two devices. |
| Formula | Facilitates custom formula entry. |
Interpolator¶
- Interpolator
Interpolators are the sub-devices used in formulas to compute new values (the sub-device other than the objective).
Example
In
sd1 = a * sd2 + b:sd1: Target.sd2: Interpolator.aandb: Computed during calibration.
Discriminant¶
- Discriminant
- A discriminant is a sub-device that invalidates the current calibration if modified. Each calibration is saved for a specific combination of discriminant values.
Example
In FRAP calibration, changing the objective or filter necessitates a new calibration.
Target¶
The sub-device modified by the calibration and linked to an interpolator.
Complex Acquisition Available¶
Enable the "Complex Acquisition" (Acquisition Designer) module if the license includes this option. This module facilitates advanced imaging workflows beyond basic MDA.
Mosaic Manip¶
Activate Tiling options in IIS. The Tiling Dimension will appear in the graphical interface. 5D licensing is required.
XY Move Strat Available¶
Add an option to move the stage gradually during large movements. This reduces drift and prevents autofocus systems from losing focus during motion.
Trigger Live Conditions¶
Associate a sub-device value with a condition, allowing other devices to be controlled during the camera live trigger sequence.
Example
Trigger live acquisition only if the fluorescence shutter is open, or apply a condition based on the side-port position.
Reset USB at Startup¶
If selected, USB connections are reset each time IIS is opened.
Device Update¶
Select devices to be updated automatically using this tab. The interface queries the drivers (DC, Custom, Micro-Manager) to update values by calling the GET function at the interval specified in the "Delay (ms)" column.
Connections¶
Link devices to the Device Controller. Available connections for a selected device are highlighted in green.
USB View¶
- Serial/Digital/Analog
- PID/VID: Product ID and Vendor ID. These identifiers distinguish USB peripherals by providing Manufacturer, Product, and Serial Number details.
Recipe¶
A structured set of instructions defining system operation, including action order, execution conditions, and sequence optimization. It defines how statuses are applied.
Examples:
RecipeElement with an Action (set value 0):
<RecipeElement description="LightSource SET" callId="LightSourceShutter">
<Action device="LightSource" subDevice="Shutter" function="SET" value="0" />
</RecipeElement>
Recipe with a single RecipeElement and a Tag Condition:
<Recipe recipeName="StartTimer">
<RecipeElement description="StartTimerRecipeId SET" callId="">
<Action recipeId="StartTimerRecipeId" function="SET" />
<Condition tagCondition="SequenceStart && ResetRelativeTimer" />
</RecipeElement>
</Recipe>
Recipe Element¶
- Recipe Element
- A single unit within a recipe associating a sub-device with actions.
Action¶
Define the sub-device function to execute or the recipe ID to set.
- Sub-device / Recipe Id: The target sub-device or group.
- Function: The operation to perform (SET, GET, CHECK).
- Default value: Relevant only for SET.
Type¶
- Simple: Contains one element.
- Group: Calls a combination of recipes.
- Event: A Recipe Element facilitating sequence interruptions (e.g., Pause, Stop, or Restart).
Call ID¶
An identifier used in callConditions to determine if a recipe has executed.
Example
Example (Motion Stages):
Recipe ID¶
An identifier assigned to sub-devices. Historically used for grouping (e.g., all shutters), it now typically identifies sub-devices created dynamically at IIS launch.
Tag¶
A label used to categorize recipe execution based on system state. Tags ensure only relevant recipes execute for active devices.
Example
If using a specific camera model, matching tags ensure only correct camera recipes execute.
Condition¶
A graphical section grouping condition options for calling recipes.
Tag Condition¶
Ensures an action executes only if a specific tag is present in the status.
Call Condition¶
Ensures an action executes only if a specific previous action has occurred.
Value Condition¶
Determines execution based on a sub-device value.
Optimization¶
Prevents reapplying a recipe if the sub-device value remains unchanged between statuses.
ILDA¶
Control the Ilas and Starscan modules.
Mode¶
Describes the different illumination modes available in the system.
Illumination Mode¶
Adds a virtual device to select the illumination mode (e.g., FRAP, TIRF, Spinning Disk) in a multimodal system.
FRAP¶
- Scanrate: Controls the time between two points (galvo instructions).
- Diameter: Controls the distance between two points during a scan.
- Density Index: An index indicating the mode (FRAP, TIRF, WF, Spinning Disk) when sharing the scan rate sub-device. Must match the FRAP diameter value in the Device tab.
- Fire Preview: Enables the fire preview function (continuous scanning of an ROI).
- Active Channel Element: Indicates which channel is the FRAP channel. Must be activated for each illumination mode.
TIRF¶
- Angle (formerly Tirf Angle): The position of the point (or arc) on the circle traversed by the galvos.
- Diameter (formerly Interpoint Distance): Controls the distance between two points during a scan.
- Scanrate (formerly Pulse Time): Controls the time between two points.
- Density Index: (Obsolete after 9.3).
- Radius (formerly Penetration Depth): Corresponds to the laser angle at the lens outlet.
- Angle Length (formerly Tirf Mode): The length in degrees of the circle made by the galvos.
- Active Channel Element: Indicates which channel is the TIRF channel.
API¶
- API
The Inscoper API (Application Programming Interface) is a C++ library enabling external software to control the Inscoper system. It abstracts the complexity of hardware drivers for high-level applications.
Key Architectural Concepts:
- Bridge Pattern: The API exposes the
Inscoper::Bridgeclass, simplifying subsystem interaction. - Manager-Based: Core functions handled by singleton managers (e.g.,
DeviceManager). - Device Abstraction: Provides a unified interface (
AbstractSystem) for all devices.
Core Capabilities:
- Configuration: Loading/saving system states via XML.
- Control: Manipulation of device parameters (SET/GET/CHECK).
- Acquisition: Execution of multi-dimensional sequences.
- Imaging: Management of image buffers and metadata.
- Events: Listener system (e.g.,
SequenceListener) for real-time synchronization.
- Bridge Pattern: The API exposes the
Log Level¶
- Log Level
Indicates the importance of a log message. Log levels are inclusive (e.g., enabling DEBUG also enables INFO, WARN, ERROR, FATAL).

Log Level Description LOG_ALL Enable all log levels. LOG_TRACE Fine-grained information for deep debugging. LOG_DEBUG Detailed information for issue diagnosis. LOG_INFO Informative logs for normal application events. LOG_WARN Indicates an unexpected situation that does not halt the application. LOG_ERROR Indicates an issue preventing specific function operation. LOG_FATAL Indicates a critical failure where core functions are lost. LOG_OFF Disable all logging.