Python-Microscope: High performance control of arbitrarily complex and scalable bespoke microscopes
Pinto DMS., Phillips MA., Hall N., Mateos–Langerak J., Stoychev D., Pinto TS., Booth MJ., Davis I., Dobbie IM.
<jats:title>Abstract</jats:title><jats:p>Bespoke microscopes often require control of multiple hardware devices and precise hardware coordination. It is also desirable to have a control solution that is scalable to more complex systems and translatable between components from different manufacturers. Here we report Python-Microscope, a free and open source Python library for high performance control of arbitrarily complex and scalable bespoke microscopes. Python-Microscope offers an elegant pythonic software platform to control microscopes, abstracting differences between physical devices by providing a defined interface for different device types. These include cameras, filter wheels, light sources, deformable mirrors, and stages. Concrete implementations are provided for a range of specific hardware and a framework is in place for further expansion. Python-Microscope supports the distribution of devices over multiple computers while maintaining synchronisation via highly precise hardware triggers. We discuss the architecture choices of Python-Microscope that overcome the performance problems often raised against Python and demonstrate the different use cases that drove its design: its integration in user facing projects, namely in the Microscope-Cockpit project; in controlling complex microscopes at high speed while using the Python programming language; and as a microscope simulation tool for software development.</jats:p>