Python library for connecting and managing DBX DriveRack devices
Project description
pydbxdriverack
Python library for discovering, connecting to, and controlling dbx DriveRack PA2 devices.
Features
- Discover PA2 devices on the local network (UDP broadcast)
- Connect and authenticate over TCP
- Read device info (name, class, firmware)
- Recall presets and list preset names
- Control output mutes
- Read meter and limiter data
- Monitor AFS (Advanced Feedback Suppression) state
🤖 AI Assistance Disclosure
Parts of this project were developed with the assistance of Artificial Intelligence. AI tools were utilized as an accelerator to:
- Co-author and refine segments of the core library code.
- Help parse and structure raw data payloads during the reverse-engineering of the original hardware protocol.
- Transform early functional prototypes into a structured, production-ready package architecture.
- Generate test suites (
pytest) and draft structural documentation.
While AI assisted in speeding up the development workflow, all architectural decisions, hardware testing, protocol verification, and final code reviews were executed entirely by the author to ensure reliability and accuracy.
Installation
Install from source:
pip install .
For development dependencies:
pip install -e .
pip install pytest pytest-cov pytest-asyncio black ruff mypy pre-commit
Quick Start
import asyncio
from pydbxdriverack.connection import PA2Connection
from pydbxdriverack.device import PA2Device
from pydbxdriverack.discovery import async_discover_devices
async def main() -> None:
devices = await async_discover_devices(timeout=3)
if not devices:
print("No DriveRack PA2 found")
return
host = devices[0]
conn = PA2Connection(host, password="administrator")
await conn.connect()
try:
pa2 = PA2Device(conn)
await pa2.async_update_info()
print("Connected to:", pa2.device_name)
print("Firmware:", pa2.software_version)
# Example: unmute all outputs
await pa2.async_unmute_all()
finally:
await conn.disconnect()
if __name__ == "__main__":
asyncio.run(main())
Running Tests
pytest
Project Layout
src/pydbxdriverack/connection.py: TCP connection and protocol request handlingsrc/pydbxdriverack/device.py: High-level device APIsrc/pydbxdriverack/discovery.py: UDP discoverysrc/pydbxdriverack/const.py: Protocol constants and paths
License
GPL-3.0-only
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 pydbxdriverack-0.1.0.tar.gz.
File metadata
- Download URL: pydbxdriverack-0.1.0.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef573e4262b2e7bdc5bc6f44c4d928fa3550aa499457e517295e3ad36e5ae886
|
|
| MD5 |
c8da11bdae2fe5e10204154c5fcfcff8
|
|
| BLAKE2b-256 |
eeddd7b456cf87bde7836895f972b7bffc86356c329263f97cb8e82b60190b4e
|
Provenance
The following attestation bundles were made for pydbxdriverack-0.1.0.tar.gz:
Publisher:
publish.yml on MatteoGheza/pydbxdriverack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydbxdriverack-0.1.0.tar.gz -
Subject digest:
ef573e4262b2e7bdc5bc6f44c4d928fa3550aa499457e517295e3ad36e5ae886 - Sigstore transparency entry: 2082208348
- Sigstore integration time:
-
Permalink:
MatteoGheza/pydbxdriverack@eab176d651efb603c76b9c01393b17028ee762b3 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/MatteoGheza
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@eab176d651efb603c76b9c01393b17028ee762b3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pydbxdriverack-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pydbxdriverack-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b355348ca35f11250729f5554c0f338aebc313122b992b119241b84e7a7daa0b
|
|
| MD5 |
4064be8dd3be55f13c9db5b712ce2c85
|
|
| BLAKE2b-256 |
75bb9a239996a8348755f1b32133505d00678492474a2596786875a09ca372f4
|
Provenance
The following attestation bundles were made for pydbxdriverack-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on MatteoGheza/pydbxdriverack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydbxdriverack-0.1.0-py3-none-any.whl -
Subject digest:
b355348ca35f11250729f5554c0f338aebc313122b992b119241b84e7a7daa0b - Sigstore transparency entry: 2082208353
- Sigstore integration time:
-
Permalink:
MatteoGheza/pydbxdriverack@eab176d651efb603c76b9c01393b17028ee762b3 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/MatteoGheza
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@eab176d651efb603c76b9c01393b17028ee762b3 -
Trigger Event:
release
-
Statement type: