I’m finishing up work on our high speed widefield / CSU-W1 spinning disk confocal system (previously discussed here). This microscope is about as complicated a system as I ever want to assemble – it has three cameras, two fluorescence light sources, a photobleaching system, motorized XYZ stages, and a brightfield LED (see the figure).
We’d like to be able to trigger most of these devices for fast acquisition. Here, I’m using triggering to mean that every time the camera takes an image, the triggered devices automatically advance to the next state, allowing acquisition to proceed at the full frame rate of the camera. This works for devices with negligible switching times such as lasers, LEDs, and our piezoelectric Z-stage. You can read more about triggered acquisition on the Micro-manager website and on Austin’s blog. In particular, we’d like to be able to trigger the piezo Z stage of any of the three cameras, the spinning disk lasers should trigger off either spinning disk camera, and so on. The full list of triggers is shown in the table below.
|Piezo Z Stage||Widefield sCMOS, Spinning disk sCMOS, Spinning Disk EMCCD|
|Brightfield LED||Widefield sCMOS, Spinning disk sCMOS, Spinning Disk EMCCD|
|Spinning Disk Lasers||Spinning disk sCMOS, Spinning Disk EMCCD|
When I started work on this I hoped, and was told by at least one person, that I could wire-OR the trigger lines from the different cameras together. That is, if the camera trigger lines only actively drove high and had a pull down resistor to ground, and camera could pull the line high while the others were sitting passively low. This turns out not to work – the cameras actively drive both high and low and so fight each other if you just connect them together. To OR them, we therefore need some active electronics. Specifically, I’m using a 74HCT4075 triple 3-input OR gate. We also need to provide independent trigger lines for each laser on the spinning disk laser launch, for the brightfield LED, and for the widefield LEDs. For each of these we need to be able to send a signal that comes on when the camera is exposing, and when that light source is supposed to be on. For the spinning disk lasers and the brightfield LED, we’re using an Arduino; for the widefield LEDs we’re using a ES Imaging board. The piezo Z-stage takes a trigger input and can be programmed from Micro-manager directly, so we don’t need any additional hardware there. One consequence of the way we’ve wired things up is that all three cameras can trigger the spinning disk LEDs; this is OK because when we’re using the widefield camera and LEDs, the Arduino shutter will be deselected in Micro-manager, so no laser trigger pulses will be generated. The final wiring diagram is shown below.
To simplify the cabling, and for ease of future updates, I laser cut a patch panel to break out all the trigger inputs and outputs for each device. This panel also mounts the Arduino used for laser and brightfield control and the OR gate. Both are broken out to BNCs for future expansion. As a side note, we are not properly driving or terminating the 50 Ω cables, so you might expect some ringing or other problems. So far we haven’t seen any, but I should really put an oscilloscope on the cabling just to check.
In conclusion, this triggering scheme works really well. The end user doesn’t need to know any of these details to collect their data – everything just works the way it’s supposed to. I do with this had been a little easier to set up, and that I didn’t need to wire up my own OR gate to get it working. I guess that these types of complicated setups just aren’t common enough for there to be standard solutions to these problems yet.