Skip to main content

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 gpiod library 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

jumpstarter_driver_gpiod-0.7.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

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

jumpstarter_driver_gpiod-0.7.0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file jumpstarter_driver_gpiod-0.7.0.tar.gz.

File metadata

File hashes

Hashes for jumpstarter_driver_gpiod-0.7.0.tar.gz
Algorithm Hash digest
SHA256 c0dc15714cc8a419fa3b8cd594d5b76f993e79cae8e78bdde58a0db453af4cdf
MD5 31942f9e502ab7da76c82ac3519f46c2
BLAKE2b-256 19f9b285b9934034d479d0618b19b99db79e7dc4b743088e0ae4204ba83b6df4

See more details on using hashes here.

File details

Details for the file jumpstarter_driver_gpiod-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jumpstarter_driver_gpiod-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f487bc5cc8365c06aad4cf73a84871e046629d952431d6edd11ed50c63da9124
MD5 69b9c15ddb7393848b31a1a95b592d82
BLAKE2b-256 3aeb2d97bfdf06319e1a85fd177f0a1527a910a09e71320abfd83506d042f1a4

See more details on using hashes here.

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