Andor Zyla 4.2 camera integration with ACQ4 (and MicroManager)

77 views
Skip to first unread message

Kyle Wedgwood

unread,
Nov 5, 2018, 2:10:21 PM11/5/18
to ACQ4

Hi Luke,

 

I hope you’re well.

 

I was wondering if you could help me with a question about your exciting ACQ4 software.

 

I’m exploring whether this could be a solution for me to synchronise imaging and patch-clamp ephys. However, when trying to set up my camera, I am having a few issues.

 

As suggested in the documentation, I have installed both the 64bit and 32bit Anaconda python 2.7 distributions (since I propose to later use serial ports for my MultiClamp 700A).

 

My camera is an Andor Zyla 4.2 sCMOS camera for which I have the latest drivers (but NOT the SDK). This interfaces with my PC (running Windows 10 Enterprise Ed.) via a PCIe frame grabber card supplied by Andor.

 

Although Andor is not natively supported in ACQ4, Paul Manis informed me that you and he had some success using MicroManager as a driver for such cameras (which is what I currently using to control my camera anyway).

 

I have now found the MM drivers and device names (Andor SDK3, Andor sCMOS) and the software now recognises my camera, but I cannot seem to alter some of the device properties (e.g. binning, shutter modes). Moreover, when I try to use the camera module, I get an error message saying that the PixelType is not recognised.

 

Any idea what is going on here?

 

Thanks in advance for your help.

 

Best wishes,

 

Kyle

Luke Campagnola

unread,
Nov 5, 2018, 3:04:05 PM11/5/18
to ac...@googlegroups.com

Hi Kyle,


MicroManager usually gets us most of the way toward camera support, but each camera may have minor differences that have to be addressed individually.  If you're willing to do some digging, we can figure out what is different about your camera.


To start, I need to know what values your camera accepts for the Binning and PixelType properties. With acq4 running, open the Console module and run these commands (paste each line into the text entry field and press enter after each):   

cam = man.getDevice('Camera')
cam.mmc.getAllowedPropertyValues(cam.camName, 'PixelType')
cam.mmc.getAllowedPropertyValues(cam.camName, 'Binning')
Then copy/paste the results back here. On my camera, for example, the allowed binning modes are ('1x1', '2x2', '4x4') and the PixelType looks like ('16bit',).

The other thing that will help me is a more full description of each problem that you run into--when you say you cannot alter some of the properties, is this because the GUI doesn't offer you any options? Or is there an error when you try to change them? Or does changing them have no effect on the camera image? Likewise, for the error you received about PixelType (and any other error message you run into, it would be helpful if you can copy/paste the full traceback from either the windows command prompt window or from the acq4 log window. Alternatively, you can use the "export HTML" button from the acq4 log window and just attach the html file here.

Let me know if anything above doesn't make sense.

Cheers,
Luke


From: 'Kyle Wedgwood' via ACQ4 <ac...@googlegroups.com>
Sent: Monday, November 5, 2018 11:10 AM
To: ACQ4
Subject: [acq4] Andor Zyla 4.2 camera integration with ACQ4 (and MicroManager)
 
--
You received this message because you are subscribed to the Google Groups "ACQ4" group.
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/acq4/6a6b2937-518a-4237-a789-af3029248bae%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Kyle Wedgwood

unread,
Nov 6, 2018, 6:09:03 AM11/6/18
to ACQ4
Hi Luke,

Thanks for your speedy response.

Here are the responses I get when running your suggested commands:

cam.mmc.getAllowedPropertyValues(cam.camName, 'PixelType')

()


cam.mmc.getAllowedPropertyValues(cam.camName, 'Binning')

('1x1', '2x2', '3x3', '4x4', '8x8')


Here is the log from trying to change binning (first two tracebacks) and what happens when I try to use the camera. I guess there there is a problem with trying to change the x and y binning independently of each other, since the camera only accepts N x N binning. I'm not sure why the PixelType is blank...




2018.11.06 11:08:20 Unexpected error: 
CMMError: Cannot set property "Binning" to "2x1" [ Error in device "Camera": Invalid property value: Binning (3) ]
CMMError: Cannot set property "Binning" to "2x1" [ Error in device "Camera": Invalid property value: Binning (3) ]
  File "acq4\devices\Camera\deviceGUI.py", line 154, in stateChanged
    self.dev.setParams(vals)
  File "acq4\devices\MicroManagerCamera\mmcamera.py", line 244, in setParams
    self._setParam(k, v, autoCorrect=autoCorrect)
  File "acq4\devices\MicroManagerCamera\mmcamera.py", line 348, in _setParam
    self.mmc.setProperty(self.camName, str(param), str(value))
  File "C:\Program Files\Micro-Manager-1.4\MMCorePy.py", line 4071, in setProperty
    return _MMCorePy.CMMCore_setProperty(self, *args)






2018.11.06 11:08:25 Unexpected error: 
CMMError: Cannot set property "Binning" to "1x2" [ Error in device "Camera": Invalid property value: Binning (3) ]
CMMError: Cannot set property "Binning" to "1x2" [ Error in device "Camera": Invalid property value: Binning (3) ]
  File "acq4\devices\Camera\deviceGUI.py", line 154, in stateChanged
    self.dev.setParams(vals)
  File "acq4\devices\MicroManagerCamera\mmcamera.py", line 244, in setParams
    self._setParam(k, v, autoCorrect=autoCorrect)
  File "acq4\devices\MicroManagerCamera\mmcamera.py", line 348, in _setParam
    self.mmc.setProperty(self.camName, str(param), str(value))
  File "C:\Program Files\Micro-Manager-1.4\MMCorePy.py", line 4071, in setProperty
    return _MMCorePy.CMMCore_setProperty(self, *args)






2018.11.06 11:08:27 Unexpected error: 
CMMError: Cannot get value of property "PixelType" [ Error in device "Camera": Invalid property name encountered: PixelType (2) ]
CMMError: Cannot get value of property "PixelType" [ Error in device "Camera": Invalid property name encountered: PixelType (2) ]
  File "acq4\modules\Manager\Manager.py", line 138, in loadSelectedModule
    self.loadConfiguredModule(item.confModName)
  File "acq4\modules\Manager\Manager.py", line 145, in loadConfiguredModule
    self.manager.loadDefinedModule(mod)
  File "acq4\Manager.py", line 555, in loadDefinedModule
    mod = self.loadModule(mod, name, config, forceReload=forceReload, execPath=execPath, importMod=importMod)
  File "acq4\Manager.py", line 496, in loadModule
    mod = modclass(self, name, config)
  File "acq4\modules\Camera\Camera.py", line 14, in __init__
    self.ui = CameraWindow(self)
  File "acq4\modules\Camera\CameraWindow.py", line 65, in __init__
    ifaces = OrderedDict([(dev.name(), dev.cameraModuleInterface(self)) for dev in devices if hasattr(dev, 'cameraModuleInterface')])
  File "acq4\devices\Camera\Camera.py", line 340, in cameraModuleInterface
    return CameraInterface(self, mod)
  File "acq4\devices\Camera\CameraInterface.py", line 83, in __init__
    self.openCamera()
  File "acq4\devices\Camera\CameraInterface.py", line 148, in openCamera
    self.bitDepth = self.cam.getParam('bitDepth')
  File "acq4\devices\MicroManagerCamera\mmcamera.py", line 383, in getParam
    val = self.mmc.getProperty(self.camName, str(paramTrans))
  File "C:\Program Files\Micro-Manager-1.4\MMCorePy.py", line 4015, in getProperty
    return _MMCorePy.CMMCore_getProperty(self, *args)


Thanks for your help.

Best wishes,

Kyle

Kyle Wedgwood

unread,
Nov 12, 2018, 9:01:01 AM11/12/18
to ACQ4
Hi Luke,

I was wondering if you'd had any more thoughts about this?

Best wishes,

Kyle

On Monday, 5 November 2018 19:10:21 UTC, Kyle Wedgwood wrote:

Luke Campagnola

unread,
Nov 12, 2018, 1:51:52 PM11/12/18
to ac...@googlegroups.com

Sorry Kyle, I got slammed last week.


For the binning issue: it looks like you were trying to change the binning value from the Manager window, is that correct? The camera module has a binning control that keeps the x/y values locke, so you should not encounter the same issue from there (although I should fix the manager window issue).


For the PixelType issue, it looks like your camera just doesn't support that property, so I need to make it optional.

I think this can be safely fixed by commenting out line 148 in acq4\devices\Camera\CameraInterface.py:


    # self.bitDepth = self.cam.getParam('bitDepth')


Can you give that a try and see how far it gets you?


Luke



From: 'Kyle Wedgwood' via ACQ4 <ac...@googlegroups.com>
Sent: Monday, November 12, 2018 6:01:01 AM
To: ACQ4
Subject: [acq4] Re: Andor Zyla 4.2 camera integration with ACQ4 (and MicroManager)
 
--
You received this message because you are subscribed to the Google Groups "ACQ4" group.
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+uns...@googlegroups.com.

Kyle Wedgwood

unread,
Nov 13, 2018, 9:57:26 AM11/13/18
to ACQ4
Hi Luke,

That appears to have done the trick.

Thanks for your help!

Best wishes,

Kyle
Reply all
Reply to author
Forward
0 new messages