No project description provided
Project description
gpiod driver
jumpstarter-driver-gpiod provides functionality for interacting with
gpiod GPIO pins for digital input/output operations.
This requires the /dev/gpiochip[0..N] device available on the system, and you can use the gpioinfo gpiod tool to list the available GPIO lines.
Installation
:substitutions:
$ pip3 install --extra-index-url {{index_url}} jumpstarter-driver-gpiod
Configuration
The gpiod driver provides three main driver types:
DigitalOutput Configuration
Example configuration for digital output:
export:
led_output:
type: jumpstarter_driver_gpiod.driver.DigitalOutput
config:
device: "/dev/gpiochip0"
line: 18
drive: "push_pull"
active_low: false
bias: "pull_up"
initial_value: "inactive"
DigitalInput Configuration
Example configuration for digital input:
export:
button_input:
type: jumpstarter_driver_gpiod.driver.DigitalInput
config:
line: 17
active_low: false
bias: "pull_up"
PowerSwitch Configuration
Example configuration for power switching:
export:
power_switch:
type: jumpstarter_driver_gpiod.driver.PowerSwitch
config:
line: 18
mode: "push_pull"
active_low: false
bias: "pull_up"
initial_value: "inactive"
Config parameters
| Parameter | Description | Type | Required | Default | Driver Types |
|---|---|---|---|---|---|
| device | The GPIO device to use (can be integer or string like "/dev/gpiochip0") | str | no | "/dev/gpiochip0" | All |
| line | The GPIO line number to use | int | yes | All | |
| drive | The drive mode for the GPIO line. Options: "push_pull", "open_drain", "open_source" | str | no | null | DigitalOutput, PowerSwitch |
| active_low | Whether the pin is active low (True) or active high (False) | bool | no | False | All |
| bias | The bias configuration for the GPIO line. Options: "as_is", "pull_up", "pull_down", "disabled" | str | no | null | All |
| initial_value | The initial value for output pins. Options: "active", "inactive", "on", "off", True, False | str/bool | no | "inactive" | DigitalOutput, PowerSwitch |
| mode | The mode for PowerSwitch (same as drive parameter) | str | no | "push_pull" | PowerSwitch |
API Reference
DigitalOutputClient
.. autoclass:: jumpstarter_driver_gpiod.client.DigitalOutputClient()
:members: on, off, read
DigitalInputClient
.. autoclass:: jumpstarter_driver_gpiod.client.DigitalInputClient()
:members: wait_for_active, wait_for_inactive, wait_for_edge, read
Examples
Digital Output Examples
Basic LED control:
# Turn LED on
led_output.on()
# Turn LED off
led_output.off()
# Read current state
state = led_output.read()
print(f"LED state: {state}")
Digital Input Examples
Button input with edge detection:
# Read current input state
state = button_input.read()
print(f"Button state: {state}")
# Wait for button press (active state)
button_input.wait_for_active(timeout=10.0)
# Wait for button release (inactive state)
button_input.wait_for_inactive(timeout=10.0)
# Wait for rising edge (button press)
button_input.wait_for_edge("rising", timeout=10.0)
# Wait for falling edge (button release)
button_input.wait_for_edge("falling", timeout=10.0)
Power Switch Examples
Power control for devices:
# Turn power on
power_switch.on()
# Turn power off
power_switch.off()
# Read current power state
state = power_switch.read()
print(f"Power state: {state}")
Pin Configuration Details
Drive Modes
- push_pull: Standard push-pull output (default)
- open_drain: Open-drain output (useful for I2C, etc.)
- open_source: Open-source output
Bias Configuration
- as_is: No bias (default)
- pull_up: Internal pull-up resistor
- pull_down: Internal pull-down resistor
- disabled: Disable bias
Active Low vs Active High
- active_low: false (default): Pin is active when HIGH
- active_low: true: Pin is active when LOW
Initial Values
For output pins, you can set the initial state:
- "inactive" or "off" or False: Start with pin LOW
- "active" or "on" or True: Start with pin HIGH
Hardware Requirements
- gpiod with GPIO access
- Python
gpiodlibrary installed - Appropriate permissions to access
/dev/gpiochip0
Error Handling
The driver includes comprehensive error handling for:
- Invalid pin numbers
- Invalid drive/bias configurations
- Hardware access errors
- Timeout conditions for input operations
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
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 jumpstarter_driver_gpiod-0.7.3.tar.gz.
File metadata
- Download URL: jumpstarter_driver_gpiod-0.7.3.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8d127e240d3c5ba0733a942257ddc62170152f3f208df80d12f0bee57ff345c
|
|
| MD5 |
6295d792ced086340e7a4c52fb28918f
|
|
| BLAKE2b-256 |
c87001dbacf7594d35336a1afdea1919d1dd5292b5c57b227baa8d197614a26d
|
File details
Details for the file jumpstarter_driver_gpiod-0.7.3-py3-none-any.whl.
File metadata
- Download URL: jumpstarter_driver_gpiod-0.7.3-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c6a9821449e4f82d28344f9324a8e12927a7cc498378bacd83d5a6494889e3c
|
|
| MD5 |
83861d32bd574ffd7a0b5cdd0ca7ee3e
|
|
| BLAKE2b-256 |
6d1903aa047cfaaa87660a6ef1abdacf154cf99969bda2b996224f6dc127d110
|