This is an old revision of the document!


Micro-manager diSPIM Plugin

There is a Micro-manager plugin to control the diSPIM. It is part of the standard Micro-Manager build under Plugins → Device Control → ASIdiSPIM.

Details about the plugin operation can be found in the manual section of this website in the section "Micro-manager diSPIM Plugin". There is also a brief overview is on its Micro-manager wiki page. Please see that manual for information about using the plugin.

Currently the diSPIM plugin is supported in 1.4.x only, although there have been some efforts to port it to 2.0. At some point after the official release of Micro-manager 2.0, development on the 1.4.x plugin will slow and eventually stop and at that point only 2.0 will be supported. But that's all in the future as of July 2017 since 2.0 hasn't been released yet.

You can download the nightly builds of Micro-manager 1.4 for Windows here; the date is encoded in the file name and the latest date is at the top of the page. Make sure to get the appropriate 32bit or 64bit depending on your computer.

Troubleshooting

Problem Possible Reason Possible Fix
Stage scanning cameras not getting triggered Hardware/firmware out of date Make sure you have Rev F XY card or later, make sure micro-mirror card has jumper on positions 11/12 of the backplane jumper bank (SV6 for Rev E and later card revs, SV2 for pre-E)
Dropped frames during acquisition insufficient sequence buffer Increase sequence buffer size in MM options, e.g. 1000 MB
Dropped frames during acquisition trying to access acquisition file during acquisition Break up multi-timepoint acquisitions into per-timepoint files if you need to access earlier data before experiment end
Acquisition fails (“Camera did not send the first image within a reasonable time“) Camera trigger cables aren't properly connected Ensure that the camera trigger cables between the Tiger controller and camera are connected to the correct camera.
Error on running plugin “vector index out of range” Plugin bug in 1.4.22 release Use recent nightly build (or one-time initialize of “Autofocus Channel” dropdown in middle of Autofocus tab)
Error “Missed some images during acquisition” Camera triggering too fast Bug in plugin calculations of readout time. Try enabling “Minimize slice period”, noting the slice period, and then disabling it and setting a longer slice period.

Bug reports

The first step is to check and see if your problem has already been fixed by using a recent nightly build of Micro-Manager (Windows and Mac). If your firmware is very old it wouldn't hurt to update it; instructions and firmware files are on this wiki filed under hardware > controller > firmware.

If the bug still happens, is helpful to generate a problem report using “Help” → “Report Problem…” in the main Micro-Manager window. It will prompt you to reproduce the problem, for example if you are having a problem during diSPIM acquisition then run an acquisition and verify that the bug is manifest. After clicking “Done” do not submit the report the usual way, instead click “View Report”, save the text as a file, and then email that file directly to the plugin developers. If you cannot reproduce the problem in order to generate a bug report, then an alternative is to enable debug logging in “Tools” → “Options…” and then when the problem happens send the developers the core log file being written to at the time (find the logs in the Core Logs directory located inside the Micro-manager install directory, e.g. C:/Program Files/Micro-Manager-1.4/Core Logs and then log files named by the launch time).

You can see recent changes to the plugin code by searching the Micro-manager code timeline for ASIdiSPIM.

Launching the plugin on startup

Add the following lines to your MMStartup.bsh script (or create the file if it doesn't exist). The startup script lives in the root MM folder (e.g. C:\Program Files\Micro-Manager-1.4) and is automatically executed when Micro-Manager launches.

import org.micromanager.asidispim.ASIdiSPIMFrame;
ASIdiSPIMFrame frame = new ASIdiSPIMFrame(gui);
frame.setVisible(true);