The Arduino microcontroller platform is great for controlling various hardware items such as valves, pumps, pressure regulators, mass flow controllers, and also allows the measurements of signals. However, if interactive control of an experiment by the user is required, a common situation in the laboratory, this is not readily possible in the Arduino environment as it provides only a simple one-line terminal interface on the attached personal computer.
Instrumentino is a graphical user interface (GUI) for the Arduino developed by us, which allows setting of parameters as well as monitoring of signals in a panel displayed on the computer. The GUI was written in Python, a programming language which is easy to learn and has powerful libraries for complex tasks such as displaying time dependent signals. As any Python module, Instrumentino runs on all major platforms (Windows, Mac OS X and Linux).
Instrumentino also allows the integration of devices which are not controlled by an Arduino, but are attached directly to the computer. For this, it is necessary that an API (application programming interface) is provided by the device manufacturer. This API is then integrated into the Instrumentino framework.
While there are commercial solutions for controlling experimental systems, they tend to be expensive, and are sometimes hard to master.
With that in mind, we designed Instrumentino to minimize the programming effort involved in setting up a new system. This is achieved via a system description file, written in Python, which includes:
- A definition of hardware components in the system
- A definition of meaningful actions for the system to perform.
Using the program, the actions defined can be used to create ‘methods’, which are experimental routines designed to achieve a specific task. These methods can be saved in files and be run automatically, even in long sequences, without user intervention.
Instrumentino is released free of charge under the GPLv3 open-source license.
The source code for Instrumentino is maintained on GitHub at: https://github.com/yoelk/Instrumentino
Instrumentino was first presented through a publication in the journal Computer Physics Communications (CPC):
Instrumentino: An open-cource modular Python framework for controlling Arduino based experimental instruments.