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.8.1.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.8.1-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for jumpstarter_driver_gpiod-0.8.1.tar.gz
Algorithm Hash digest
SHA256 098bc10c4f916750cb5d25f84f0fce5b728c41e160ae996c5e2a6f1aeee846a0
MD5 24863c33822582afc947689f714c1c28
BLAKE2b-256 9e40e83b8cc2e03c653946dd9ff329ed5127396d97bef66266b6964522a19c10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jumpstarter_driver_gpiod-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d7b21df37bb073c68178237306d34d62db0341025184173df71310f905d0a2e8
MD5 e7cc5d0f7e09e619832579b8d6a6da98
BLAKE2b-256 bcaff10ca7e8bb5ed0b998a2ddb913e69da856979f68ba237a9cf539a7f50bb9

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