https://github.com/patrickbaus/pyasyncgpib
An AsyncIO wrapper for linux-gpib
https://github.com/patrickbaus/pyasyncgpib
asyncio asyncio-api-wrapper gpib linux-gpib python
Last synced: 4 months ago
JSON representation
An AsyncIO wrapper for linux-gpib
- Host: GitHub
- URL: https://github.com/patrickbaus/pyasyncgpib
- Owner: PatrickBaus
- License: gpl-3.0
- Created: 2021-01-02T21:36:33.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2025-09-04T15:45:21.000Z (5 months ago)
- Last Synced: 2025-09-17T01:49:22.950Z (5 months ago)
- Topics: asyncio, asyncio-api-wrapper, gpib, linux-gpib, python
- Language: Python
- Homepage:
- Size: 202 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](../../actions/workflows/pylint.yml)
[](https://pypi.org/project/async-gpib/)


[](LICENSE)
[](https://github.com/psf/black)
# async_gpib
Python3 asyncio [Linux GPIB Wrapper](https://linux-gpib.sourceforge.io/). The library requires Python
[asyncio](https://docs.python.org/3/library/asyncio.html) and is a thin wrapper for the threaded Linux GPIB Wrapper
library.
The library is fully type-hinted.
## Supported Devices
### Instruments
|Device|Supported|Tested|Comments|
|--|--|--|--|
|[Fluke 5440B](https://github.com/PatrickBaus/pyAsyncFluke5440B)|:heavy_check_mark:|:heavy_check_mark:| |
|[HP 3478A](https://github.com/PatrickBaus/pyAsyncHP3478A)|:heavy_check_mark:|:heavy_check_mark:| |
## Setup
There are currently no packages for Linux GPIB available on all platforms. To install the library it is required to
install Linux GPIB.
### Linux GPIB:
These instructions are for Ubuntu:
```bash
sudo apt install subversion build-essential autoconf libtool flex bison python3-dev
svn checkout svn://svn.code.sf.net/p/linux-gpib/code/trunk linux-gpib-code
cd ~/linux-gpib-code/linux-gpib-kernel
make
sudo make install # ignore the signing errors
sudo groupadd gpib # seems not to be installed
sudo modprobe ni_usb_gpib
cd ~/linux-gpib-code/linux-gpib-user
./bootstrap
./configure --sysconfdir=/etc
make
sudo make install
sudo ldconfig
```
### Linux GPIB Python module:
Once Linux GPIB is installed, you can either install the python package or use the `gpib-ctypes` package.
```bash
python3 -m venv env # virtual environment, optional
source env/bin/activate
pip install -e ~/linux-gpib-code/linux-gpib-user/language/python/
```
### async_gpib Python module
The package can be directly installed via Pypi:
```bash
python3 -m venv env # virtual environment, optional
source env/bin/activate
pip install async-gpib
```
## Usage
Initialize the GPIB adapter
```python
from async_gpib import AsyncGpib
# Create a controller and talk to device address 22
async with AsyncGpib(name=0, pad=22) as gpib_device:
# Add your code here
...
```
See [examples/](examples/) for more working examples.
## Support for Multiple Devices
> :warning: **Concurrency with multiple devices**: Note, that when using a single adapter to control multiple devices,
> there is no concurrency on the GPIB bus. This means, there is **no** speed increase, when making asynchronous reads
> from multiple devices on the bus regarding the transfer time.
## Versioning
I use [SemVer](http://semver.org/) for versioning. For the versions available, see the
[tags on this repository](../../tags).
## Documentation
I use the [Numpydoc](https://numpydoc.readthedocs.io/en/latest/format.html) style for documentation.
## Authors
* **Patrick Baus** - *Initial work* - [PatrickBaus](https://github.com/PatrickBaus)
## License
This project is licensed under the GPL v3 license - see the [LICENSE](LICENSE) file for details