Skip to main content

“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.

Metadata

Release files for firepydaq 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for firepydaq 0.1.1
File Size Uploaded Provenance Actions
firepydaq-0.1.1.tar.gz 128.7 kB Without provenance Details for firepydaq-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for firepydaq 0.1.1
File Interpreter ABI Platform Actions
firepydaq-0.1.1-py3-none-any.whl Python 3 none any Details for firepydaq-0.1.1-py3-none-any.whl

Total release size: 275.1 kB

Release files / firepydaq-0.1.1.tar.gz

Download URL firepydaq-0.1.1.tar.gz
Size 128.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5806af0e8e8795d24a4f837d01a1d9524f80554d3c969e72f7bfb1e4e7359e07
BLAKE2b-256 checksum
How to use checksums
5d7193a4147340f91254ed725b2122f6537401c0200c92c841c06617de91dd54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / firepydaq-0.1.1-py3-none-any.whl

Download URL firepydaq-0.1.1-py3-none-any.whl
Size 146.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e9005c95a9d50e002a158d509759e323f7d75aacfa10acb91f1aca14e1a3d83d
BLAKE2b-256 checksum
How to use checksums
839731d6643b85c31eed05040d26fd066ef0687be0554f1f82f852b59f0888bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.6

Security for firepydaq 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page