journal article·2025-07-08

PyOpticon: An Open-Source Python Package for Laboratory Control, Automation, and Visualization

Richard Randall, Arun Majumdar

Chemistry of Materials· Volume 37· Issue 13
Publisher page

Abstract

In modern materials science and chemistry laboratories, there are many opportunities for control, data acquisition, and automation software to enhance the quality and throughput of research. Desirable traits for such software include low cost, easy and speedy implementation, compatibility with existing instruments, and the flexibility to build and modify one’s own control software. In this article, we present PyOpticon, a free and open-source Python package for controlling and acquiring data from benchtop experimental setups. PyOpticon desktop applications, termed “dashboards”, provide graphical interfaces to control different combinations of physical devices, each represented onscreen by a “widget”. We describe PyOpticon’s features with respect to graphical interfaces, remote control of experimental setups, data logging, safety interlocks, and automation capabilities. We highlight the ability to script complex or repetitive experiments using Python code. While existing commercial software tools offer such features, PyOpticon makes them available for free to researchers with only a basic knowledge of Python, who can then adjust and reconfigure their control software without outside help. Detailed online documentation and tutorials are available to support new users. We discuss the package’s structure, offer examples of its implementation, and demonstrate its use in experiments on the photocatalytic total oxidation of dilute methane.
Source: openalex_inverted_index · Quality: baseline

Research context

OpenAlex topics: Scientific Computing and Data Management · Computational Physics and Python Applications · Distributed and Parallel Computing Systems

SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.

Affiliations

Department of Mechanical Engineering

Stanford University

Precourt Institute for Energy, Woods Institute for the Environment, and Doerr School of Sustainability

Funding

National Science Foundation Graduate Research Fellowship Program · Novo Nordisk Fonden

References (27)

Show source-provided references
1. 10.1021/acsenergylett.0c0164410.1021/acsenergylett.0c01644 ↗
2. 10.1016/B978-075065805-8/50002-710.1016/B978-075065805-8/50002-7 ↗
3. 10.1146/annurev-chembioeng-060816-10141110.1146/annurev-chembioeng-060816-101411 ↗
4. 10.1021/acsmedchemlett.7b0016510.1021/acsmedchemlett.7b00165 ↗
5. 10.1038/s44160-022-00231-010.1038/s44160-022-00231-0 ↗
6. 10.1016/B978-0-12-800939-0.00001-210.1016/B978-0-12-800939-0.00001-2 ↗
7. 10.1016/j.jala.2006.07.01210.1016/j.jala.2006.07.012 ↗
8. EPICS About. https://epics.anl.gov/about.php (Accessed 2025-06-10).
9. Innovative SCADA Software for Process Control and Data Management. https://inductiveautomation.com/scada-software/ (Accessed 2025-06-10).
10. SIMATIC WinCC V7/V8. https://www.siemens.com/global/en/products/automation/industry-software/automation-software/scada/simatic-wincc-v7.html (Accessed 2025-06-10).
11. spec: Software for Diffraction. https://www.certif.com/content/spec/ (Accessed 2025-06-10).
12. Grecco, H. E., Masip, M., Jais, P. Lantz: Simple yet Powerful Instrumentation in Python. https://lantz.readthedocs.io/en/0.3/ (Accessed 2025-06-10).
13. Bronger, T., Thalhammer, G. PyVISA: Control your instruments with Python. https://pyvisa.readthedocs.io/en/latest/ (Accessed 2025-06-10).
14. 10.1177/221106821455302210.1177/2211068214553022 ↗
15. 10.1039/D3DD00166K10.1039/D3DD00166K ↗
16. 10.1371/journal.pone.022986210.1371/journal.pone.0229862 ↗
17. Bluesky Data Collection Framework. https://nsls-ii.github.io/bluesky/index.html (Accessed 2025-06-10).
18. About BLISS. https://bliss.gitlab-pages.esrf.fr/bliss/master/ (Accessed 2025-06-10).
19. 10.1109/MCSE.2007.5810.1109/MCSE.2007.58 ↗
20. 10.1016/S0065-2458(03)57005-X10.1016/S0065-2458(03)57005-X ↗
21. 10.1016/j.cej.2025.16070010.1016/j.cej.2025.160700 ↗
22. 10.1126/sciadv.aaz886710.1126/sciadv.aaz8867 ↗
23. Randall, R. PyOpticon 0.2.1. https://pypi.org/project/pyopticon/ (Accessed 2025-06-10).
24. Collins, G. PyModbus - A Python Modbus Stack. https://pymodbus.readthedocs.io/en/latest/ (Accessed 2025-06-10).
25. 10.1088/1748-9326/acf60310.1088/1748-9326/acf603 ↗
26. 10.1098/rsta.2020.045410.1098/rsta.2020.0454 ↗
27. 10.1038/ncomms1227310.1038/ncomms12273 ↗