Controlling GPIO's

About

This short tutorial describes how to get GPIO working. For this you need tool called gpioctl.

Building/installing

  • Type make menucongfig
  • Under Utilities select package gpioctl and build carambola firmware (although you can do it directly on carambola typing opkg update; opkg install gpioctl)
  • In latest OpenWrt revisions gpioctl become deprecated.

Testing

Prepare GPIO as output

gpioctl dirout 1;  gpioctl dirout 2

Set both to 1

gpioctl set 1; gpioctl set 2

Clear both

gpioctl clear 1; gpioctl clear 2

Read status

gpioctl dirin 1; gpioctl dirin 2; gpioctl get 1; gpioctl get 2

Controlling gpio pins as files in /sys

Another method for controlling gpios using files instead of commands:

cd /sys/class/gpio
echo 1 > export 

this will make the virtual directory "gpio1" available in /sys/class/gpio/gpio1 inside "gpio1" you will find, among others:

  • direction ("in" or "out")
  • value (0 or 1)

Just write/read those file to do I/O. For example

echo out > direction
echo 1 > value

will put the pin in output mode and high

echo in > direction
cat value

will read the pin instead