GPIO API

When Kervi starts it scans for installed Kervi platform drivers and loads the GPIO driver. In your application you access GPIO via:

import kervi.hal.GPIO as GPIO

#define channel 23 as input
GPIO.define_as_input(23)
class kervi.hal.gpio.AnalogIOChannel(gpio_device, channel, is_input)
class kervi.hal.gpio.IGPIODeviceDriver(gpio_id)
define_as_input(channel, pullup=False)

Define a channel as input

define_as_output(channel)

Define a channel as output

define_as_pwm(channel, frequency, duty_cycle=None)

Defines a channel as pwm output.

Parameters
  • channel (int) – The channel to define as a pwm output.

  • frequency – The pwn frequency.

  • duty_cycle – The duty_cycle to use, can be changed in call to pwm_start

get(channel)

Returns the state of a channel.

listen(channel, callback, bounce_time=0.2)

Listen on a channel for state change. The callback function is called when a channel is going high and low.

Parameters
  • channel (float) – The channel to listen on.

  • callback (function or method) – The function or method to call when the state of the channel change.

  • bounce_time – To reduce switch noice a bounce_time > 0 filters small jitters when a switch or button is pressed

listen_falling(channel, callback)

calls the callback when a channel is going low.

Parameters
  • channel (function or method) – The channel to listen on.

  • callback – The function or method to call when the state of the channel change.

listen_rising(channel, callback)

calls the callback when a channel is going high.

Parameters
  • channel (function or method) – The channel to listen on.

  • callback – The function or method to call when the state of the channel change.

pwm_start(channel, duty_cycle=None, frequency=None)

Starts the pwm signal on a channel. The channel should be defined as pwm prior to this call. If no duty_cycle or frequency is passed in this call previous values from call to define_as_pwm or pwm_start is used.

Parameters
  • channel (int) – The channel to start the pwm signal on.

  • duty_cycle (int) – The duty cycle use on the channel.

  • frequency (int) – The frequency to be used on the pwm channel.

pwm_stop(channel)

Stop pwm signal on channel.

set(channel, state)

Sets the state of a channel that is defined as output.

Parameters
  • channel (bool) – The channel that should be changed.

  • state – The state of the channel.

set_channels(channels)

Sets the state of multiple channels in one operation.

Parameters

channels (dict) – A dictionary where keys are channels and values the value to set for each channel.

class kervi.hal.gpio.LogicIOChannel(gpio_device, channel)