How to minimise Hamamatsu Flash4 readout time

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

How to minimise Hamamatsu Flash4 readout time

Micro-Manager mailing list
Hello,

   Anyone is using micro-manager for fast imaging with Hamamatsu camera?
   Micro-manager supports to use the camera’s clock as synchronisation source to control other devices. However, the interval, if any, can vary quite much due to the windows system’s operation. 

   Currently I am using micro-manager to drive Flash4 camera in a slave mode. I use an external device to provide timing, and the camera just exposes upon high level trigger. 

   I got two questions, it will be appreciated if someone has similar experience:
   1. Does anyone know how to use external custom made trigger device as the clock, while the camera behaves as a slave?
   2. To speed up, I used smaller exposure area, which should increase the speed. However, I got always similar reading out time (ms), e.g. either 100% chip or 50% central chip in micro-manager. Is this a bug or just something that I do not yet know?

Best,
Qinghai Tian

Dr. rer. nat. Qinghai Tian
Universitätsklinikum des Saarlandes
Institut für Molekulare Zellbiologie
Gebäude 61, Homburg, 66421, Deutschland
Tel. 06841/1626107
Fax. 06841/1626104
        [hidden email]



_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: How to minimise Hamamatsu Flash4 readout time

JonD
Administrator
Hi Qinghai Tian,


Micro-Manager mailing list wrote

>    Anyone is using micro-manager for fast imaging with Hamamatsu camera?
>    Micro-manager supports to use the camera’s clock as synchronisation
> source to control other devices. However, the interval, if any, can vary
> quite much due to the windows system’s operation.
>
>    Currently I am using micro-manager to drive Flash4 camera in a slave
> mode. I use an external device to provide timing, and the camera just
> exposes upon high level trigger.
>
>    I got two questions, it will be appreciated if someone has similar
> experience:
>    1. Does anyone know how to use external custom made trigger device as
> the clock, while the camera behaves as a slave?
>    2. To speed up, I used smaller exposure area, which should increase the
> speed. However, I got always similar reading out time (ms), e.g. either
> 100% chip or 50% central chip in micro-manager. Is this a bug or just
> something that I do not yet know?

I have used the camera this way.

In the MDA set the interval to be 0.0.  The actual exposure start times will
be controlled by the trigger, so if you want that to be faster you will need
to actually send faster pulses as well.  IIRC once you start the acquisition
in the MDA then the camera should start "listening" for trigger pulses and
returning images until the expected number of images have been received.  (I
don't have much experience doing this so my recollection could be wrong; my
experience is mostly using these cameras in hardware triggering from a
plugin implementing a custom acquisition.)

You can either tell when the camera is ready to accept a new trigger signal
by looking at one of the camera TTL outputs or else knowing when the
exposure ends and knowing the readout time.

After the exposure end there is an ROI-dependent readout time, as described
in the Flash4 manual.  During the readout time trigger pulses won't be
recognized.  Readout time is ~10ms for full frame IIRC, and should be ~5ms
for 1024-row ROI if centered (as high as 10ms if off-center; refer to the
Flash4 manual).

An exception is the "synchronous" mode where triggers indicate the end of
one exposure and the start of the next.  This is the fastest possible mode
for repeated images, but be aware that you can see small ghost artifacts
(see https://cbmf.hms.harvard.edu/faq-items/image-correction/) whereas the
slower edge or level trigger modes should completely reset the pixels.

Jon

--------------------------
Jon Daniels
Applied Scientific Instrumentation
541-461-8181 x118



--
Sent from: http://micro-manager.3463995.n2.nabble.com/


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: How to minimise Hamamatsu Flash4 readout time

Micro-Manager mailing list
Hi Jon,
  Thank you for your great information.

> I have used the camera this way.
>
> In the MDA set the interval to be 0.0.  The actual exposure start times will
> be controlled by the trigger, so if you want that to be faster you will need
> to actually send faster pulses as well.  IIRC once you start the acquisition
> in the MDA then the camera should start "listening" for trigger pulses and
> returning images until the expected number of images have been received.  (I
> don't have much experience doing this so my recollection could be wrong; my
> experience is mostly using these cameras in hardware triggering from a
> plugin implementing a custom acquisition.)
I have been successful to program a small board to generate these pulses, and I don’t lose very much speed, let’s say 49.7 vs. 50.0 Hz. The only problem is, I need to program the external board upon every MDA recording. Currently I am controlling everything via beanshell script. However, this strategy is prone to mistakes.
I have been searching for such a plugin implementing a custom acquisition, but did not succeed. Any information about the this plugin would be appreciated.
>
> You can either tell when the camera is ready to accept a new trigger signal
> by looking at one of the camera TTL outputs or else knowing when the
> exposure ends and knowing the readout time.
I am using all the time hardware TTL to synchronise. In principle, the camera exposes upon a level trigger. When the exposure finishes, the readout starts. When readout ends, the camera gives out a TTL signal. The external board is waiting for this TTL. Upon it comes, the board starts the next exposure level trigger.

>
> After the exposure end there is an ROI-dependent readout time, as described
> in the Flash4 manual.  During the readout time trigger pulses won't be
> recognized.  Readout time is ~10ms for full frame IIRC, and should be ~5ms
> for 1024-row ROI if centered (as high as 10ms if off-center; refer to the
> Flash4 manual).
>
> An exception is the "synchronous" mode where triggers indicate the end of
> one exposure and the start of the next.  This is the fastest possible mode
> for repeated images, but be aware that you can see small ghost artifacts
> (see https://cbmf.hms.harvard.edu/faq-items/image-correction/) whereas the
> slower edge or level trigger modes should completely reset the pixels.
I am aware of that, so I don’t use synchronous mode when I use more than one alternating excitations. Of course if only one is used, it is possible to use that in fast recordings.

> Jon
>
> --------------------------
> Jon Daniels
> Applied Scientific Instrumentation
> 541-461-8181 x118
>
>
>
> --
> Sent from: http://micro-manager.3463995.n2.nabble.com/
>
>
> _______________________________________________
> micro-manager-general mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/micro-manager-general


Best,
Qinghai Tian

_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: How to minimise Hamamatsu Flash4 readout time

JonD
Administrator

>> don't have much experience doing this so my recollection could be wrong;
>> my
>> experience is mostly using these cameras in hardware triggering from a
>> plugin implementing a custom acquisition.)
> I have been successful to program a small board to generate these pulses,
> and I don’t lose very much speed, let’s say 49.7 vs. 50.0 Hz. The only
> problem is, I need to program the external board upon every MDA recording.
> Currently I am controlling everything via beanshell script. However, this
> strategy is prone to mistakes.
> I have been searching for such a plugin implementing a custom acquisition,
> but did not succeed. Any information about the this plugin would be
> appreciated.

I am referring to the ASIdiSPIM plugin which is for a special purpose and
probably won't help you directly. You could dig into the code in
AquisitionPanel.java if you want to see what it is doing (conceptually it is
a super complicated script implementing a sequence acquisition using ASI's
controller as the timing master, it doesn't use the MDA).

It sounds like you could improve the situation with more intelligence built
into your external board and/or script.

Jon



--
Sent from: http://micro-manager.3463995.n2.nabble.com/


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: How to minimise Hamamatsu Flash4 readout time

Micro-Manager mailing list
Thanks a lot. I will try to understand it.



--
Sent from: http://micro-manager.3463995.n2.nabble.com/


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general