Skip to main content

Facilitated Interface for Recording Experiments (FIRE), a python-based Data Acquisition package for nidaqmx, Alicat, and ThorlabsCLD101X devices.

Project description

“FIREpyDAQ”

GitHub Release PyPI - Version PyPI - Python Version GitHub License DOI

Pytest Coverage

GitHub forks GitHub Repo stars GitHub watchers GitHub commit activity

FIREpyDAQ

FIREpyDAQ is a python based Facilitated Interface for Recording Experiments (FIRE), for devices that are generally used for data acquisition in engineering research. The device list and general requirements are given below.

Installation

Using pip, you can install this package. pip will also install relevant dependencies.

$ pip install firepydaq

Else, you can clone this repository and use poetry to compile the project locally. Once cloned, you can do the following to create a virtual environment using poetry.

# Create and Install package dependencies. 
$ poetry install
# To activate the virtual environment, unless the IDE you use automatically does this for you
$ poetry shell

Hardware/Communication Requirements

This interface can be used for three types of devices simultaneously,

  • NI hardware, which requires installation of NI-DAQmx driver from National Instruments.
    • This has been built so far only for Analog Input and Output data.
  • Alicat Mass Flow Controllers and Mass Flow Meter, which is based via serial communication and python API available from Numat.
  • Thorlabs CLD101X, which is based on serial communication

Usage

Please refer to the documentation for additional details.

firepydaq can be compiled by using one of the following scripts.

# On Windows: Protect your script from importing child processes
# Required if you need dashboard access.
# Dashboard is spawned as a separate process. 
if __name__ == "__main__":
    from firepydaq.FIREpyDAQ_Acquisition import FIREpyDAQ_Acquisition
    FIREpyDAQ_Acquisition()

Alternatively, you can run the following.

# On Windows: Protect your script from importing child processes 
# Required if you need dashboard access.
# Dashboard is spawned as a separate process. 
if __name__ == "__main__":
	import multiprocessing as mp
	mp.freeze_support()
	from firepydaq.acquisition.acquisition import application
	import sys
	from PySide6.QTWidgets import QApplication

	app = QApplication(sys.argv)
	main_app = application()
	main_app.show()
	sys.exit(app.exec())

Interface

Example usage is given in the following two videos. The corresponding files and two snapshots are provided after the video for reference.

  • FIREpyDAQ Setup FIREpyDAQ Setup Video

  • FIREpyDAQ Acquisition and Dashboard FIREpyDAQ Acquisition Video

Config and Formulae file

Example of NI config that is required to set-up the acquisition. You can formulate your own config file. You can use the NISYSCheck.py utility to get information of the connected NI device.

# Panel Device Channel ScaleMax ScaleMin Label Type TCType Chart AIRangeMin AIRangeMax Layout Position Processed_Unit Legend
0 1 cDAQ1Mod1 ai0 1 1 Temperature1 Thermocouple K Temperature 1 1 2 1 C Temperature1
1 1 cDAQ1Mod1 ai2 1 1 Temperature2 Thermocouple K Temperature 1 1 2 1 C Temperature2
2 1 cDAQ1Mod3 ai0 1 0 Voltage1 Voltage NA V1 0 1 1 1 V Open V1
3 1 cDAQ1Mod3 ai2 1 0 Voltage2 Voltage NA None 0 1 1 1 C Open V2

Example of Formulae file that is used to post-process data is display in dashboard is selected.

Label RHS Chart Legend Layout Position Processed_Unit
TF_mult 9/5 None TF_mult 1 1 -
TF_offset 32 Constant TF_mult 1 1 -
Temp_F (Temperature1)*TF_mult + TF_offset Temperature Fahrenheit temp 2 2 F
T_mean (Temperature1 + Temperature2)/2 Mean Temperture Mean Temp 1 1 C
V_mA Voltage1/1000 V1 (mV) Volts 1 1 mA

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

Suggested procedure is given below. Note: Pull request into the main branch will not be accepted.

  • Fork this repository.
  • Create a your_feature branch from the dev branch.
  • Clone your repository on your machine.
  • Install poetry using pipx as recommended or using pip, and make (optional).
  • If you install and configure make - run make build, which will initiate the commands poetry build, poetry lock, and poetry install in succession. This will create a virtual environment for testing your developments.
  • Alternatively (without make), you can run individual poetry commands to install the package on a virtual environment (ideal) for local development.
  • Make your edits, and send a PR following the template.

License

firepydaq was created by Dushyant M. Chaudhari. It is licensed under the terms of the GNU General Public license, v.3.0.

Citation

Full citation:

Chaudhari, D. M., & Mishra, A. (2024). FIREpyDAQ: Facilitated Interface for Recording Experiments (FIRE), a python-package for Data Acquisition. (v0.1.0). Zenodo. https://doi.org/10.5281/zenodo.13486708

Bib:

@misc{firepydaq,
title={FIREpyDAQ: Facilitated Interface for Recording Experiments (FIRE), a python-package for Data Acquisition. (v0.1.0)},
url = {https://github.com/ulfsri/firepydaq},
author = {Chaudhari, Dushyant M. and Mishra, Anvii},
publisher = {Zenodo},
doi = {10.5281/zenodo.13486708},
year = {2024}
}

Acknowledgements

Thanks to the following community guidelines which were immensely helpful while making this package.

Additionally, the contributors are grateful for the support from Fire Safety Research Institute, a part of UL Research Institutes, for this project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firepydaq-0.1.1.tar.gz (128.7 kB view details)

Uploaded Source

Built Distribution

firepydaq-0.1.1-py3-none-any.whl (146.4 kB view details)

Uploaded Python 3

File details

Details for the file firepydaq-0.1.1.tar.gz.

File metadata

  • Download URL: firepydaq-0.1.1.tar.gz
  • Upload date:
  • Size: 128.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for firepydaq-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5806af0e8e8795d24a4f837d01a1d9524f80554d3c969e72f7bfb1e4e7359e07
MD5 4e342543062318d228aa895c9b12e100
BLAKE2b-256 5d7193a4147340f91254ed725b2122f6537401c0200c92c841c06617de91dd54

See more details on using hashes here.

File details

Details for the file firepydaq-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: firepydaq-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 146.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for firepydaq-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e9005c95a9d50e002a158d509759e323f7d75aacfa10acb91f1aca14e1a3d83d
MD5 ab3a7491dd8eaca2758eaf479286fca1
BLAKE2b-256 839731d6643b85c31eed05040d26fd066ef0687be0554f1f82f852b59f0888bc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page