# Steering Mirror System with Closed-Loop Feedback for Free-Space Optical Communication Terminals
## 4 Optical Test  
To create a realistic test environment for the closed-loop actuator, a prototype slow steering mirror was constructed, with a rendering of the set-up shown in Figure 5. The mirror is flat and was machined using single-point diamond turning. A custom kinematic mount was designed to steer the mirror, employing a pair of these stick-slip actuators and a spherical ball joint to facilitate movement. The actuators are positioned 82 mm horizontally from the pivot point, and 30 mm vertically on either side of the horizontal pivot plane. The mirror is tensioned against each actuator by two extension springs.  
Figure 4: (**a**) Image of diamond-turned optical encoder track, (**b**) actuator position plotted against encoder step count for 15 successive movements. The inset shows a magnified view of recorded actuator positions.  
Figure 5: Rendering of the experimental optical test set-up to measure pointing repeatability and accuracy of mirror assembly.  
For optical measurements of the mirror's movement, a simple set-up using a 658 nm laser diode and a DSLR camera was devised. The laser diode was positioned as close to the bore axis of the camera sensor as possible, to prevent off-axis effects. The camera was set up perpendicular to the nominal position of the mirror, and the laser was directed to land on the center of the camera sensor after reflecting off of the mirror.  
The camera sensor was positioned at a distance of 280 mm from the surface of the steering mirror. The sensor has a pixel pitch of 6.41 \(\upmu\)m, corresponding to a resolution of 11 \(\upmu\)rad of mechanical angular movement of the mirror.  
The camera and both encoders were connected to two Arduino Uno R4s (Arduino, Turin, Italy) and linked to the ThorLabs motor controller using Python (Ver 3.10.9). The mirror was then commanded to repeatedly move through a range of positions, addressing four extreme positions and a central one, with an image recorded at each point. The centroids of the laser spot were calculated for each image using a center-of-mass method and is plotted in Figure 6 [18]. Taking the mean of the five positions, the maximum spread of the spots on the camera sensor was found to be 4.2 pixels, with a standard deviation of 1.1 pixels. This corresponds to a maximum spread of 45 \(\upmu\)rad, or 3.9 \(\upmu\)m at the actuator tip. The standard deviation of the actuator position was calculated to be 1.0 \(\upmu\)m. The horizontal angular slew rate of the mirror was measured as to be 1.05 mrad/s, with a vertical slew rate of 1.92 mrad/s.  
The repeatability along the long axis of the mirror is limited by the delay in synchronizing both motors and actuators. Although the encoder steps are counted using hardware interrupts on the two Arduinos (one for each actuator), the step counts are read by the controlling computer via polling of the serial connection, which can result in a one-step delay at high motor speeds. The Arduinos act as converters of the raw quadrature signal into a count number read by the laptop, where the decision is taken to continue the counting or to stop the motor if the number of the desired count has been achieved. This delay could be reduced by communicating to the motor controller from the Arduinos directly.  
The overall precision of the mirror mount can also be adjusted by optimizing the positions of the actuators. Moving the actuators further from the pivot point will increase angular resolution at the expense of decreasing the angular speed.  
Figure 6: (**Left**) Repeatability testing of optical encoder feedback on mirror position, with the mirror being driven between 5 points (color coded) in a continuous loop. Arrows show the scanning direction. (**Right**) Close-up view of one of the rightmost point