# 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)