Skip to main content

Unpacking deformable Mirror Mirao52e: first impressions

Mirao52e 

from Imagine Optic is probably one of the best known high-stroke deformable mirrors (DMs), a working horse in adaptive optics. It has 52 actuators, huge stroke (up to +/- 50 microns peak-to-value), and a hefty 15-mm clear aperture of usable mirror surface. All things look good, at a price tag of about 20K euro. After some hesitation and comparing specs/price with Alpao mirrors, I eventually chose Mirao52e for my adaptive optics project.



It is too early to speak of performance, I will do optical tests later. Today I can only share my first impressions.

Pros:
  1. Small form factor: 64x64x17.6 mm, easy to integrate if your space is tight
  2. Very easy installation (Windows 7), basically installation of USB-serial port drivers 

Cons:
  1. Mounting options are weird. There are two M3 tapped holes on each side, 20 mm apart. Does not fit any Thorlabs mount I know - they normally use M4 screws and 25-mm space between. No adapter included :(
  2. Where are LabView drivers which are industry standard for many years? Only a dll file and single Visual C/C++ library. They gotta be kidding me, such bare-bone API for a 20+K research apparatus. A full-scale API collection WaveKit in LabView/Matlab/C++ is offered for extra cost. Not cool.
  3. The cable attached to the mirror is humongous! It is 10 mm thick and stiff as a horsewhip. This is bad, because DM will be installed on a Thorlabs kinematic mount, which is a delicate mechanical piece, and it will likely drift because of residual stiffness of this huge cable. Should I call Imagine Optics engineers and break out in tears?
Update: I did some homework and wrapped the driver file mirao52e.dll in LabView code, so it can (and should!) be used in LabView: https://github.com/nvladimus/mirao-LV-driver
Will I get a paycheck from @ImagineOptic? :-)

Update 21.10.2017. Open and closed-loop control code for this mirror in Python here.

Comments

Popular posts from this blog

Programming NI DAQmx board in Python: easier than you think!

For my DIY microscope I had a task - generate a train of digital pulses which simulate camera trigger, so that other devices (galvo and laser) are synched. I wanted to do it in Python, so that it seamlessly integrates in my data acquisition and analysis Jupyter notebook.

After some quick search I found a PyDAQmx library which seemed mature and had good examples to begin with.

Installation was smooth: download, unzip, open Anaconda prompt,
python setup.py install

After only 30 min fiddling, I was able to solve my problem in just a few lines of code:

Holy crap, it just works, out of the box. Oscilloscope shows nice digital pulses every 100 ms, each 1 ms long. The code is much shorter and cleaner than would be in C, C#, or LabView.

PyDAQmx appears to be a full-power wrapper around native NI DAQmx drivers (yes, they need to be installed), so presumably it can do all that can be done in C or even LabView (this statement needs to be tested).

One can use PyDAQmx to control galvos with fast ana…

Programming of DIY microscopes: MicroManager vs LabVIEW

In the flourishing field of DIY light microscopy, a decision of choosing the programming language to control the microscope is critically important. Modern microscopes are becoming increasingly intelligent. They orchestrate multiple devices (lasers, cameras, shutters, pockel cells) with ever increasing temporal precision, collect data semi-automatically following user-defined scenarios, adjust focus and illumination to follow the motion (or development) of a living organism.
So, the programming language must seamlessly communicate with hardware, allow devices be easily added or removed, have rich libraries for device drivers and image processing, and allow coding of good-looking and smooth GUIs for end users. This is a long list of requirements! So, what are the  options for DIY microscope programming?

There are currently two large schools of microscope programming - Labviewers and Micromanagers. (update: Matlab for microscope control also has a strong community, comparable to labview…

Shack-Hartmann sensor resolution - how much is good?

If you are new to adaptive optics (AO) like me, the selection of right hardware can be daunting. Starting with a wavefront sensor - they range in price, resolution, and many options which are not obvious. By practical trial and error I learned something about resolution, which wasn't obvious to me a year ago.

The Shack-Hartmann wavefront sensor (WFS) is essentially a camera with a lenslet array instead of an objective.
 There are sensors with 15x15 lenses, 30x30 and higher. Naively, you might think "the more the better" - we are digital age kids used to get high-res for cheap.

However, there is a catch. High-res sensor, say, 30x30 lenslets, divides your photon count by 900 per spot. Roughly speaking, when you image a fluorescent bead (or another point source) by a camera with "normal lens" (not a lenslet array), and your peak intensity is 2000, this makes a very nice, high SNR bead image. However, is you switch to Fourier (pupil) plane and image the wavefront u…