-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible problem with Hamamatsu camera #354
Comments
Some extra info (the mm logs when this happens, can provide the full log upon request):
Micro-manager version (I guess what matter is the Device API version)
|
Yes, that usage should not pose a problem, but it is not the most typical either (more often, there will be a fixed time interval between repeated snaps). If you think the crash is caused because of it, you could try inserting a brief sleep (say, 10 ms) between snaps, or use a sequence acquisition (or live mode, if displaying the images is all that is needed) instead. |
Hi @marktsuchida and thank you for replying
Actually, the simplified version of the script omits this sleep delay which exists in another script (100ms in our case) which is slighly more involved since it processes the images for which such failure already occured. I wanted to simplify it as much as possible to find the source of the problem. If I find some time, I will try to trigger a camera crash again with the simple script and an added delay (it's kind of tedious because it can take a week to occur). I still quite don't understand how it is possible that a hardware failure happens if pictures are taken too quickly. |
Hello @nicost, is it possible to reopen the thread ? I know that you have more important bugs to fix but I want to be sure it's not a hardware problem. |
Have you considered using the camera sequence function from the core object instead? That starts the camera acquiring frames in a continuous sequence. You then have to extract them from the buffer and add them to an acquisition so a tiny bit more code but should do what you need without any issues. |
Hello @palmada and thank you for your follow-up on this issue. Is setting a 1 frame For context I am computing sharpness of a z-stack, like the |
Yes it is indeed different, but not immensely so. If you want to use a delay, then it's not appropriate, as it starts a stream with no delay. One trick that might work for you instead is calling the |
|
Your best bet is to contact Hamamatsu support. Hamamatsu maintains the code to the device adapter. The bug is surely either in the device adapter, the Hamamatsu driver/SDK, or the camera firmware, and there is nothing we can (or should) do about any of those. If you can use a sequence acquisition (as suggested by @palmada), that is surely a good workaround the problem. |
Hi @nicost, thanks for your input. I will contact Hamamatsu, try to use |
We have a Hamamatsu C11440-36U which sometimes irrevocably crashes and requires a hard restart (turned on and off) irrespectively of the restart of MM or even the PC with this kind of message displayed:
A script as simple as that can reproduce the issue by repeateadly taking images:
It can trigger the bug more or less randomly (might take hours, might take days or even weeks).
After discussion with Hamamatsu, it appears that something /might/ be off on micro-manager side (not sure but that's what /they/ claim). I provide the decoded camera log captured by hamamatsu software (don't remember the name on top of my head but thyey directly provided it during the debug process)
: 230617_camera_logs_crash.pdf
According to the engineer, when capturing an image with
snapImage()
a call todcamcap_start
is made on the DCAM-API side but is not followed bydcamcap_stop
which /could/ be the source of the problem. I'm not sure that's totally true since it can be that the buffer only has 1 image, or maybe not ? Anyway, since there's no public access to the camera device adapter I cannot look further.The real question here, maybe: is this a normal usecase to use this snap() function repeatedly ? Any alternative ? it doesn't seem to do anything else than to call
MMCore.snapImage()
in our case (single channel image)Thanks !
The text was updated successfully, but these errors were encountered: