Copyright (c) 2021 Idiap Research Institute, http://www.idiap.ch/
Written by François Marelli francois.marelli@idiap.ch
This repository contains plugins, device adapters and libraries for the operation of microscopy platforms using Micro-Manager, developed by the Computational BioImaging group at Idiap Research Institute.
-
buildscripts: configuration files for the ant builds
-
compiled: compiled artifacts
-
configurations: device configurations for micromanager
-
DeviceAdapters: device adapters for micromanager
- ArdIllu (François Marelli): control a Kohler illuminator using an Arduino board
- OpenLightControl (François Marelli): synchronization and modulation of light sources using an Arduino board
-
libraries: libraries for micromanager
- OpticalRotation (François Marelli): algorithm that compensates the off-axis rotations to keep samples centered in the field of view
-
plugins: plugins for micromanager
- StageControl4D (François Marelli): control GUI for a 4D stage with off-axis rotation compensation and calibration
- OpenLightControl (François Marelli): control GUI for the OpenLightControl modulation hardware
-
print: 3D printing files for the platform
-
software: additional software tools
Compiled files are distributed under the compiled
folder. You can also recompile them following the following instructions (pre-compiled unix device adapters are not distributed):
-
Building device adapters:
-
Initialize the git submodules (either clone with
git clone -r ...
or rungit submodule init
in the cloned folder). -
On Windows, open
DeviceAdapters/cbi_mm_devices.sln
and build the solution. You may eed to retarget the solution/projects:- right click on the solution, "retarget solution", upgrade all projects to your installed platform toolset
- if this does not work, right click on the problematic projects, and in the General category of the Properties, select the desired Platform toolset (it is likely you will have to do this for mmCoreAndDevices)
-
On Unix, run
autogen.sh
thenconfigure
(provide the same prefix as you used to install micro-manager), and finally runmake install
to build and install device adapters.
-
-
Building plugins/libraries:
- In the root folder, run
ant
to build all libraries and plugins. The generated jars will be located incompiled/libraries
andcompiled/plugins
. - You can also run
ant clean
to remove all build files (it also removes compiled jars).
- In the root folder, run
Do not forget to copy the build results to the actual mm installation folder when you compile projects!
-
On Windows, the folders are the following:
- DeviceAdapters: at the root of micro-manager install (usually under program files)
- Libraries: under
plugins\Micro-Manager
- Plugins: under
mmplugins
-
On Unix, the folders are the following:
- DeviceAdapters:
<prefix>/lib/micro-manager/
(this should be automatically installed by make install if you set your prefix right) - Libraries:
<prefix>/share/micro-manager/jars
- Plugins:
<prefix>/share/micro-manager/mmplugins
- DeviceAdapters:
- DeviceAdapters
In order to add new device adapters, it is easier to create the files in Microsoft Visual Studio, and then add the necessary tools for Unix builds.
- Open the
DeviceAdapters/cbi_mm_devices.sln
(on Windows) and add a new project:- Add a new project to the solution, select the dll template
- In the Property Manager panel (under the View menu), right click the new project and add the
DeviceAdapters/Common.props
sheet - In the properties of the project (right click in solution explorer), set C/C++ -> Precompiled Headers -> Precompiled Header: Not Using Precompiled Header
- You may need to set in properties Advanced -> Target File Extension: .dll (if build process produces files with incorrect names)
- You may also need to add a project dependency with the
MMDevice-SharedRuntime
(mmCoreAndDevices\MMDevice\MMDevice-SharedRuntime.vcxproj
), if it is not done automatically.
- Copy the
Makefile.am
file from the ArdIllu device adapter to your device folder, and change all the occurences ofArdIllu
to your device's name. - Add a line containing the name of your project in the
DeviceAdapters/Makefile.am
, with trailing backslashes except for the last line. It must come after the MMDevice line. - Add a line containing the name of your project in the
DeviceAdapters/configure.ac
. It must be after the MMDevice line (L78).
If you follow these instructions, you should be able to compile your project following the instructions detailed above.
- Libraries/plugins
Create a new folder under libraries
or plugins
respectively. Copy the build.xml
from OpticalRotation
for a library, or from StageControl4D
for a plugin. In that file, you only need to change the project name to match yours. Make sure that your source files are located in a directory named src/
directly at your project root.
By default, libraries are compiled before plugins and are automatically added as dependencies. If you need more complex inter-project dependencies (i.e. your library depends on an other library, or your plugin depends on an other plugin), use subant
commands as in AcquisitionScripting/build.xml
to override the makedeps
target.
This work was supported by the Swiss National Science Foundation (SNSF), grants:
- 206021_164022 Platform for Reproducible Acquisition, Processing, and Sharing of Dynamic, Multi-Modal Data. (PLATFORM_MMD)
- 200020_179217 Computational biomicroscopy: advanced image processing methods to quantify live biological systems (COMPBIO)