pyrtc.hardware.bmc_dm

Boston Micromachines (BMC) deformable-mirror adapter.

Drives BMC MEMS mirrors (Multi-DM, Kilo-DM, 2K, 3K, …) through the BMC DM SDK’s Python module bmc on Linux and Windows. Set sdk_path to the directory holding the module if it is not importable already.

The SDK takes one value per actuator in [0, 1] (a fraction of the driver’s range). MEMS mirrors only pull, so pyrtc’s bipolar commands are applied about a bias: value = clip(bias + command_scale * command, 0, 1), with bias 0.5 and command_scale 0.5 by default (commands in [-1, 1] span the full range). Use command_cap to limit the stroke.

The actuator count comes from the SDK. The 2D layout is, in order: layout_file (a boolean .npy map), else BMC’s standard square geometries (a square grid, or a square with its four corners removed, as on the Multi-DM 140 and Kilo-DM 1020), else the smallest centred disk with that many actuators (the 2K/3K circular apertures). Check it against the vendor’s actuator map.

Functions

bmc_actuator_layout(num_actuators)

Return the actuator map of a standard BMC mirror with num_actuators.

Classes

BMCDM(conf)

Wavefront corrector on a Boston Micromachines MEMS deformable mirror.