I am putting together a SPIM setup and want something that can do analog control (and maybe digital) control of multiple laster, and eventually other components as well. I believe something like a triggerscope would work great for micro-manager, and a National instruments DAQ would work well for Labview, but is there something that would be easy to work with for both? I’m not a Labview expert, so something that has good Labview support already is preferred. Any suggestions?
Micromanager has a good NI-DAQ adapter that allows analog and digital IO for most cards:
So you should be fine in both platforms starting with NI-DAQ. I’ve used a daq board for laser control in micromanager and there is a fair amount of user experiences out there if you google NI-DAQ and micromanager. @nico.stuurman may have additional thoughts…
DAQmx is the most powerful hardware for this, with a lot of options.
Regarding the software, there is no consensus.
MicroManager can control DAQmx analog output for fixed (or slowly changing) values. However, if you need temporally precise waveform generation, eg for galvo control, MM can’t do it (the last time I checked, a year ago).
LabView is very powerful, but has steep learning curve, is expensive, and the code is hard to read. Not ideal for open-source projects if you aim there.
Another options are Matlab and Python, but there are no mature user-friendly libraries for SPIM control yet (afaik).
Projects in the pythonic direction include, for example, ZhuangLab/storm-control, python-microscopy[org], and mesoSPIM.
Shameless self promotion but my Triggerscope 3B device does exactly this (DAC / TTL high speed triggerable control) and is built to drive lasers with tricky impedance specs as well as galvos, pifocs, and other microscopy hardware. http://www.austinblanco.com/blog/new-triggerscope-3-b-adds-range-spanning-leds-high-current-drive-and-more/
For other hardware control options e.g. how to drive external parts, an Arduino can do decently for most TTL device side things, and another interesting option is to serially control a raspberry pi which then drives whatever other device you want to (e.g. on SPI or i2c). In the case of a usb-serial device, the best is the built in scriptable serial communication functions provided by micromanager.