Skip to main content

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 handling
  • src/pydbxdriverack/device.py: High-level device API
  • src/pydbxdriverack/discovery.py: UDP discovery
  • src/pydbxdriverack/const.py: Protocol constants and paths

License

GPL-3.0-only

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydbxdriverack-0.1.0.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydbxdriverack-0.1.0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

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

Hashes for pydbxdriverack-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ef573e4262b2e7bdc5bc6f44c4d928fa3550aa499457e517295e3ad36e5ae886
MD5 c8da11bdae2fe5e10204154c5fcfcff8
BLAKE2b-256 eeddd7b456cf87bde7836895f972b7bffc86356c329263f97cb8e82b60190b4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydbxdriverack-0.1.0.tar.gz:

Publisher: publish.yml on MatteoGheza/pydbxdriverack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for pydbxdriverack-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b355348ca35f11250729f5554c0f338aebc313122b992b119241b84e7a7daa0b
MD5 4064be8dd3be55f13c9db5b712ce2c85
BLAKE2b-256 75bb9a239996a8348755f1b32133505d00678492474a2596786875a09ca372f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydbxdriverack-0.1.0-py3-none-any.whl:

Publisher: publish.yml on MatteoGheza/pydbxdriverack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page