Re: [micro-manager-general] Questions on Hamamatsu Flash4
Status: Beta
Brought to you by:
nicost
|
From: Chris W. <cwe...@ms...> - 2016-01-15 21:12:42
|
Hi Thomas, On Thu, Jan 14, 2016 at 11:53 PM, julou <tho...@no...> wrote: > Hi Mark, > > > The only way to (appear to) capture individual frames faster that I > > can think of is to have a sequence acquisition running in the > > background. In this case, snapImage()/getImage() will return the > > latest frame from the sequence acquisition (at least for some > > cameras). I wouldn't depend on this behavior without testing with your > > particular camera that it returns an image acquired at the timing you > > expect, though, since this is an area where µManager's device > > interface is not as strictly defined as it ideally would be. > > Interesting… > Here is a variation on the same topic: provided that we manage to speed up > the single-image capture to e.g. <100ms, do I understand correctly that if > delay>exposure, the MDA will use single-image capture and hardware > triggering for sequencable properties? then we could use the camera/MM > communication time to move the stage (e.g. by triggering it with the > falling edge of the camera trigger)… does this make sense? > For clarity's sake, let me recap some basics. If the exposure time is greater than the delay, then µManager will perform a "sequence acquisition", in which the camera is responsible for all timing. If the exposure time is less than the delay, then µManager will perform "snap acquisitions", where µManager itself is responsible for timings. In order to take advantage of µManager's hardware triggering logic, you must be using a sequence acquisition. If you are using snap acquisitions, then no attempt is made to arrange hardware triggering of devices, e.g. telling a triggerable stage what positions to move to on receipt of each trigger. Instead, µManager snaps an image, then moves the stage, then snaps another image, etc. -- all done in software. Now, in principle you could set up hardware triggering yourself, which could run in both sequence and snap acquisitions. But it would exist "outside" of the MDA system (and indeed outside of µManager's device control in general) and would probably be very messy to try to set up. For example, while you might be able to tell your Z stage to change position every time it gets a trigger from the camera, µManager would not realize that the stage has moved, so its Z-stack acquisition logic would become inaccurate. You would need to disable µManager's Z-stacks so that it does not try to move the stage itself, or fool it using a virtual Z stage that doesn't actually move your sample. It's not an impossible task (I believe), but it would be significant work, as compared to µManager's built-in hardware sequencing which just works, as long as you have supported hardware. -Chris |