Skip to main content

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

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.

Release history Release notifications | RSS feed

This release

0.8.1 This release

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

Supported by

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