I am trying to find out if a specific GPIO is set on OUT or IN
I need something similar to this php command exec ("gpio read ".$i, $val_array[$i], $return );
but instead of returning LOW or HIGH (0 or 1) in the case of wiringpi, i need it to return out or in. as a variable/

(real beginner here)
Is it possible?

1 Answer 1


pigpio offers a method to read the GPIO mode from C, Python, and the shell.

From the shell use pigs, e.g. pigs mg 4 will return the mode of GPIO 4 (assuming that the pigpio daemon is running (sudo pigpiod)).

The returned value is as follows.

Value     0     1      2    3    4    5    6    7
Mode    Input Output ALT5 ALT4 ALT0 ALT1 ALT2 ALT3
  • Thanks @joan, that seems pretty straightforward. Works well. Could i have a quick input on how to set the pigpiod to run on startup and reboot? (as i said, total beginner here)
    – krasatos
    Commented May 4, 2017 at 21:30
  • 1
    @krasatos sudo systemctl enable pigpiod will start the pigpio daemon at boot.
    – joan
    Commented May 4, 2017 at 21:39
  • Thanks a ton, works as a charm, you saved me a lot of time!
    – krasatos
    Commented May 4, 2017 at 21:40
  • Is there a way to use pigs with the wPi numbering instead of the bcm? Or do i have to translate the numbers?
    – krasatos
    Commented May 4, 2017 at 21:50
  • 1
    @krasatos No, pigpio only uses (Broadcom) GPIO numbers.
    – joan
    Commented May 4, 2017 at 22:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.