Data Acquisition and Experimental Analysis with Python
Project description
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
Contributing
Contributions are welcome. Please read the contribution guide before submitting a pull request.
Citation
This is the seminal publication of the PYDAQ project and should be cited in any work that uses PYDAQ.
- Martins, S. A. M. (2023). PYDAQ: Data Acquisition and Experimental Analysis with Python. Journal of Open Source Software, 8(92), 5662. https://doi.org/10.21105/joss.05662
@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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff86ae869c1ec3a5282d3df2dbbab712d826b95c2eca99ba6aba6dcf75c32c6e
|
|
| MD5 |
2b09e00f6e4ed9ea4f3eb9e165d97de8
|
|
| BLAKE2b-256 |
c00023d21669509d49159c9de7dd0a3c62403678218952366e1cea3202a30d80
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e684cba8784067068da55046b3cd6be3a48e520fb72355c55d391c48c0dbe42
|
|
| MD5 |
5e775067259bfca74193a9af3e3c1ca6
|
|
| BLAKE2b-256 |
463f0805aaa38ec3ede5f68232c76bf34a032988faa605ecd92c80a27e4392db
|