Create an Account  |   Log In

View All »Matching Part Numbers

Your Shopping Cart is Empty

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

Application Idea

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

Related Items

Please Wait


  • 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.

Paddle Identification Number
Click to Enlarge

Paddle numbers are etched into the base plate at two locations and in two orientations.
Controller Mounting
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 Paddle Fiber Polarization Controllers In-Line Fiber Polarization Controller Free-Space Fiber Bench Polarizing Fiber In-Line Fiber Polarizers Polarizing Fiber
Motorized Paddle 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
Item # MPC220 MPC320
Paddle Specifications
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
Bidirectional Repeatability
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 Specifications
Motor Type DC Motor
Motor Drive Voltage 5 V
CPU Connection Micro USB Type B (Cable Included)

Operating Principle
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:

Polarization Controller 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 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.

FPC030 with 80 micron clad fiber
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.
FPC030 with 125 micron clad fiber
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
  • Recommendations include λ/4 and 3λ/4 retardation.
GUI Panel
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.


Kinesis Version 1.14.24

The Kinesis Software Package, which includes a GUI for control of Thorlabs' Kinesis and APT™ system controllers.

Also Available:

  • Communications Protocol
Software Download

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).

C Sharp Icon Click Here for the Kinesis with C# Quick Start Guide
Click Here for C# Example Projects
Click Here for Quick Start Device Control Examples
C Sharp Icon

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.

Labview Icon Click Here to View the LabVIEW Guide
Click Here to View the Kinesis with LabVIEW Overview Page
Labview Icon
Image Rotation by Prism Angle
Click for Details

Figure 2: Poincaré sphere showing the polarization rotation from a three paddle polarization controller.
Image Rotation by Prism Angle
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 [1], 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.

Lab Facts Complete Summary

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.

[1] R. Ulrich, A. Simon, “Polarization optics of twisted single-mode fibers” Appl. Opt. 18, 2241-2251 (1979).

Posted Comments:
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.

Based on your currency / country selection, your order will ship from Newton, New Jersey  
+1 Qty Docs Part Number - Universal Price Available
MPC220 Support Documentation
MPC220Motorized Fiber Polarization Controller for Ø900 µm Jacket Fiber, 2 Paddles, Ø18 mm
MPC320 Support Documentation
MPC320Motorized Fiber Polarization Controller for Ø900 µm Jacket Fiber, 3 Paddles, Ø18 mm
Log In  |   My Account  |   Contact Us  |   Careers  |   Privacy Policy  |   Home  |   FAQ  |   Site Index
Regional Websites: West Coast US | Europe | Asia | China | Japan
Copyright © 1999-2020 Thorlabs, Inc.
Sales: 1-973-300-3000
Technical Support: 1-973-300-3000

High Quality Thorlabs Logo 1000px:Save this Image