This is an old revision of the document!
| GPIO num | Name | Pin | Pin | Name | GPIO num |
|---|---|---|---|---|---|
| 5V | 1 | 21 | GND | ||
| 5V | 2 | 22 | PIN.A15 | 475 | |
| USB_DM | 3 | 23 | PIN.A14 | 474 | |
| USB_DP | 4 | 24 | GND | ||
| GND | 5 | 25 | PIN.AO2 | 498 | |
| MCU3V3 | 6 | 26 | PIN.AO3 | 499 | |
| MCUNRST | 7 | 27 | 3V3 | ||
| MCUSWIM | 8 | 28 | GND | ||
| GND | 9 | 29 | PIN.A1 | 461 | |
| ADC0 | 10 | 30 | PIN.A0 | 460 | |
| 1V8 | 11 | 31 | PIN.A3 | 463 | |
| ADC1 | 12 | 32 | PIN.A2 | 462 | |
| 506 | PIN.AO10 | 13 | 33 | PIN.A4 | 464 |
| GND3 | 14 | 34 | GND | ||
| 433 | PIN.H6 | 15 | 35 | PWM-F | 432 |
| 434 | PIN.H7 | 16 | 36 | RTC | |
| GND | 17 | 37 | PIN.H4 | 431 | |
| PIN.AO1 | 18 | 38 | MCU-FA1 | ||
| PIN.AO0 | 19 | 39 | PIN.Z15 | 426 | |
| 3V3 | 20 | 40 | GND |
Before using a GPIO, ensure it is not configured for another function (e.g., I2C, SPI). If it is, you can reconfigure it as a standard GPIO by applying a Device Tree Overlay.
Once you have identified the correct GPIO number (e.g., 465), follow these steps to control it via the sysfs interface.
Make the GPIO accessible to user space:
$ echo 465 | sudo tee /sys/class/gpio/export
Configure the GPIO as either an input or an output:
# Set GPIO output $ echo out | sudo tee /sys/class/gpio/gpio465/direction # Set GPIO input $ echo in | sudo tee /sys/class/gpio/gpio465/direction
If configured as an output, you can set its logic level:
# Set GPIO output high $ echo 1 | sudo tee /sys/class/gpio/gpio465/value # Set GPIO output low $ echo 0 | sudo tee /sys/class/gpio/gpio465/value
If configured as an input, read its current logic level:
$ cat /sys/class/gpio/gpio465/value
The command returns 0 (low) or 1 (high).
When finished, release the GPIO:
$ echo 465 | sudo tee /sys/class/gpio/unexport
If you encounter an error similar to the following when exporting, the GPIO pin is likely reserved for another function (e.g., by the device tree):
echo 465 | sudo tee /sys/class/gpio/export tee: /sys/class/gpio/export: Invalid argument
Solution: Modify the Device Tree Overlay configuration to free the pin and define it as a standard GPIO.