Baecon (/ˈbiːkən/), or Basic Experiment Control, is a Python library for controlling laboratory deivce to perform experiments.
Measurement automation, in its most basic terms, consists of the computer sending a message to a device to change a parameter and/or get the value of that parameter or other parameters. Baecon is structed around the this idea by limiting the methods used to communicate with the devices. A device in Baecon can only a read command or a write command during the measurement procedure. Before or after the measurement procedure devices are free to communicate for preparing and configuring the device.
The simplicity of Baecon is partially accomplished by shifting the heavy lifting to the user to build modules for devices that follow the Baecon communication standards. With users writing their own modules, Baecon isn't limited to any specific communication protocol. We have a few examples of device modules, and we hope to provide more modules we and others user contribute there own.
All the information for the measurement is stored in JSON
parsible configuration
files. A full measurement can be stored as a single file, or as individual
configurations for the scan settings and devices. The default configuration
file type is .toml
, but .yml
and .json
files are also compatible.
Baecon operates with a command line interface or with the GUI made with the NiceGUI package.
- Devices: PulseStreamer, Basler, TPI, Thorlabs stages, PulseBlaster
- Data_Analysis modules
- Make unit tests
Module | Purpose |
---|---|
baecon.base | Makes and organizes scans of instrument settings |
baecon.device | Base class for experimental instruments |
baecon.engine | Performs and controls the measurement |
baecon.data | Data and analysis of measurements |
baecon.utils | File I/O and other utility functions |
First clone the baecon
repo and move into the directiory
git clone https://github.com/olssonks/baecon.git
cd baecon
Then create a conda
environment with the environment .yml
file
conda create env -n baecon --file /development_info/baecon_conda_env.yml
Finally, activate the new baecon
environment and install the
baecon
package with pip
.
conda activate baecon
pip install .
A measurement in Baecon is defined by four properties: * devices for acquiring data * devices whos parameter is scanned through * a list of the parameter scans to perform * the repeats/averages of the whole measurement
These four properties are packaged in the Measurement_Settings class.
Baecon is open-source and available under the GPLv3 License.
Arxiv then maybe Journal of Open Source Software