[tutorial] Setting up a DMD: Diffraction effects

small

I recently acquired a Digital Micromirror Device (DMD) and when I started setting up the experiment, I faced a problem I did not anticipate which is closely related to blazed gratings. Due to the fact that the surface of a DMD is not flat, diffraction orders are shifted compared to the optical axis. This shift depends on the pixel pitch, the wavelength and the incident angle. A close look at this diffraction phenomenon is important to configure an experimental setup properly. It is even relevant to consider this effect before choosing the appropriate DMD model to buy.

DMD

Figure 1. Representation of incident and reflected beams with a liquid crystal SLM (left) and a DMD (right).

 

In a standard diffracting device, such as a flat grating or a liquid crystal SLM, the reflection angle is the opposite of the incident one compared to the normal of the array plane. That implies that the path coming from each element of the device has the same optical path length (Figure 1 left). For a blazed grating, or a DMD with all the pixels in the same state, the elements are tilted with a given angle \(\theta\). Two consecutive pixels or elements now have a phase difference (Figure 1 right). In the Fourier plane, where we commonly select the zeroth order, all the diffraction orders are shifted compared to the optical axis within the same envelope. In the worst scenario, we can end up with four diffraction orders with approximately the same intensity, each significantly shifted compared to the optical axis. An example is shown in Figure 6. This is almost exactly what I had the first time I set up my DMD while I expected something like in Figure 5.

Another way of seeing this effect is to consider that the diffraction orders (satisfying the grating equation) do not match anymore the angle of the reflected beam.

We first use a 1D model to evaluate the effect of the tilt angle on the diffraction pattern. We then use simple numerical calculations to estimate the profile of the diffraction pattern. The full Python code used in this post is available as an IPython Notebook on my GitHub account:

 

 

A simple criterion

In a DMD, the axis of rotation of the mirrors is at 45 degrees compared to the axis of the square lattice of the pixels. We consider that we only excite the DMD with plane wave having a k-vector orthogonal to this axis. This makes sense because if one wants to compensate for the diffraction effect in both directions, he has to follow the symmetry of the system. Then, the problem is similar in the X and Y directions and we can just consider a 1D problem.
For a tilt angle \(\theta\) in the direction of the diagonal of the pixels, in each direction, we consider a tilt angle of \(\theta'=\arctan\left(\tan\left(\theta\right)/\sqrt{2}\right)\) and an incident angle of \(\alpha'=\arctan\left(\tan\left(\alpha\right)/\sqrt{2}\right)\).

Ideally, we want to have most of the energy in a central order that corresponds to the optical axis of our system, i.e. that matches the reflection angle. That means that the incident and reflection angles \(\alpha'\) and \(\beta'\) have to satisfy the grating equation:

$$\sin\left(\alpha'\right)+\sin\left(\beta'\right)=\frac{m\lambda}{d}$$

with

$$\beta' = 2\theta'-\alpha'$$

In the general case we can calculate the value :

$$m = \frac{2d}{\lambda}\left(\sin(\alpha')+\sin(\beta')\right)$$

If \(m\) is close to an integer, we are at the blazing condition as in the upper part of Figure 2. If \(m\) is close to an integer plus 0.5, we are in the situation of the bottom part of Figure 2.

To better quantify if we are close to the blazing condition, we can estimate \(\mu = m \,\%\, 1 -0.5\). It is equal to 0.5 at the blazing condition and to 0 in the opposite case. I show in Figure 2 \(\mu\) for \(d = 10.8\) and \(\lambda=633nm\) as a function of the incident angle \(\alpha\).

 

d108l633

d76l633

 

Figure 2. Representation of the blazing criterion as a function of the incident angle for \(\lambda = 633nm\) and for a DMD pith of \(7.6 \mu m\) (upper figure) and \(10.8 \mu m\) (bottom figure). Red and green lines correspond to the classical situations with  \(\alpha = \theta\), the so-called (Littrow configuration) \(\alpha = 0\) or \(2\theta\), where either the incident or reflected beam is oriented toward the normal of the DMD plane.

For a given wavelength and a given DMD, so with a fixed pixel pitch, it is possible to retrieve the blazing configuration by tuning the incident angle. However, it may require an inconveniently large angle. This is particularly true when the ratio \(\lambda / d\) increases, which increases the diffraction angles. In Figure 3, I plotted \(\mu\) as a function of \(\alpha\) for \(d = 7.6 \mu m\) and \(\lambda = 1.55 \mu m\). We see that the number of oscillations of \(\mu\) is reduced and since we are close to the worst case, we need to set a very high incident angle to achieve the blazing condition, which is experimentally inconvenient.

 d108l633

Figure 3. Representation of the blazing criterion as a function of the incident angle for \(d = 7.6 \mu m\) and \(\lambda = 1.55 \mu m\).

2D simulations

To take a look at the diffraction figure of the DMD, we represent the 2D shape of the pixel array. Two neighboring pixels have a phase shift of  \(\frac{2\pi}{\lambda}d\left[\sin(\alpha')+\sin(\beta')\right]\). 

 

d108l633d76l633

Figure 4. Real part of the field contributions of the pixels of the DMD for \(\lambda = 632 nm\) and \(d = 10.8 \mu m\) (left) and \(d = 7.6 \mu m\) (right). For \(d = 10.8 \mu m\), we are close to the blazing condition and the phase of the pixel contributions is almost flat.

We then display the 2D Fourier transform. To better see the diffraction order, the square root of the intensity is plotted. The diffraction patterns for the configurations in study are displayed in Figure 5 and Figure 6.

d108l633

Figure 5. Diffraction pattern of an "all-on" DMD array for \(\lambda = 632 nm\) and \(d = 10.8 \mu m\). To better see the higher orders, I represented the square root of the intensity. The yellow cross indicates the angle of the optical axis.

d76l633

Figure 6. Diffraction pattern of an "all-on" DMD array for \(\lambda = 632 nm\) and \(d = 7.6 \mu m\). To better see the higher orders, I represented the square root of the intensity. The yellow cross indicates the angle of the optical axis.

 The full IPython code is available here: blazing_angle_DMD.ipynb

Submit to FacebookSubmit to Google BookmarksSubmit to TwitterSubmit to LinkedIn

Comments   

 
#8 Tim Hu 2019-12-10 08:20
Hello Sebastien,

Thank you for your helpful post.

The formula β'=2θ'-α' is based on the normal of the flat surface not +/-12 degree surface. Let's suppose the incident angle is 12 degree related to the normal of the flat surface. Then the reflection angle is 12 degree according to above formula. However, incident and reflect light is on the same side of the normal of the flat surface at this time. And the reflection angle should be minus 12 degree. I think that the correct formula should be β'=α'-2θ'. How do you think about it?

Sure, the value is correct if using your formula. I don't whether it will influence the simulation result.

Thank you in advance.

Tim Hu
Quote
 
 
#7 Sébastien Popoff 2019-07-19 11:43
Hi Qiuliang,

Quoting Qiuliang:
Hi Sébastien!
Since you use sqrt(2) to calibrate the incident angle and tilt angle. Therefore, the pixel pitch in the formula is different now. What does the pixel pitch d in your formula refer? distance of square of distance of diagonal line?


d is the distance between pixels (the pitch) and the sqrt(2) come from the fact that the angle of rotation of the mirrors is at 45 degrees compares to the axis of the pixels.

Quoting Qiuliang:
Hi Sébastien!
What's more. In experiment I will rotate the DMD board with 45 degrees in order that the projective path is parallel to the table. It seems that in this situation, the incident and tilt angle are just original one.


If you rotate the system by 45 degrees, you will have the same images as I have but rotated by 45 degrees. That is all.

You can still have an incident angle different from the tilt angle, you choose your illumination the way you want.

Best,

Sebastien
Quote
 
 
#6 Qiuliang 2019-07-19 03:15
Hi Sébastien!

Great post! Thanks for detailed explanation! I have a question.

Since you use sqrt(2) to calibrate the incident angle and tilt angle. Therefore, the pixel pitch in the formula is different now. What does the pixel pitch d in your formula refer? distance of square of distance of diagonal line?

What's more. In experiment I will rotate the DMD board with 45 degrees in order that the projective path is parallel to the table. It seems that in this situation, the incident and tilt angle are just original one.
Quote
 
 
#5 Sébastien Popoff 2018-10-25 16:47
Quoting Emmanuel:

- in the general case of the m expression, where does the 2 come from? Is it a typo?

It seems to be a typo...
Quoting Emmanuel:

- in the computation of tilt angle, I am trying to understand if every DMD model should have a sqrt(2) or if it depends on the configuration (e.g. DLP3000 from TI vs DLP2010NIR)

As far as I know, all the DMDs have the rotation axis in the diagonal of the pixels, hence the sqrt(2).
Quoting Emmanuel:

- what is the impact of the gap between mirrors? any thoughts on how/where to find this data?

I think it just limits the diffraction efficiency, as it reduces the amount of energy that can be sent in the order that you use for the modulation. Companies usually provide the filling fraction, from which you can calculate the gap between the pixels.

Best,

Sebastien
Quote
 
 
#4 Emmanuel 2018-01-30 08:51
Hi Sébastien!
Thank you very much for the detailed post. I actually came across the same problem with my DMD setup, and obtained almost exactly the worst case (4 orders equivalent in intensity).
A few questions for you:
- in the general case of the m expression, where does the 2 come from? Is it a typo?
- in the computation of tilt angle, I am trying to understand if every DMD model should have a sqrt(2) or if it depends on the configuration (e.g. DLP3000 from TI vs DLP2010NIR)
- what is the impact of the gap between mirrors? any thoughts on how/where to find this data?

Thanks again for the article and the IPython Notebook!

Emmanuel
Quote
 
 
#3 Vincent 2017-12-11 13:09
Perfect, thks for the prompt response.
Quote
 
 
#2 Sébastien Popoff 2017-12-11 11:25
Hi Vincent,

My bad, the link disappeared when I recently updated the file.
It is back now.

Best,

Sebastien
Quote
 
 
#1 Vincent 2017-12-11 10:44
Great post! Really clear on a subject that is not that easy to explain.

I couldn't find where to get the IPython Notebook you mentioned.

Vincent
Quote
 

Additional information