Motorized Fiber Polarization Controllers
- Polarization Over Full Poincaré Sphere
- Motorized Paddle Rotation from 0° to 170°
- Compatible with Ø900 µm Jacketed Fiber
- Operate Remotely Using Kinesis® Software via USB
The MPC220 controller, loaded with a Ø900 µm jacketed FC/PC patch cable, is mounted to an optical table using the three mounting slots and 1/4"-20 (M6) cap screws.
3-Paddle Controller, Ø18 mm Loops
2-Paddle Controller, Ø18 mm Loops
- Convert Between Linear, Circular, and Elliptical Polarization
- Motorized Paddle Rotation with 0.12° Minimum Step Size
- Two- or Three-Paddle Versions Available with 18 mm Outer Loop Diameter
- Driven with Kinesis® Software Package
- USB Powered (USB A to Micro USB Type B Cable Provided)
- Compatible with Single Mode Ø900 µm Jacketed Fibers
- Compact Footprint
Thorlabs' Motorized Fiber Polarization Controllers are paddle-based polarization controllers that use stress-induced birefringence within a fiber to dynamically control the output polarization state of light. Their compact size and integrated DC servo motors allow these controllers to be easily incorporated into larger, more complex systems. Each individual paddle can be rotated 170° with a minimum step size of 0.12°, providing full coverage of the Poincaré sphere. These controllers, made from Black Acrylonitrile Butadiene Styrene (ABS), are empty and designed to be used with a single mode fiber or fiber patch cable with a Ø900 µm jacket.
The motorized polarization controllers are available in either two- or three-paddle configurations, with each paddle accommodating up to four 18 mm diameter fiber loops. Stress-induced birefringence is created by bending the fiber; this creates two principle axes in the fiber, one perpendicular to the plane of the loop (slow axis) and the other in the plane of the loop (fast axis). As a result, wrapping the fiber around the fiber spools creates independent wave plates that alter the state of polarization, while rotating the paddles produces a change in polarization by adjusting the fast axis of the fiber with respect to the transmitted polarization. Please see the Operations tab for more information on the operating principle, as well as the recommended fiber types and number of loops needed to achieve specific retardation behaviors.
Click to Enlarge
Paddle numbers are etched into the base plate at two locations and in two orientations.
Click to Enlarge
A mounted MPC220 controller is loaded with a Ø900 µm jacketed FC/PC patch cable. The connected USB cable is used for power and communication with the Kinesis software.
Fiber Organization and Mounting
To securely hold the fiber in place, clamps are included before and after the paddles. These can be removed for easy fiber loading and unloading by loosening the M2.5 screws with a 2 mm hex key or balldriver. The controller body, as well as the fiber spools, also features guides to aid in fiber organization. These fiber guides along the base plate are visible in the application image shown to the right.
Both the two- and three-paddle motorized polarization controllers include a base plate featuring clearance slots that accept 1/4"-20 or M6 cap screws. This allows the controller to be mounted to either 1" or 25 mm pitch optical tables and breadboards at any orientation. The paddles are numbered at their base in two locations to help identify the paddles, as shown in the image to the right.
Paddle Rotation with Kinesis Software
The motorized polarization controllers are powered via USB, which connects to a control PC or a powered hub. A USB A to Micro USB Type B cable is included with each controller.
Paddle rotation is driven by Thorlabs' user-friendly Kinesis software package. For 'out of the box' operation, paddle movements such as homing, jogging, and absolute positioning can be manually controlled through a graphical user interface (GUI) panel. To control the polarization paddles without user intervention, the Kinesis package also includes a set of programming interfaces, which allow move sequences to be programmed in several development languages. For more information on the Kinesis software or creating custom applications, please see the Kinesis Software and Kinesis Tutorial tabs, respectively.
|Fiber Polarization Control Selection Guide|
|Polarization Controllers||Linear Polarizers|
|Motorized Fiber Polarization Controllers||Manual Paddle Fiber Polarization Controllers||In-Line Manual Fiber Polarization Controller||Free-Space FiberBench||Faraday Mirrors||In-Line Fiber Polarizers||Polarizing Fiber|
|Number of Paddles||2||3|
|Loop Diameter (Ø900 µm Jacketed Fiber)||18 mm|
|Paddle Rotation||0 to 170°|
|Compatible Fiber||Ø900 µm Jacket Single Mode Fibers and Patch Cables|
|Maximum Number of Loops per Paddle||4|
|Minimum Fiber Length||75 cm for 1 Loop per Paddle
110 cm for 4 Loops per Paddle
|95 cm for 1 Loop per Paddle
155 cm for 4 Loops per Paddle
|Minimum Step Size||0.12°|
|Maximum Rotation Speed||400°/sec|
|Unit Dimensions (L x W x H)||85.2 mm x 115.7 mm x 61.0 mm
(3.35" x 4.55" x 2.40")
|143.2 mm x 101.4 mm x 61.0 mm
(5.64" x 3.99" x 2.40")
|Footprint for Full Paddle Rotation (L x W x H)||90.1 mm x 115.7 mm x 62.0 mm
(3.55" x 3.99" x 2.44")
|145.3 mm x 101.4 mm x 62.0 mm
(5.72" x 3.99" x 2.44")
|Operating Temperature||-20° to +60°C|
|Construction Material (Controller Body)||Black Acrylonitrile Butadiene Styrene (ABS)|
|Motor Type||DC Motor|
|Motor Drive Voltage||5 V|
|CPU Connection||Micro USB Type B (Cable Included)|
These motorized polarization controllers utilize stress-induced birefringence to alter the polarization state of light traveling through a single mode fiber. By looping the fiber around each spool, two or three independent fractional wave plates (fiber retarders) are created. The amount of birefringence induced in the fiber is a function of the fiber cladding diameter, the spool diameter (fixed), the number of fiber loops per spool, and the wavelength of the light. (NOTE: the desired birefringence is induced by the loop in the fiber, not by the twisting of the fiber paddles). The fast axis of the fiber, a principle axis of birefringence generated by bending the fiber, is in the plane of the spool; rotating the paddles adjusts the orientation of this axis with respect to the transmitted polarization vector. To transform an arbitrary input polarization state into a fixed and defined output polarization state, the fiber should ideally be looped to create a quarter-wave plate, a half-wave plate, and a quarter-wave plate for the three paddle controller or two quarter-wave plates for the two paddle controller. Because a three-paddle configuration decouples the two quarter-wave plates, more polarization states can be achieved compared to a two-paddle configuration. The retardance of each paddle may be estimated from the following equation:
Here, φ is the retardance, a is a constant (0.133 for silica fiber), N is the number of loops, d is the fiber cladding diameter, λ is the wavelength, and D is the loop diameter. While this equation is for bare fiber, the solution for Ø900 µm jacketed fiber will be similar enough that the results for this equation can still be used (i.e., the solution will not vary by a complete loop N for Ø900 µm jacketed fiber).
Three-Paddle Polarization Controllers
A three-paddle polarization controller combines a quarter-wave plate, half-wave plate, and quarter-wave plate in series to transform an arbitrary polarization state into another polarization state. The first quarter-wave plate would transform the input polarization state into a linear polarization state. The half-wave plate would rotate the linear polarization state, and the last quarter-wave plate would transform the linear state into an a fixed and defined output polarization state. Therefore, adjusting each of the three paddles (fiber retarders) in the MPC320 polarization controller allows complete control of the output polarization state over a broad range of wavelengths from 300 to 2100 nm.
Two-Paddle Polarization Controller
The miniature two-paddle polarization controllers use two quarter-wave plates to transform an arbitrary polarization state into another polarization state. In the two-paddle configuration, however, the control of the polarization will be coupled between the two paddles and therefore it may be difficult to achieve a specific polarization state. The design of the MPC220 polarization controller allows complete control of the output polarization state over a broad range of wavelengths from 300 to 2100 nm.
Recommended Number of Loops
The retardation per paddle is a function of loop number and the cladding diameter of the fiber if the loop diameter is fixed. Figures 1 and 2 show the calculated retardation per paddle for Ø80 µm and Ø125 µm clad fiber, respectively. Due to their small size, the MPC220 and MPC320 motorized polarization controllers cannot accomodate more than four loops, each with an 18 mm diameter, per paddle.
Click to Enlarge
Figure 2: Plot of the retardance per paddle for bare silica fiber with Ø125 µm cladding on an 18 mm loop diameter.
Click to Enlarge
Figure 1: Plot of the retardance per paddle for bare silica fiber with Ø80 µm cladding
on an 18 mm loop diameter.
Recommendations for the number of loops and fibers for several wavelengths are given in the following table. The number of loops, calculated from the equation above or determined from Figure 2, are the values that best approximate quarter-wave and half-wave retardation:
|Wavelength||# of Loops for ~1/4λ Retardationa||# of Loops for ~1/2λ Retardation||Recommended Fiber
(Ø125 µm Cladding)
|480 nm||3 Loops||2 Loops||460HP or SM450|
|630 nm||3 Loops||1 Loops||630HP or S630-HP|
|850 nm||3 Loops||1 Loops||780HP or SM800-5.6-125|
|980 nm||2 Loops||4 Loops||980HP or HI1060-J9|
|1064 nm||2 Loops||4 Loops||980HP or HI1060-J9|
|1310 nm||3 Loops||2 Loops||SMF-28-J9 or CCC1310-J9|
Click to Enlarge
Kinesis GUI Screen for the Motorized Fiber Polarization Controllers
Thorlabs Kinesis® software package can be used to control devices in the Kinesis or APT family, which covers a wide range of motion controllers ranging from small, low-powered, single-channel drivers (such as the K-Cubes™ and T-Cubes™) to high-power, multi-channel, modular 19" rack nanopositioning systems (the APT Rack System).
The Kinesis Software features .NET controls which can be used by 3rd party developers working in the latest C#, Visual Basic, LabVIEW®, or any .NET compatible languages to create custom applications. Low-level DLL libraries are included for applications not expected to use the .NET framework. A Central Sequence Manager supports integration and synchronization of all Thorlabs motion control hardware.
The software packages allow two methods of usage: graphical user interface (GUI) utilities for direct interaction with and control of the controllers 'out of the box', and a set of programming interfaces that allow custom-integrated positioning and alignment solutions to be easily programmed in the development language of choice.
Thorlabs' Kinesis® software features new .NET controls which can be used by third-party developers working in the latest C#, Visual Basic, LabVIEW™, or any .NET compatible languages to create custom applications.
This programming language is designed to allow multiple programming paradigms, or languages, to be used, thus allowing for complex problems to be solved in an easy or efficient manner. It encompasses typing, imperative, declarative, functional, generic, object-oriented, and component-oriented programming. By providing functionality with this common software platform, Thorlabs has ensured that users can easily mix and match any of the Kinesis controllers in a single application, while only having to learn a single set of software tools. In this way, it is perfectly feasible to combine any of the controllers from the low-powered, single-axis to the high-powered, multi-axis systems and control all from a single, PC-based unified software interface.
The Kinesis System Software allows two methods of usage: graphical user interface (GUI) utilities for direct interaction and control of the controllers 'out of the box', and a set of programming interfaces that allow custom-integrated positioning and alignment solutions to be easily programmed in the development language of choice.
For a collection of example projects that can be compiled and run to demonstrate the different ways in which developers can build on the Kinesis motion control libraries, click on the links below. Please note that a separate integrated development environment (IDE) (e.g., Microsoft Visual Studio) will be required to execute the Quick Start examples. The C# example projects can be executed using the included .NET controls in the Kinesis software package (see the Kinesis Software tab for details).
|Click Here for the Kinesis with C# Quick Start Guide
Click Here for C# Example Projects
Click Here for Quick Start Device Control Examples
LabVIEW can be used to communicate with any Kinesis- or APT-based controller via .NET controls. In LabVIEW, you build a user interface, known as a front panel, with a set of tools and objects and then add code using graphical representations of functions to control the front panel objects. The LabVIEW tutorial, provided below, provides some information on using the .NET controls to create control GUIs for Kinesis- and APT-driven devices within LabVIEW. It includes an overview with basic information about using controllers in LabVIEW and explains the setup procedure that needs to be completed before using a LabVIEW GUI to operate a device.
|Click Here to View the LabVIEW Guide
Click Here to View the Kinesis with LabVIEW Overview Page
Click for Details
Figure 2: Poincaré sphere showing the polarization rotation from a three paddle polarization controller.
Click to Enlarge
Figure 1: Forces produced by the fiber controller paddle
Thorlabs Lab Facts: Using Fiber Paddles to Manipulate Polarization
We present laboratory measurements of the influence on the output polarization state from a fiber due to rotation and twist forces from the fiber polarization controller (FPC). This controller utilizes the effects of stress-induced birefringence to create changes in the polarization of light traveling through a fiber under stress. The stress can be caused either through twisting or rotating , as shown in Figure 1. It was found that by using the appropriate number of loops on each paddle that the stress-induced birefringence can be adjusted continuously. This then allows for any arbitrary input polarization state to be rotated into any desired output polarization state. We detail the procedures necessary to achieve a desired output polarization, and plot the change in the polarization on a Poincaré sphere to illustrate the steps necessary in reaching a desired polarization state.
For our experiment, we used the S1FC1310 Fabry-Perot Benchtop Laser (1310 nm) as the light source and couple it into a Ø900 µm tight-buffer fiber. The fiber was mounted through a FPC030 Fiber Polarization Controller, and the output was collimated into a free-space beam with a fiber collimator. From here the beam was measured, either directly by a polarimeter or through an analyzer assembly consisting of a λ/4 wave plate, a linear polarizer, and a power meter.
Figure 2 summarizes the measured results for manipulating the polarization of light in a fiber as a function of rotation and twist forces and is shown on the Poincaré sphere. The colored lines represent one of the three paddles of the FPC030 and correspond to the colored numbers of Figure 1. To produce quarter-wave plate behavior, the fiber needed to be looped around a paddle two times, and for half-wave plate behavior it was 3 times. For the results presented in Figure 2, we used the FPC030 FPC in a 2-3-2 loop configuration. As shown in Figure 2, starting at any arbitrary polarization state, it is possible to achieve any desired polarization state through rotating each paddle through a number of iterations. This manipulation of the polarization by the FPC does not produce intrinsic loss nor back reflections; instead stress-induced birefringence is utilized as a mechanism for rotating the polarization of light in fiber. Data is presented for each of the paddles of the FPC and the polarization changes due to these are mapped out on Poincaré spheres. For details on the experimental setup employed and the results obtained, please click here.
 R. Ulrich, A. Simon, “Polarization optics of twisted single-mode fibers” Appl. Opt. 18, 2241-2251 (1979).
user  (posted 2023-01-21 17:46:14.28)
If circular polarization is obtained using MPC320, will the polarization state remain unchanged throughout the fiber? What happens to the polarization state when the light is collimated?
DJayasuriya  (posted 2023-02-27 09:45:52.0)
Thank you for your inquiry. After achieving the desired polarisation state, if the paddles are unchanged, the polarisation state should remain unchanged. There is no relationship between polarisation state and collimation, theoretically collimation optics should not change the polarisation change, however depending on the substrate and quality of the optic, if there is any optical birefringence this would affect the polarisation state. Hope this helps. if you have any questions please do not hesitate reach out to your local tech support team.
user  (posted 2023-01-04 16:14:33.23)
Hi, I recently purchased a MPC320 and have been running into some issues with python control via the included DLLs. Is there a short example python script that could be provided to help with this?
JReeder  (posted 2023-01-05 09:54:39.0)
Thank you for your enquiry. I have reached out to you directly to provide an example Python script for use with the MPC320 and to help troubleshoot any issues you are encountering.
user  (posted 2022-11-22 15:39:35.55)
Greetings, I have the MPC 320 and I'm using the P3-SMF28Y-FC-2 cable for 1550 nm as recommended. I want the three paddles to work as QWP-HWP-QWP. So I configured the device such that the first and last paddles have 1-loop while the middle paddle has 2-loops, should this configuration give me the QWP-HWP-QWP functions? Because I'm not getting the desired response for some reason! For example when I have a polarized input and apply 45 degree rotation in the middle paddle I don't observe the output state at an orthogonal state with respect to the input?
Haizhong Weng  (posted 2022-11-03 10:47:02.98)
Dear Sir or Madam, We have bought this motorized polarization controller recently. However, when we wrap the fiber patch cable with a Ø900 µm jacket (that is P3-1064Y-FC-5 from Thorlabs). It seems the insertion loss of the polarization controller is very large to 5 dB. Do you have any idea to reduce the loss? Best wishes Hai-ZHong
Daniel Munoz  (posted 2022-11-02 11:25:27.223)
Good morning, After installing Kenesis following the instructions, I connected the polarization controller MPC320 but this is not detected and paddles are not moving to Home position. Should I update any driver? How can I check the MPC is working and current is being applied? Thank you. Daniel M.
DJayasuriya  (posted 2022-11-03 09:58:36.0)
Thank you for your inquiry. We have reached out directly to trouble shoot your issue.
user  (posted 2022-10-27 13:35:12.487)
Hi, I'm having trouble trying to control this device with python and the C DLL from kinesis. Do you know where I could fin an example of code using this method ?
cwright  (posted 2022-10-28 05:34:05.0)
Response from Charles at Thorlabs: Thank you for your query. A member of technical support will reach out to you to help with this.
user  (posted 2022-08-12 10:30:27.877)
Hi, I was wondering if there was an easy way to control the MPC220 using python.
cwright  (posted 2022-08-15 10:56:36.0)
Response from Charles at Thorlabs: Thank you for your query. The MPC can be programmed using Python with our Kinesis C DLLs and ctypes. I will send you a short example.
Jianing Cao  (posted 2022-07-20 14:34:05.32)
cwright  (posted 2022-07-20 08:31:01.0)
Response from Charles at Thorlabs: Thank you for contacting us. This device can only be controlled over the USB port using either our software or the serial commands documented in the serial command protocol: https://www.thorlabs.com/Software/Motion%20Control/APT_Communications_Protocol.pdf.
RuiMing Chua  (posted 2022-05-20 22:00:01.95)
Hi, the motorized fiber polarization controller works well on Kinesis. It is compact and lightweight which is great too, though I'm curious why the bend radius of the fiber is kept so small, which could induce greater loss through the fiber. I would love to be able to control it myself on Python but so far I have not had any luck with that. If you could point me in the right direction or provide the required resources to do so, I would very much appreciate it. Thank you!
DJayasuriya  (posted 2022-05-23 07:26:45.0)
Thank you for your inquiry. We will get in touch with you directly to help with your request.
Mengzhe Lian  (posted 2022-04-09 19:52:41.423)
Hi, I would like to connect the MPC320 to a PC using MATLAB codes. Could you please give me some example codes? I can't find any explanations or sample MATLAB codes on websites. I really looking forward to your responses. Thank you.
DJayasuriya  (posted 2022-04-11 10:34:03.0)
Thank you for your inquiry. We have got in touch with you directly to help.
José de-Oliva-Rubio  (posted 2021-11-24 16:01:42.91)
Dear Sir or Madam, We have recently purchased two MPC320, which we have loaded with respective P3-SMF28Y-FC-2 patch cables, as recommended in the controller web page. We intend to use the MPC320 to substitute two bulkier and more cumbersome FPC562. First time I have used the MPC320s I have found to my surprise that the total insertion loss for each one is more or less 4 dB (@1550 nm), which render them useless for my experiment, for I can not afford to loose more than 3/4 of the excitation laser even before it hits the DUT. I have found data of the bend losses of the fiber in the Corning web page, which given the number of loops of each paddle are consistent with my measurements. So, my conclusion is that this level of losses in the controllers is normal given the radius of the paddles (which would have been nice to be warned about before purchasing the controllers). My question is if I could load the paddles with patches of CCC1310-J9 - 1260 - 1625 nm Low Bend Loss Fiber with Ø900 µm Jacket, Ø125 µm Cladding, which bend losses are much lower than those of the SMF28 Ultra patches. Also, if I may make you a suggestion, you should include in the specifications of the controllers data about the total insertion losses once they are loaded with the suggested fiber patches, in order to save your customers from nasty surprises. Best regards, José de-Oliva-Rubio Photonics & RF Research Lab (University of Málaga) Dpto. Ingeniería de Comunicaciones ETS Ingeniería de Telecomunicación Universidad de Málaga Tel: +34952137183 Campus de Teatinos Bulevar Louis Pasteur nº 35 E29010, Málaga BIONAND. Andalusian Centre for Nanomedicine and Biotechnology Centro Andaluz de Nanomedicina y Biotecnología. Parque Tecnológico de Andalucía, C/ Severo Ochoa, 35 E29590 Campanillas, Málaga. Spain
cwright  (posted 2021-12-06 10:38:25.0)
Response from Charles at Thorlabs: Thank you for your feedback. I'm sorry to hear this particular fibre has not worked for you. I will pass this feedbacl on to our internal forums for our teams to discuss and consider whether adding expected losses for various fibre types can be added. In regards to the CCC1310-J9 fibre, this is possible to use. It has the same cladding diameter as the SMF28 Ultra and is a recommended fibre for these controllers: https://www.thorlabs.de/newgrouppage9.cfm?objectgroup_id=12896&tabname=Operation
Levi Hogan  (posted 2021-11-02 16:26:04.29)
I'm getting the following error when trying to insert the "PolarizerControl" control (under the assembly Thorlabs.MotionControl.Controls) in a .NET Container in LabVIEW 2019 (32-bit). Starting partway through the error text: "System.IO.FileNotFoundException: Could not load file or assembly 'Thorlabs.MotionControl.PolarizerCLI.dll' or one of its dependencies. The specified module could not be found." I also tried directly selecting as.NET control Thorlabs.MotionControl.PolarizerCLI and .PolarizerUI and neither gives any controls to load. The .Polarizer dll gave a different error. I was hoping there would be an example VI in the Kinesis examples download but it looks like there isn't one named for polarization control. The Kinesis GUI itself is able to control the paddles just fine, but I need LabVIEW control for my custom applications. Thank you for your assistance!
DJayasuriya  (posted 2021-11-09 10:19:35.0)
Thank you for your inquiery. We will get in touch with you directly to resolve your issue.
Joonam Park  (posted 2021-11-01 00:20:21.977)
I need SCPI commands set for the MPC220.
cwright  (posted 2021-11-02 09:26:24.0)
Response from Charles at Thorlabs: Thank you for your query. The device can be controlled using the serial commands listed in the APT command protocol documentation: https://www.thorlabs.com/Software/Motion%20Control/APT_Communications_Protocol.pdf
li jin  (posted 2021-10-14 14:24:37.553)
Can MPC320 be driven by FPGA？
cwright  (posted 2021-10-15 04:40:04.0)
Response from Charles at Thorlabs: Thank you for your query. If your controller can communicate using serial commands with the following parameters (115200 bits/sec, 8 data bits, 1 stop bit, No parity. RTS/CTS Handshake) then you can use the commands in the APT command protocol to communicate with the device: https://www.thorlabs.com/Software/Motion%20Control/APT_Communications_Protocol.pdf
Tangla Kongnyuy  (posted 2021-06-17 16:38:46.447)
Hello, Is there a minimum number of loops required? We have both MPC320 and MPC220 We are working at 1550nm wavelength and also at 900nm wavelength.
cdolbashian  (posted 2021-07-12 09:35:55.0)
Thank you for contacting Thorlabs with your inquiry. All information regarding polarization data, loops, and wavelength-dependent performance can be found in the product manual where we have explicit test data and setup instructions. I have contacted you directly to discuss your specific application.
user  (posted 2020-08-26 11:53:29.243)
I am trying to write my own Matlab code for controlling the MPC320. When I try to add .NET library I get the following error: 'Could not load file or assembly "file:///C:\Program Files\Thorlabs\Kinesis\Thorlabs.MotionControl.Polarizer.dll" or one of its dependencies. The module was expected to contain an assembly manifest. Source: mscorlib' At the same time, other devices, for example K-Cube, can be easily accessed by using .NET lib and I don't get any errors. What could be the problem?
cwright  (posted 2020-08-27 10:53:35.0)
Response from Charles at Thorlabs: Thank you for your query. From the error you are getting it appears you are trying to call the native C dll instead of the .NET dll. Only .NET assemblies can be loaded using the “Net.addAssembly” command in MATLAB. It is the ThorLabs.MotionControl.PolarizerCLI.dll which you require. We will reach out to you by email to see if you need any additional support.
Chao Li  (posted 2019-11-20 07:27:51.21)
How to realize custom control of MPC320? I did not see the .NET controller after installing the Kinesis® software.
AManickavasagam  (posted 2019-12-02 07:22:32.0)
Response from Arunthathi at Thorlabs: Thanks for your query. I have contacted you directly for further information which will help troubleshoot.