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.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| pydaq-0.0.7.1.tar.gz | 18.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|