Skip to main content

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.

Metadata

Release files for pydaq 0.0.7.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 pydaq 0.0.7.1
File Size Uploaded
pydaq-0.0.7.1.tar.gz 18.5 MB Details

Built distribution (wheel)

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

Total release size: 37.1 MB

Release files / pydaq-0.0.7.1.tar.gz

Download URL pydaq-0.0.7.1.tar.gz
Size 18.5 MB
Tags Source
SHA-256 checksum
How to use checksums
ff86ae869c1ec3a5282d3df2dbbab712d826b95c2eca99ba6aba6dcf75c32c6e
BLAKE2b-256 checksum
How to use checksums
c00023d21669509d49159c9de7dd0a3c62403678218952366e1cea3202a30d80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.7

Release files / pydaq-0.0.7.1-py3-none-any.whl

Download URL pydaq-0.0.7.1-py3-none-any.whl
Size 18.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
2e684cba8784067068da55046b3cd6be3a48e520fb72355c55d391c48c0dbe42
BLAKE2b-256 checksum
How to use checksums
463f0805aaa38ec3ede5f68232c76bf34a032988faa605ecd92c80a27e4392db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.7

Release history Release notifications | RSS feed

This release

0.0.7.1 This release

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

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