CONDUYT protocol SDK for Python — host-side hardware control
Project description
conduyt-py
CONDUYT protocol SDK for Python. Async and sync APIs for host-side hardware control.
Install
pip install conduyt-py
# With serial transport
pip install conduyt-py[serial]
# With MQTT transport
pip install conduyt-py[mqtt]
# All transports
pip install conduyt-py[all]
Quick Start
Async
from conduyt import ConduytDevice
from conduyt.transports.serial import SerialTransport
device = ConduytDevice(SerialTransport("/dev/ttyUSB0"))
hello = await device.connect()
await device.pin(13).mode("output")
await device.pin(13).write(1)
value = await device.pin(0).read("analog")
await device.disconnect()
Sync
from conduyt import ConduytDeviceSync
from conduyt.transports.serial import SerialTransport
device = ConduytDeviceSync(SerialTransport("/dev/ttyUSB0"))
device.connect()
device.pin(13).mode("output")
device.pin(13).write(1)
value = device.pin(0).read("analog")
device.disconnect()
Module Usage
from conduyt.modules.servo import ConduytServo
servo = ConduytServo(device)
await servo.attach(9)
await servo.write(90)
API Reference
ConduytDevice (async)
| Method | Returns | Description |
|---|---|---|
connect() |
HelloResp |
Connect and run HELLO handshake |
disconnect() |
None |
Close connection |
ping() |
None |
Ping/pong roundtrip |
reset() |
None |
Reset device state |
pin(num) |
PinProxy |
Pin control object |
ConduytDeviceSync
Synchronous wrapper around ConduytDevice. Same methods, no await.
PinProxy
| Method | Returns | Description |
|---|---|---|
mode(mode) |
None |
Set pin mode: "input", "output", "pwm", "analog", "input_pullup" |
write(value) |
None |
Digital or PWM write |
read(mode?) |
int |
Read pin value |
Errors
| Class | When |
|---|---|
ConduytNAKError |
Device rejected a command |
ConduytTimeoutError |
No response within timeout |
ConduytDisconnectedError |
Transport disconnected |
Transports
| Transport | Module | Dependency |
|---|---|---|
SerialTransport |
conduyt.transports.serial |
pyserial-asyncio |
MQTTTransport |
conduyt.transports.mqtt |
aiomqtt |
MockTransport |
conduyt.transports.mock |
None |
Modules
| Module | Import | Hardware |
|---|---|---|
ConduytServo |
conduyt.modules.servo |
Hobby servos |
ConduytNeoPixel |
conduyt.modules.neopixel |
WS2812/SK6812 LEDs |
ConduytDHT |
conduyt.modules.dht |
DHT11/DHT22 sensors |
ConduytOLED |
conduyt.modules.oled |
SSD1306 OLED displays |
ConduytStepper |
conduyt.modules.stepper |
Stepper motors |
ConduytEncoder |
conduyt.modules.encoder |
Rotary encoders |
ConduytPID |
conduyt.modules.pid |
PID controller |
Requirements
- Python >= 3.10
pyserial-asyncio >= 0.6(for serial transport)aiomqtt >= 2.0(for MQTT transport)
License
MIT. Copyright (c) 2026 LumenCanvas.
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
conduyt_py-0.1.0.tar.gz
(20.4 kB
view details)
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 conduyt_py-0.1.0.tar.gz.
File metadata
- Download URL: conduyt_py-0.1.0.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
445a2499efe62c4935141c0d95957e62f977199394178829849f2a00d38cda10
|
|
| MD5 |
9f8019730e00e2d0301d20bd6ec9932e
|
|
| BLAKE2b-256 |
e9f46198bb55ea1dd368a87ae1a5cd1d541506b028486b5a2caf05f2bcdc8a66
|
File details
Details for the file conduyt_py-0.1.0-py3-none-any.whl.
File metadata
- Download URL: conduyt_py-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d79fac84996490943eca12cf582b5d6924d3a18abd786c999fa5580472149ce
|
|
| MD5 |
c37e3087133454b65e6a8e0273cb784b
|
|
| BLAKE2b-256 |
e99b37088735a46e9a9ddf8b8cd656e6cd962e2e5184ab35c9fa64388043dd00
|