Skip to main content

Data Acquisition and Experimental Analysis with Python

Project description

PYDAQ

PyPI version License python status contributors downloads openissues issuesclosed forks stars

PYDAQ - Data Acquisition and Experimental Analysis with Python (www.pydaq.org)

PYDAQ is a Python package for data acquisition, signal generation, system identification, digital filtering, and real-time control using Arduino and NI-DAQ devices.

It provides a unified graphical interface, command-line tools, and Jupyter notebook examples for laboratory experiments, rapid prototyping, teaching, and research workflows.


Capabilities

PYDAQ supports the following experimental workflows:

Capability Description
Data acquisition Acquire, plot, and save experimental data from Arduino or NI-DAQ boards
Signal generation Send user-defined input signals, including nonlinear excitation signals
Step-response experiments Run automatic step-response tests and save the resulting data
PRBS-based experiments Generate excitation signals for system identification workflows
System identification Estimate linear and nonlinear black-box models from experimental data using SysIdentPy
Digital filtering Apply FIR and IIR filters directly to acquired data in real time
PID control Run real-time or simulated P, PI, PD, and PID control with Ziegler-Nichols tuning
LQR control Simulate or implement Linear Quadratic Regulator control for state-space systems
Multi-channel workflows Work with multiple Arduino or NI-DAQ channels
Benchmarking Estimate the maximum reliable sampling frequency supported by the local system

Further details about benchmarking are available in the benchmarking documentation.


Installation

Install PYDAQ with pip:

pip install pydaq

Main dependencies include numpy, scipy, matplotlib, pyserial, nidaqmx, PySide6, sysidentpy, bitarray, and packaging. Specific dependency versions are defined in the project configuration files.

Hardware notes:

  • Arduino workflows do not require NI-DAQmx drivers.
  • NI-DAQ workflows require the NI-DAQmx drivers.

PYDAQ is tested up to Python 3.14. It may run on newer versions, but without guarantees.


Graphical user interface

All main workflows are available from a single graphical interface.

Launch the GUI with:

from pydaq.pydaq_global import PydaqGui

PydaqGui()

More details are available in the documentation and in the Jupyter notebook examples.


Screenshots

PYDAQ graphical interface


Contributing

Contributions are welcome. Please read the contribution guide before submitting a pull request.


Citation

DOI

This is the seminal publication of the PYDAQ project and should be cited in any work that uses PYDAQ.

@article{Martins_PYDAQ_Data_Acquisition_2023,
  author  = {Martins, Samir Angelo Milani},
  doi     = {10.21105/joss.05662},
  journal = {Journal of Open Source Software},
  month   = dec,
  number  = {92},
  pages   = {5662},
  title   = {{PYDAQ: Data Acquisition and Experimental Analysis with Python}},
  url     = {https://joss.theoj.org/papers/10.21105/joss.05662},
  volume  = {8},
  year    = {2023}
}

Additional related publications are available in the papers directory.

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

pydaq-0.0.7.1.tar.gz (18.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydaq-0.0.7.1-py3-none-any.whl (18.6 MB view details)

Uploaded Python 3

File details

Details for the file pydaq-0.0.7.1.tar.gz.

File metadata

  • Download URL: pydaq-0.0.7.1.tar.gz
  • Upload date:
  • Size: 18.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for pydaq-0.0.7.1.tar.gz
Algorithm Hash digest
SHA256 ff86ae869c1ec3a5282d3df2dbbab712d826b95c2eca99ba6aba6dcf75c32c6e
MD5 2b09e00f6e4ed9ea4f3eb9e165d97de8
BLAKE2b-256 c00023d21669509d49159c9de7dd0a3c62403678218952366e1cea3202a30d80

See more details on using hashes here.

File details

Details for the file pydaq-0.0.7.1-py3-none-any.whl.

File metadata

  • Download URL: pydaq-0.0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 18.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for pydaq-0.0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e684cba8784067068da55046b3cd6be3a48e520fb72355c55d391c48c0dbe42
MD5 5e775067259bfca74193a9af3e3c1ca6
BLAKE2b-256 463f0805aaa38ec3ede5f68232c76bf34a032988faa605ecd92c80a27e4392db

See more details on using hashes here.

Supported by

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