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.tar.gz (18.2 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-py3-none-any.whl (18.2 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydaq-0.0.7.tar.gz
  • Upload date:
  • Size: 18.2 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.tar.gz
Algorithm Hash digest
SHA256 e80d2d1e469da6b9eb8ad3b3f4c20d32369b38559808ab162b0d250ded413107
MD5 f24b628c4eeb6abdf4cb8ac6240392ff
BLAKE2b-256 1a11cd12b920ea43cdbde56337dd82a10411c3919b085ed059210962e752075f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydaq-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 18.2 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-py3-none-any.whl
Algorithm Hash digest
SHA256 8a0d92b191b6608f39e8d07cb1c6581318338b002375196660d164f1dc10e02f
MD5 f0728b1c45e4c7c55a5ca361101d612e
BLAKE2b-256 24b2359ad761fad4c60179348c3360af73958845cada25a9908ba7c2f05dc6e2

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