Example Connections Doc

GPIO

GPIO

Emlid OES Prime has 60 GPIO pins. See [the pinout section](../pinout/OES Prime/) for more information.
GPIO can be accessed through Linux’s sysfs interface. (/sys/class/gpio directory).

##GPIO Sysfs Numbers

To obtain the correct number of the desired pin you have to calculate it from the pin name:
“`(position of letter in alphabet – 1) * 32 + pin number“`

Also, you can use this formula in Python interpreter:

“`python

(ord(pin_letter) – ord(“A”)) * 32 + pin_number

“`

In this example, we are controlling user LED connected to the pin **PA10**.
According to the formula above, the correct pin number is “`(1 – 1) * 32 + 10 = 10“`.

##Let there be light

1) To control a GPIO bit you should first to export the pin:

“`echo 10 > /sys/class/gpio/export“`

After that, you’ll see a new directory “`gpio10“` in “`/sys/class/gpio“` containing the files you need to control the pin.

2) Write “out” to /sys/class/gpio/gpio10/direction:

“`echo out > /sys/class/gpio/gpio10/direction“`

3) Set the value:

“`echo 1 > /sys/class/gpio/gpio10/value“`

4) To turn off the LED you need to write 0:

“`echo 0 > /sys/class/gpio/gpio10/value“`

When you are done, remove GPIO pin by just unexporting it:

“`echo 10 > /sys/class/gpio/unexport“`