Skip to main content

pydwf

This is the README of pydwf, a Python package to control the Digilent Waveforms lineup of electronic test and measurement devices made by Digilent.

It wraps all functions of libdwf, the low-level C library provided by Digilent, in an easy-to-use, class-based Python API. Like the C library, the pydwf package supports Windows, Linux (Intel and ARM), and macOS. The libdwf library is automatically installed as part of Digilent's Waveforms software, which can be downloaded from here (official link, with mandatory email harvesting) or here (non-official link, without email harvesting).

The current release of pydwf is version 1.1.19. It is based on version 3.20.1 of libdwf, but it should also work with other versions.

The pydwf package comes with documentation and a number of ready-to-run examples that demonstrate how pydwf can be used to perform common and not-so-common tasks.

A command-line tool is provided that can be used, among other things, to list the available Digilent Waveforms devices and their configurations.

This README file contains information about the project. Readers who want to learn how to use pydwf are referred to the API documentation.

Supported devices

The following devices can be controlled using pydwf:

The pydwf package has been extensively tested with the Analog Discovery 2, Digital Discovery, and ADP3450 devices. It should also work with the other devices listed, but these haven't been tested. If you have such a device and encounter problems, please report an issue on the GitHub issue tracker.

Dependencies

The pydwf package requires Python 3.6 or higher.

In order for pydwf to work, recent versions of the Digilent Adept and Digilent Waveforms packages must be installed. These provide the C libraries that pydwf uses to interact with devices. Generally speaking, if the Waveforms GUI application provided by Digilent works on your system, you're good to go.

pydwf depends on the numpy package to handle the considerable amount of data transferred between the PC and Digilent devices when performing high-speed signal generation or capture operations.

Some of the examples depend on the matplotlib package, but pydwf itself will work without it.

Project hosting

The project repository and issue tracker are hosted on GitHub:

https://github.com/sidneycadot/pydwf/

Installation using pip

The installable package is hosted on PyPI:

https://pypi.org/project/pydwf/

This allows installation using the standard pip (or pip3) tool:

pip install pydwf

After installing pydwf, the following command will show the version of pydwf and the underlying DWF library:

python -m pydwf version

After installing pydwf. the following command will list all Digilent Waveforms devices connected to the system and, for each of them, list the supported configurations:

python -m pydwf list -c

Documentation

The project documentation is hosted on Read the Docs. The latest version can be reached via the following link:

https://pydwf.readthedocs.io/en/latest/

If desired, the documentation can also be installed locally after installing the package by executing the following command:

python -m pydwf extract-html-docs

This will create a local directory called pydwf-docs-html containing the project documentation in HTML format.

Alternatively, a PDF version of the manual can be extracted as well:

python -m pydwf extract-pdf-manual

Examples

The Python examples can be installed locally after installing the pydwf package by executing the following command:

python -m pydwf extract-examples

This will create a local directory called pydwf-examples containing the Python examples that demonstrate many of the capabilities of the Digilent Waveforms devices and pydwf.

These examples are intended as a useful starting point for your own Python scripts. See the Examples overview for more information.

Acknowledgements

Many thanks to Digilent for making the awesome Waveforms devices, and to provide not only the very capable Waveforms GUI software, but also the cross-platform SDK on which pydwf is based. Great work!

My company Jigsaw B.V. supported the effort to make pydwf. If you need any kind of high-tech software (with or without Digilent Waveforms devices), and you’re somewhat in the vicinity of Delft, The Netherlands, give us a call.

Thanks to my longtime friend Pepijn for proof-reading the documentation and providing his perspective on several issues that came up while implementing pydwf. The package is a lot better because of your help.

Lastly, thanks to Petra for your patience with having all kinds of electronics equipment in the living room while developing this package (and before, and after, …). You may not share my enthusiasm for this particular hobby, but I am very fortunate that you are at least enthusiastic about my enthusiasm, if that makes sense.

— SC

Metadata

Release files for pydwf 1.1.19

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydwf 1.1.19
File Size Uploaded Provenance
pydwf-1.1.19.tar.gz 7.3 MB Without provenance Details

Built distribution (wheel)

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

Total release size: 14.6 MB

Release files / pydwf-1.1.19.tar.gz

Download URL pydwf-1.1.19.tar.gz
Size 7.3 MB
Tags Source
SHA-256 checksum
How to use checksums
9b953fa0d9758c0004d80b868ab86be326583a5a4d854065f3a565362715f81b
BLAKE2b-256 checksum
How to use checksums
f773f5d65c3e6102926868164134425d01a99ba32d1b6ab386d6bc683f8f9138
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Release files / pydwf-1.1.19-py3-none-any.whl

Download URL pydwf-1.1.19-py3-none-any.whl
Size 7.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
aefd97cfb8d315d2c4daf623682ae9e235a4f7483618c01e3f9362588663f9f2
BLAKE2b-256 checksum
How to use checksums
fdd0caf463b8d01b293c95c18dee47d20ab8c49ba1b05c490c62fea0b8d5fb8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Security for pydwf 1.1.19

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

1.1.19 This release

2 release files No provenance

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