After a bit of work, and with help from Nenad, I could resolve all of these issues with my Zeiss AxioZoom. I hope this will be helpful for future users.
1. I added a condition in the source code of the AxioZoom DA, such that a new position is actually set only if it is different from the current position.
2. It seems this is a feature in MM that I cannot resolve easily. It is not really important anyways.
3. The CL 6000 LED light source can be controlled with a footswitch plugged on the jack port at the back of the box. I could simulate the footswitch, by using a relay controlled from MM via Arduino. The light turns on AND off with a rising edge, so I had to modify the Arduino device adapter source code so the Arduino pin gets back to zero 25ms after it was set to 1. I can now use the Arduino board as a shutter (it is actually a blind shutter: it opens/closes without any feedback from the light source, but that’s fine for now).
4. I could add the Objective position property in the DA (a huge thanks to Matthias Blaicher who explained how to decode ZeissCAN29 using MTB software).
5. Another issue emerged: the shutter for the fluorescence lamp housed in the filterwheel module was not recognized as a shutter. With the help of Nenad, I could make it work now.
All these changes have been added into the DA I’m using now, and I’d be happy to share it if you tell me how to proceed.
I recently acquired a Zeiss AxioZoom. A device adapter has been developed by Nenad Amodaj for the Exploratorium (San Francisco) and has been recently added to the nightly build. It seems to be a modification of the ZeissCan29 device adapter.
The system is connected to a Windows 10 64-bits computer with a RS232 null-modem cable and a USB adapter.
It works well enough (control of zoom and focus, aperture, fluo revolver and fluo shutter), but there are some issues:
- There is a freeze/timeout issue when I click on the field to change the focus, zoom, or aperture, from the device property browser. Micro-manager freezes for a few seconds if I click on one of these fields and then press enter without changing the value, or if I click on another one of these fields without changing the value. It throws a timeout error (“wait for device “OpticsUnit” timed out after 5000ms”) and gets back to normal. However, if I click on one of these fields and change its value, it works smoothly. If I click on one of these fields, I don’t change the value, and then I click anywhere else (but not on the other fields), then it works fine as well. I reproduce the same behaviour from the main window when I set a group with any of these fields.
- I would love to make the camera keep running while I change the zoom. In the current configuration, the ‘live’ window freezes until the move is completed.
- The system came with a light source CL 6000 LED, which doesn’t have any ZeissCAN port, but only a USB. I can see it from the MTB Config software. Is there any chance micro-manager could control it?
- The system has two lenses, mounted on a nosepiece. The nosepiece is not motorized, but it is coded. If I manually switch lenses by spinning the nosepiece, it should be able to tell micro-manager the lens has changed. It does work this way on my system with Matlab/MTB. Could the device adapter be updated to include the nosepiece position information?
> After a bit of work, and with help from Nenad, I could resolve all of these issues with my Zeiss AxioZoom. I hope this will be helpful for future users.
> All these changes have been added into the DA I’m using now, and I’d be happy to share it if you tell me how to proceed.
Thanks for your work on this, and thanks for sharing!
It may be best to send your changed code to Nenad, he can push it into
the subversion repository.