Re: [micro-manager-general] Andor iXon+, iXon3 bug?, need help
Status: Beta
Brought to you by:
nicost
|
From: Nico S. <nic...@uc...> - 2020-03-12 17:56:16
|
Hi Lukas,
I am afraid that I can not help much at this point in time, but we ran
into similar issues with our dual camera setup (2 iXons), and we are
still using the "old" Andor adaptor code on our dual camera microscope.
The Andor engineer at the time told me that he could reproduce the
issues I was seeing (will have to go back to see if those were the same
you were seeing) with VS2010, but that they went away with the newer VS
that he was using. Although that did not make a lot of sense to me at
the time, I very much do want to see MM to migrate soon to new
compilers, to at least make sure whether or not that is an issue.
It would be great if you could contact Andor technical support about
these issues, and see if they can raise it to a point that their
software developers get involved. At that point, please do get me in
the loop as well. Andor maintains the device adaptor code, and the
April 2019 update was quite drastic, but certainly left a number of
issues behind. I am afraid that they are in the best position to fix
this (but I'll be happy to advice).
Best,
Nico
> Hi Pedro,
>
> I am using the 64bit version.
> ImageJ.cfg is set with -Xmx6000m
> The Sequence Buffer Size is 512MB which can hold 2048 images.
> The computer has 32Gb of RAM.
>
> Single Andor camera:
> With the old adapter the average return time of
> mmc.popNextTaggedImage(); is 1ms (2x binning --> 256x256 pixel, 16bit)
> With the new adapter (past 14.April19) the average return time of
> mmc.popNextTaggedImage(); is 18ms (exactly the same config file, just
> changed mmgr_dal_Andor.dll)
>
> With the Multi Camera adapter:
> old adapter: 2ms
> new adapter: 36ms --> not sufficient for 100fps (2x 50fps)
>
> I am also curious why the Multi Camera adapter doubles the time to
> return a single image.
>
> With the "new" adapter the Sequence Buffer fills up quite fast
> (observed with Sequence Buffer Monitor).
> With the "old" adapter the Sequence Buffer Monitor shows rarely 1-2
> images.
> I can't just increase the buffer size, it would exceed due to the long
> recording time.
> Also: the System is tracking on the camera stream, therefore a large
> amount of images in a huge buffer causes a fatal delay for the tracker.
>
> Further Interesting:
> With "Trigger: Software", on the "new" adapter the cameras are slowing
> down a lot and therefore the buffer is kept below 100 images..
> But with external Trigger the buffer overflow occurs quite quick (but
> the cameras stay at pace).
> The readout time of the cameras is indicated with about 16ms.
>
> The script i used to investigate in the timings:
>
> mm.scripter().resetInterpreter(); //Reset Interpreter to get rid of
> old stuff
> mm.scripter().clearMessageWindow(); //Clear Script output window
> /**
> * A burst aquisition test script
> */
> import org.micromanager.interal.utils.JavaUtils;
> //import org.micromanager.data.Datastore;
>
> // User defined variables:
> int nrFrames = 1000;
> int loopSleepTime = 3;
>
> // defining variables
> long taggedTime = 0;
> long endSequenceTime = 0;
> int loopCount = 0;
>
> // stop running acquisitions
> if (mmc.isSequenceRunning()) {
> mmc.stopSequenceAcquisition();
> }
>
> // RW ram store
> storeRW = mm.data().createRewritableRAMDatastore();
> // Create a display to show images as they are acquired.
> mm.displays().createDisplay(storeRW);
>
> // actual acqusition in a try block to catch errors
> try{
> // start acqusition and run until it is stopped by command
> // the sequence acquistion with preset number of Images did cause problems
> mmc.startContinuousSequenceAcquisition(0);
> // Set up a Coords.CoordsBuilder for applying coordinates to each image.
> builder = mm.data().getCoordsBuilder().z(0).channel(0).stagePosition(0);
>
> while (mmc.getRemainingImageCount() > 0 ||
> mmc.isSequenceRunning(mmc.getCameraDevice())) {
> if (mmc.getRemainingImageCount() > 0) {
> timeStart = System.currentTimeMillis();
> tagged = mmc.popNextTaggedImage();
> timeEnd = System.currentTimeMillis();
> taggedTime = taggedTime + (timeEnd - timeStart);
> frameNumber = tagged.tags.getInt("ImageNumber");
> // stop sequence after nrFrames images
> if (frameNumber >= nrFrames) {
> timeStart = System.currentTimeMillis();
> print("stop sequence");
> mmc.stopSequenceAcquisition();
> print("sequence stopped");
> timeEnd = System.currentTimeMillis();
> endSequenceTime = taggedTime + (timeEnd - timeStart);
> }
> // for visualisation
> image = mm.data().convertTaggedImage(tagged,
> builder.time(0).build(), null);
> storeRW.putImage(image);
> print("image Nr.: " + frameNumber);
> loopCount++;
> }
> else {
> java.lang.Thread.sleep(loopSleepTime);
> }
> }
> }
> catch (Exception exception) {
> print(exception + " - something went wrong");
> }
> if (mmc.isSequenceRunning()) {
> mmc.stopSequenceAcquisition();
> }
> storeRW.close();
> print ("acqusition done");
> print ("sum tagged time: " + taggedTime);
> print ("end sequence time: " + endSequenceTime);
>
>
> Thanks for helping me.
>
> kind regards Lukas
>
>
> On 2020-03-12 10:07, Pedro Almada wrote:
>> Hi Lukas,
>>
>> Just as a sanity check, have you set the circular memory buffer to an
>> appropriate size?
>> https://micro-manager.org/wiki/Micro-Manager_Configuration_Guide#Memory_Settings
>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__micro-2Dmanager.org_wiki_Micro-2DManager-5FConfiguration-5FGuide-23Memory-5FSettings&d=DwMDaQ&c=iORugZls2LlYyCAZRB3XLg&r=UwP8SWqih8VHO1LwZpgcx83I4o21yLj6V6QD-25Dt4I&m=Azgfttsqypz0DvZFBuWwdGg8HC4NaQyiaa1fqvYEv0A&s=PG8_MP-bp5ljDiggl6RgaGpdZCvv5zr-LEynV0WaowQ&e=>
>>
>>
>> Kind regards,
>> Pedro Almada
>>
>> On Wed, 11 Mar 2020 at 18:04, Lukas Hille <Luk...@im...
>> <mailto:Luk...@im...>> wrote:
>>
>> Hi,
>>
>> I need help with two Andor cameras.
>>
>> Two Andor cameras are used in dual view (Multi Camera adapter with
>> Andor: iXon+ and Andor: iXon3).
>> Acquisition is done by a burstAcquisition macro (equal to the
>> script),
>> but the described behavior applies also to MDA.
>> With Frame transfer enabled and at higher Acquisition speeds
>> (binning 2,
>> 0.9us vertical clock, 20ms exposure, full ROI) i get an buffer
>> overflow.
>>
>> It appears that the device adapter before 14.April2019 "old" returns
>> very quick from mmc.popNextTaggedImage() and therefore produces no
>> buffer overflow, while the adapter after 14.April2019 "new" takes
>> a very
>> long time to return from this function.
>> This also occurs with only one Camera in use, but with two
>> cameras the
>> return time is to long to handle the data flow.
>>
>> A second issue is, that with Multi Camera adapter, the camera
>> referring
>> to channel 0 (independent which one) stops acquiring after some time
>> (~60.000 images in Trigger: software).
>> This applies to the "old" and the "new" Andor device adapter.
>>
>> With Multi Camera adapter and external trigger (one source for both
>> cameras, Trigger set to External on both cameras), the camera
>> referring
>> to channel 0 stops acquiring within 0 to some thousand images)
>>
>> I don't get any debugging error message with the new adapter.
>> With the old adapter i get for example: "GetNumberNewImages error:
>> first: 3473 last: 3473" for the camera on channel 0 before it
>> stops working.
>>
>> The goal would be to acquire about 200,000 time points with external
>> trigger at 20ms exposure time.
>>
>> I tried to understand the differences in the code from commits on
>> 14.April, but I didn't figure out why this makes a difference for
>> the
>> popNextTaggedImage() function.
>> Also: the error message "GetNumberNewImages error:" doesn't make any
>> sense to me, referring to the situation that no new images are
>> acquired.
>>
>> I would be very happy to get assistance on this one.
>>
>> Software:
>> AndorDriverPack2 - 2.103.30031.0
>> Micro-Manager 2.0.0-gamma1 20200222
>> mmgr_dal_Andor.dll from 1.04.2019, 16.04.2019 and 22.02.2019
>> (tried many
>> many more)
>>
>> best
>> Lukas
>>
>> --
>> ____________________________________________
>> Lukas Hille, M.Sc.
>> microscopy engineer
>> Luk...@im... <mailto:Luk...@im...>
>> M +43 660 349 169 3
>>
>> Department of Neurobiology, University of Vienna
>> Campus-Vienna-Biocenter 1
>> 1030 Vienna
>> AUSTRIA
>>
>> https://neuro.univie.ac.at/
>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__neuro.univie.ac.at_&d=DwMDaQ&c=iORugZls2LlYyCAZRB3XLg&r=UwP8SWqih8VHO1LwZpgcx83I4o21yLj6V6QD-25Dt4I&m=Azgfttsqypz0DvZFBuWwdGg8HC4NaQyiaa1fqvYEv0A&s=vOEXQZsKGgi3nnbjzvgQn42ESKwizdX8-w-cF9pJs3k&e=>
>> https://www.imp.ac.at/groups/manuel-zimmer/
>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.imp.ac.at_groups_manuel-2Dzimmer_&d=DwMDaQ&c=iORugZls2LlYyCAZRB3XLg&r=UwP8SWqih8VHO1LwZpgcx83I4o21yLj6V6QD-25Dt4I&m=Azgfttsqypz0DvZFBuWwdGg8HC4NaQyiaa1fqvYEv0A&s=asG_6hmBgrmDz6Rbwm0hll60QnyPPogr1kqoz9eEq6Y&e=>
>> Part of Vienna BioCenter
>> www.viennabiocenter.org
>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.viennabiocenter.org&d=DwMDaQ&c=iORugZls2LlYyCAZRB3XLg&r=UwP8SWqih8VHO1LwZpgcx83I4o21yLj6V6QD-25Dt4I&m=Azgfttsqypz0DvZFBuWwdGg8HC4NaQyiaa1fqvYEv0A&s=JQvGS7Y-Uc6IqcKD3lPntn5yVlZO0i7rpltQBfj9trE&e=>
>> ____________________________________________
>>
>>
>>
>> _______________________________________________
>> micro-manager-general mailing list
>> mic...@li...
>> <mailto:mic...@li...>
>> https://lists.sourceforge.net/lists/listinfo/micro-manager-general
>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.sourceforge.net_lists_listinfo_micro-2Dmanager-2Dgeneral&d=DwMDaQ&c=iORugZls2LlYyCAZRB3XLg&r=UwP8SWqih8VHO1LwZpgcx83I4o21yLj6V6QD-25Dt4I&m=Azgfttsqypz0DvZFBuWwdGg8HC4NaQyiaa1fqvYEv0A&s=9i6pdTjg_qT2toVJkbzjoQnylKRxs8CVRcuuhVjnU9Q&e=>
>>
>>
>>
>> _______________________________________________
>> micro-manager-general mailing list
>> mic...@li...
>> https://lists.sourceforge.net/lists/listinfo/micro-manager-general
> --
> ____________________________________________
> Lukas Hille, M.Sc.
> microscopy engineer
> Luk...@im...
> M +43 660 349 169 3
>
> Department of Neurobiology, University of Vienna
> Campus-Vienna-Biocenter 1
> 1030 Vienna
> AUSTRIA
>
> https://neuro.univie.ac.at/
> https://www.imp.ac.at/groups/manuel-zimmer/
> Part of Vienna BioCenter
> www.viennabiocenter.org
> ____________________________________________
>
>
> _______________________________________________
> micro-manager-general mailing list
> mic...@li...
> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.sourceforge.net_lists_listinfo_micro-2Dmanager-2Dgeneral&d=DwICAg&c=iORugZls2LlYyCAZRB3XLg&r=UwP8SWqih8VHO1LwZpgcx83I4o21yLj6V6QD-25Dt4I&m=Azgfttsqypz0DvZFBuWwdGg8HC4NaQyiaa1fqvYEv0A&s=9i6pdTjg_qT2toVJkbzjoQnylKRxs8CVRcuuhVjnU9Q&e=
|