# Python Bindings for Digilent WaveForms API
![build](https://github.com/mariusgreuel/dwfpy/actions/workflows/build.yml/badge.svg)
![docs](https://readthedocs.org/projects/dwfpy/badge/?version=latest)
**DwfPy** is a Python package that allows you to access **Digilent WaveForms** devices via Python. It provides a low-level API with complete access to the Digilent WaveForms API, and also a simple but powerful high-level API, which allows you to configure WaveForms devices with a single statement.
For instance, to output a 1kHz sine-wave on a **Analog Discovery 2**, you can simply write:
```python
import dwfpy as dwf
with dwf.AnalogDiscovery2() as device:
print('Generating a 1kHz sine wave on WaveGen channel 1...')
device.analog_output['ch1'].setup('sine', frequency=1e3, amplitude=1, start=True)
input('Press Enter key to exit.')
```
## Features
- Pythonic abstraction of Digilent Waveforms API.
- Low-level API with complete access to the Digilent Waveforms API.
- Powerful high-level API that supports one-line configuration statements.
- Supports all sub-modules, such as oscilloscope, arbitrary waveform generator, logic analyzer, pattern generator, digital I/O, and power supplies.
- Works with all WaveForms devices, such as the **Analog Discovery 2**, the **Analog Discovery 3**, or the **Digital Discovery**.
## Installing DwfPy
You can install the [DwfPy package](https://pypi.org/project/dwfpy/) from PyPI using pip:
```console
pip install dwfpy
```
In order to use the **DwfPy** package, you need **Python 3.8** or higher.
As **DwfPy** builds on top of the WaveForms API, you need to install the [WaveForms software][WaveForms-Software], which includes the required runtime components to access the WaveForms devices.
The source code for the **DwfPy** package can be found at GitHub at <https://github.com/mariusgreuel/dwfpy>.
## Examples
You can find Python examples using **DwfPy** in the dwfpy GitHub repository at <https://github.com/mariusgreuel/dwfpy/tree/main/examples>.
## Documentation
You can find the **DwfPy** user's guide at <https://dwfpy.readthedocs.io/>.
Detailed information about the Digilent Waveforms API is available from the [Digilent WaveForms SDK Reference Manual][WaveForms-SDK-Reference-Manual].
## Getting help
For issues with **DwfPy**, please visit the
[dwfpy issue tracker](https://github.com/mariusgreuel/dwfpy/issues).
[WaveForms]: https://digilent.com/shop/software/digilent-waveforms/
[WaveForms-Software]: https://digilent.com/reference/software/waveforms/waveforms-3/start
[WaveForms-SDK-Reference-Manual]: https://digilent.com/reference/_media/waveforms_sdk_reference_manual.pdf
Raw data
{
"_id": null,
"home_page": "https://github.com/mariusgreuel/dwfpy",
"name": "dwfpy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "digilent, waveforms, analog discovery, digital discovery, ad2, ad3",
"author": "Marius Greuel",
"author_email": "greuelm@mgtek.com",
"download_url": "https://files.pythonhosted.org/packages/62/7f/8987894cfe4b2087a838787b3fca27c6fcb2a7707914e003dee3c77c0307/dwfpy-1.1.3.tar.gz",
"platform": null,
"description": "# Python Bindings for Digilent WaveForms API\n\n![build](https://github.com/mariusgreuel/dwfpy/actions/workflows/build.yml/badge.svg)\n![docs](https://readthedocs.org/projects/dwfpy/badge/?version=latest)\n\n**DwfPy** is a Python package that allows you to access **Digilent WaveForms** devices via Python. It provides a low-level API with complete access to the Digilent WaveForms API, and also a simple but powerful high-level API, which allows you to configure WaveForms devices with a single statement.\n\nFor instance, to output a 1kHz sine-wave on a **Analog Discovery 2**, you can simply write:\n\n```python\nimport dwfpy as dwf\n\nwith dwf.AnalogDiscovery2() as device:\n print('Generating a 1kHz sine wave on WaveGen channel 1...')\n device.analog_output['ch1'].setup('sine', frequency=1e3, amplitude=1, start=True)\n input('Press Enter key to exit.')\n```\n\n## Features\n\n- Pythonic abstraction of Digilent Waveforms API.\n- Low-level API with complete access to the Digilent Waveforms API.\n- Powerful high-level API that supports one-line configuration statements.\n- Supports all sub-modules, such as oscilloscope, arbitrary waveform generator, logic analyzer, pattern generator, digital I/O, and power supplies.\n- Works with all WaveForms devices, such as the **Analog Discovery 2**, the **Analog Discovery 3**, or the **Digital Discovery**.\n\n## Installing DwfPy\n\nYou can install the [DwfPy package](https://pypi.org/project/dwfpy/) from PyPI using pip:\n\n```console\npip install dwfpy\n```\n\nIn order to use the **DwfPy** package, you need **Python 3.8** or higher.\n\nAs **DwfPy** builds on top of the WaveForms API, you need to install the [WaveForms software][WaveForms-Software], which includes the required runtime components to access the WaveForms devices.\n\nThe source code for the **DwfPy** package can be found at GitHub at <https://github.com/mariusgreuel/dwfpy>.\n\n## Examples\n\nYou can find Python examples using **DwfPy** in the dwfpy GitHub repository at <https://github.com/mariusgreuel/dwfpy/tree/main/examples>.\n\n## Documentation\n\nYou can find the **DwfPy** user's guide at <https://dwfpy.readthedocs.io/>.\n\nDetailed information about the Digilent Waveforms API is available from the [Digilent WaveForms SDK Reference Manual][WaveForms-SDK-Reference-Manual].\n\n## Getting help\n\nFor issues with **DwfPy**, please visit the\n[dwfpy issue tracker](https://github.com/mariusgreuel/dwfpy/issues).\n\n[WaveForms]: https://digilent.com/shop/software/digilent-waveforms/\n[WaveForms-Software]: https://digilent.com/reference/software/waveforms/waveforms-3/start\n[WaveForms-SDK-Reference-Manual]: https://digilent.com/reference/_media/waveforms_sdk_reference_manual.pdf\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python Bindings for Digilent WaveForms API",
"version": "1.1.3",
"project_urls": {
"Bug Tracker": "https://github.com/mariusgreuel/dwfpy/issues",
"Homepage": "https://github.com/mariusgreuel/dwfpy"
},
"split_keywords": [
"digilent",
" waveforms",
" analog discovery",
" digital discovery",
" ad2",
" ad3"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "892fdf9943a603f01e5d0e54197e5dbff93074b7394c07f988e8aefafd7b7c8f",
"md5": "522a28172934e334b24bc75d099ac7ac",
"sha256": "247089e456b6b89d24da389b02448927298f3f10b54d94ee20174bf3060a840c"
},
"downloads": -1,
"filename": "dwfpy-1.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "522a28172934e334b24bc75d099ac7ac",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 59307,
"upload_time": "2024-10-31T12:06:02",
"upload_time_iso_8601": "2024-10-31T12:06:02.796561Z",
"url": "https://files.pythonhosted.org/packages/89/2f/df9943a603f01e5d0e54197e5dbff93074b7394c07f988e8aefafd7b7c8f/dwfpy-1.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "627f8987894cfe4b2087a838787b3fca27c6fcb2a7707914e003dee3c77c0307",
"md5": "622b255242b9add64cd19a202f1cd10f",
"sha256": "9539264a0ca61ab66bb61119b4e8bf243fbad3cefbb8578ac4b3c42895dd38a0"
},
"downloads": -1,
"filename": "dwfpy-1.1.3.tar.gz",
"has_sig": false,
"md5_digest": "622b255242b9add64cd19a202f1cd10f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 52023,
"upload_time": "2024-10-31T12:06:04",
"upload_time_iso_8601": "2024-10-31T12:06:04.900599Z",
"url": "https://files.pythonhosted.org/packages/62/7f/8987894cfe4b2087a838787b3fca27c6fcb2a7707914e003dee3c77c0307/dwfpy-1.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-31 12:06:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mariusgreuel",
"github_project": "dwfpy",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "dwfpy"
}