.TH "GPIO" "14 June 2012" "Command-Line access to Raspberry Pi GPIO" .SH NAME gpio \- Command-line access to Raspberry Pi GPIO .SH SYNOPSIS .B gpio .RB [ \-g ] .RB < read/write/pwm/mode ...> .TP .B gpio .RB < export/unexport/exports ...> .SH DESCRIPTION .B GPIO is a command line tool to allow the user easy access to the GPIO pins on the Raspberry Pi. It's designed for simple testing and diagnostic purposes, but can be used in shell scripts for general if somewhat slow control of the GPIO pins. Additionally, it can be used to set the exports in the /sys/class/gpio system directory to allow subsequent programs to use the /sys/class/gpio interface without needing to be run as root. .SH OPTIONS .TP .B \-g Use the BCM_GPIO pins numbers rather than WiringPi pin numbers. .TP .B read Read the digital value of the given pin and print 0 or 1 to represent the respective logic levels. .TP .B write Write the given value (0 or 1) to the pin. .TP .B pwm Write a PWM value (0-1023) to the given pin. .TP .B mode Set a pin into input, output or pwm mode. Can also use the literals up, down or tri to set the internal pull-up, pull-down or tristate controls. .TP .B export Export a GPIO pin in the /sys/class/gpio directory. Use like the mode command above however only in and out are supported at this time. Once a GPIO pin has been exported, the .B gpio program changes the ownership of the /sys/class/gpio/gpioX/value pseudo file to that of the user running the .B gpio program. This means that you can have a small script of gpio exports to setup the gpio pins as your program requires without the need to run anything as root, or with the sudo command. .TP .B unexport Un-Export a GPIO pin in the /sys/class/gpio directory. .TP .B exports Print a list (if any) of all the exported GPIO pins and their current values. .SH "WiringPi vs. GPIO Pin numbering" .PP .TS r r l. WiringPi GPIO Function _ 0 17 1 18 (PWM) 2 21 3 22 4 23 5 24 6 25 7 4 8 0 SDA0 9 1 SCL0 10 8 SPI CE0 11 7 SPI CE1 12 10 SPI MOSI 13 9 SPI MISO 14 11 SPI SCLK 15 14 TxD 16 15 RxD .TE .SH FILES .TP 2.2i .I gpio executable .SH EXAMPLES .TP 2.2i gpio mode 4 output # Set pin 4 to output .PP gpio -g mode 23 output # Set GPIO pin 23 to output (same as WiringPi pin 4) .PP gpio mode 1 pwm # Set pin 1 to PWM mode .PP gpio pwm 1 512 # Set pin 1 to PWM value 512 - half brightness .PP gpio export 17 out # Set GPIO Pin 17 to output .PP gpio export 0 in # Set GPIO Pin 0 (SDA0) to input. .PP gpio -g read 0 # Read GPIO Pin 0 (SDA0) .SH "NOTES" When using the export or unexport commands, the pin numbers are .B always native GPIO numbers and never wiringPi pin numbers. .SH "SEE ALSO" .LP WiringPi's home page .IP https://projects.drogon.net/raspberry-pi/wiringpi/ .SH AUTHOR Gordon Henderson .SH "REPORTING BUGS" Report bugs to .SH COPYRIGHT Copyright (c) 2012 Gordon Henderson This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.